changeset 69:dafbbf25bfc8

Upgrade bluesky silo to atproto 0.0.35 and unit tests.
author Ludovic Chabant <ludovic@chabant.com>
date Tue, 26 Dec 2023 16:55:22 -0800
parents c678ca85cc25
children ed8eefbb36e8
files silorider/silos/bluesky.py tests/test_silos_bluesky.py tests/test_silos_mastodon.py tests/test_silos_twitter.py
diffstat 4 files changed, 16 insertions(+), 5 deletions(-) [+]
line wrap: on
line diff
--- a/silorider/silos/bluesky.py	Tue Dec 26 16:32:17 2023 -0800
+++ b/silorider/silos/bluesky.py	Tue Dec 26 16:55:22 2023 -0800
@@ -10,7 +10,7 @@
 from ..format import CardProps, UrlFlattener, URLMODE_ERASE
 
 import atproto
-import atproto.xrpc_client.models as atprotomodels
+from atproto import models as atprotomodels
 
 
 logger = logging.getLogger(__name__)
--- a/tests/test_silos_bluesky.py	Tue Dec 26 16:32:17 2023 -0800
+++ b/tests/test_silos_bluesky.py	Tue Dec 26 16:55:22 2023 -0800
@@ -1,5 +1,6 @@
+import os.path
 import pytest
-import atproto.xrpc_client.models as atprotomodels
+from atproto import models as atprotomodels
 from .mockutil import mock_urllib
 
 
@@ -20,8 +21,10 @@
     ctx, _ = cli.run('process')
     assert ctx.cache.wasPosted('test', 'https://example.org/a-new-article')
     post = ctx.silos[0].client.posts[0]
-    assert post == ('A new article https://example.org/a-new-article',
-                    None, None)
+    assert post == (
+        'A new article https://example.org/a-new-article',
+        None,
+        [_make_link_facet('https://example.org/a-new-article', 14, 47)])
 
 
 def test_one_micropost(cli, feedutil, bskymock):
@@ -56,6 +59,7 @@
     with monkeypatch.context() as m:
         import silorider.silos.bluesky
         mock_urllib(m)
+        m.setattr(os.path, 'getsize', lambda path: 42)
         m.setattr(silorider.silos.bluesky.BlueskySilo, 'mediaCallback',
                   _patched_media_callback)
         ctx, _ = cli.run('process')
@@ -87,6 +91,7 @@
     with monkeypatch.context() as m:
         import silorider.silos.bluesky
         mock_urllib(m)
+        m.setattr(os.path, 'getsize', lambda path: 42)
         m.setattr(silorider.silos.bluesky.BlueskySilo, 'mediaCallback',
                   _patched_media_callback)
         ctx, _ = cli.run('process')
@@ -162,7 +167,7 @@
     # an actual Image object.
     # Not sure why we need to use model_validate here -- the simple
     # constructor with keywords throws a validation error :(
-    blob_link = atprotomodels.blob_ref.BlobRefLink.model_validate({'$link': link})
+    blob_link = atprotomodels.blob_ref.IpldLink.model_validate({'$link': link})
     blob = atprotomodels.blob_ref.BlobRef(mime_type=mime_type, ref=blob_link, size=size)
     img = atprotomodels.AppBskyEmbedImages.Image(alt=alt, image=blob)
     if test_index is not None:
--- a/tests/test_silos_mastodon.py	Tue Dec 26 16:32:17 2023 -0800
+++ b/tests/test_silos_mastodon.py	Tue Dec 26 16:55:22 2023 -0800
@@ -1,3 +1,4 @@
+import os.path
 import pytest
 from .mockutil import mock_urllib
 
@@ -55,6 +56,7 @@
     with monkeypatch.context() as m:
         import silorider.silos.mastodon
         mock_urllib(m)
+        m.setattr(os.path, 'getsize', lambda path: 42)
         m.setattr(silorider.silos.mastodon.MastodonSilo, 'mediaCallback',
                   _patched_media_callback)
         ctx, _ = cli.run('process')
@@ -83,6 +85,7 @@
     with monkeypatch.context() as m:
         import silorider.silos.mastodon
         mock_urllib(m)
+        m.setattr(os.path, 'getsize', lambda path: 42)
         m.setattr(silorider.silos.mastodon.MastodonSilo, 'mediaCallback',
                   _patched_media_callback)
         ctx, _ = cli.run('process')
--- a/tests/test_silos_twitter.py	Tue Dec 26 16:32:17 2023 -0800
+++ b/tests/test_silos_twitter.py	Tue Dec 26 16:55:22 2023 -0800
@@ -1,3 +1,4 @@
+import os.path
 import pytest
 from .mockutil import mock_urllib
 
@@ -71,6 +72,7 @@
     with monkeypatch.context() as m:
         import silorider.silos.twitter
         mock_urllib(m)
+        m.setattr(os.path, 'getsize', lambda path: 42)
         m.setattr(silorider.silos.twitter.TwitterSilo, 'mediaCallback',
                   _patched_media_callback)
         ctx, _ = cli.run('process')
@@ -97,6 +99,7 @@
     with monkeypatch.context() as m:
         import silorider.silos.twitter
         mock_urllib(m)
+        m.setattr(os.path, 'getsize', lambda path: 42)
         m.setattr(silorider.silos.twitter.TwitterSilo, 'mediaCallback',
                   _patched_media_callback)
         ctx, _ = cli.run('process')