From da453f8056246bd2e71a81e25a1bac9576fe003b Mon Sep 17 00:00:00 2001 From: Mouse Reeve Date: Thu, 15 Apr 2021 17:43:27 -0700 Subject: [PATCH 1/2] Adds test for populate streams management command --- bookwyrm/tests/management/__init__.py | 1 + .../tests/management/test_populate_streams.py | 42 +++++++++++++++++++ 2 files changed, 43 insertions(+) create mode 100644 bookwyrm/tests/management/__init__.py create mode 100644 bookwyrm/tests/management/test_populate_streams.py diff --git a/bookwyrm/tests/management/__init__.py b/bookwyrm/tests/management/__init__.py new file mode 100644 index 000000000..b6e690fd5 --- /dev/null +++ b/bookwyrm/tests/management/__init__.py @@ -0,0 +1 @@ +from . import * diff --git a/bookwyrm/tests/management/test_populate_streams.py b/bookwyrm/tests/management/test_populate_streams.py new file mode 100644 index 000000000..caebbbe91 --- /dev/null +++ b/bookwyrm/tests/management/test_populate_streams.py @@ -0,0 +1,42 @@ +""" test populating user streams """ +from unittest.mock import patch +from django.test import TestCase + +from bookwyrm import models +from bookwyrm.management.commands.populate_streams import populate_streams + + +@patch("bookwyrm.models.activitypub_mixin.broadcast_task.delay") +class Activitystreams(TestCase): + """ using redis to build activity streams """ + + def setUp(self): + """ we need some stuff """ + self.local_user = models.User.objects.create_user( + "mouse", "mouse@mouse.mouse", "password", local=True, localname="mouse" + ) + self.another_user = models.User.objects.create_user( + "nutria", "nutria@nutria.nutria", "password", local=True, localname="nutria" + ) + with patch("bookwyrm.models.user.set_remote_server.delay"): + self.remote_user = models.User.objects.create_user( + "rat", + "rat@rat.com", + "ratword", + local=False, + remote_id="https://example.com/users/rat", + inbox="https://example.com/users/rat/inbox", + outbox="https://example.com/users/rat/outbox", + ) + self.book = models.Edition.objects.create(title="test book") + + def test_activitystream_class_ids(self, _): + """ the abstract base class for stream objects """ + with patch("bookwyrm.activitystreams.ActivityStream.add_status"): + models.Comment.objects.create( + user=self.local_user, content="hi", book=self.book + ) + + with patch("bookwyrm.activitystreams.ActivityStream.populate_store") as redis_mock: + populate_streams() + self.assertEqual(redis_mock.call_count, 6) # 2 users x 3 streams From 80ea45971122082beae489704bc155595f72b108 Mon Sep 17 00:00:00 2001 From: Mouse Reeve Date: Thu, 15 Apr 2021 17:48:43 -0700 Subject: [PATCH 2/2] Suitable test name and comment --- bookwyrm/tests/management/test_populate_streams.py | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/bookwyrm/tests/management/test_populate_streams.py b/bookwyrm/tests/management/test_populate_streams.py index caebbbe91..6a9b6b8ac 100644 --- a/bookwyrm/tests/management/test_populate_streams.py +++ b/bookwyrm/tests/management/test_populate_streams.py @@ -30,13 +30,15 @@ class Activitystreams(TestCase): ) self.book = models.Edition.objects.create(title="test book") - def test_activitystream_class_ids(self, _): - """ the abstract base class for stream objects """ + def test_populate_streams(self, _): + """ make sure the function on the redis manager gets called """ with patch("bookwyrm.activitystreams.ActivityStream.add_status"): models.Comment.objects.create( user=self.local_user, content="hi", book=self.book ) - with patch("bookwyrm.activitystreams.ActivityStream.populate_store") as redis_mock: + with patch( + "bookwyrm.activitystreams.ActivityStream.populate_store" + ) as redis_mock: populate_streams() self.assertEqual(redis_mock.call_count, 6) # 2 users x 3 streams