summaryrefslogtreecommitdiffstats
path: root/activities/tests/models
diff options
context:
space:
mode:
Diffstat (limited to 'activities/tests/models')
-rw-r--r--activities/tests/models/__init__.py0
-rw-r--r--activities/tests/models/test_post.py31
2 files changed, 31 insertions, 0 deletions
diff --git a/activities/tests/models/__init__.py b/activities/tests/models/__init__.py
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/activities/tests/models/__init__.py
diff --git a/activities/tests/models/test_post.py b/activities/tests/models/test_post.py
new file mode 100644
index 0000000..5c7fca2
--- /dev/null
+++ b/activities/tests/models/test_post.py
@@ -0,0 +1,31 @@
+import pytest
+from pytest_httpx import HTTPXMock
+
+from activities.models import Post
+
+
+@pytest.mark.django_db
+def test_fetch_post(httpx_mock: HTTPXMock):
+ """
+ Tests that a post we don't have locally can be fetched by by_object_uri
+ """
+ httpx_mock.add_response(
+ url="https://example.com/test-post",
+ json={
+ "@context": [
+ "https://www.w3.org/ns/activitystreams",
+ ],
+ "id": "https://example.com/test-post",
+ "type": "Note",
+ "published": "2022-11-13T23:20:16Z",
+ "url": "https://example.com/test-post",
+ "attributedTo": "https://example.com/test-actor",
+ "content": "BEEEEEES",
+ },
+ )
+ # Fetch with a HTTP access
+ post = Post.by_object_uri("https://example.com/test-post", fetch=True)
+ assert post.content == "BEEEEEES"
+ assert post.author.actor_uri == "https://example.com/test-actor"
+ # Fetch again with a DB hit
+ assert Post.by_object_uri("https://example.com/test-post").id == post.id