From 82117a7d28b593b03a8a29ccbf3c3d13b2aebfad Mon Sep 17 00:00:00 2001 From: Mouse Reeve Date: Tue, 18 May 2021 12:23:36 -0700 Subject: [PATCH] Tests deactivating connectors --- bookwyrm/models/federated_server.py | 4 ++-- bookwyrm/tests/views/test_federation.py | 31 +++++++++++++++++++++++-- 2 files changed, 31 insertions(+), 4 deletions(-) diff --git a/bookwyrm/models/federated_server.py b/bookwyrm/models/federated_server.py index 86635ab0..e297c46c 100644 --- a/bookwyrm/models/federated_server.py +++ b/bookwyrm/models/federated_server.py @@ -37,7 +37,7 @@ class FederatedServer(BookWyrmModel): # check for related connectors if self.application_type == "bookwyrm": - connector_model = apps.get_model("bookwyrm.Connector", require_read=True) + connector_model = apps.get_model("bookwyrm.Connector", require_ready=True) connector_model.objects.filter( identifier=self.server_name, active=True ).update(active=False, deactivation_reason="domain_block") @@ -53,7 +53,7 @@ class FederatedServer(BookWyrmModel): # check for related connectors if self.application_type == "bookwyrm": - connector_model = apps.get_model("bookwyrm.Connector", require_read=True) + connector_model = apps.get_model("bookwyrm.Connector", require_ready=True) connector_model.objects.filter( identifier=self.server_name, active=False, diff --git a/bookwyrm/tests/views/test_federation.py b/bookwyrm/tests/views/test_federation.py index f17f7624..4469040e 100644 --- a/bookwyrm/tests/views/test_federation.py +++ b/bookwyrm/tests/views/test_federation.py @@ -60,7 +60,12 @@ class FederationViews(TestCase): def test_server_page_block(self): """block a server""" - server = models.FederatedServer.objects.create(server_name="hi.there.com") + server = models.FederatedServer.objects.create( + server_name="hi.there.com", application_type="bookwyrm" + ) + connector = models.Connector.objects.get( + identifier="hi.there.com", + ) self.remote_user.federated_server = server self.remote_user.save() @@ -72,17 +77,32 @@ class FederationViews(TestCase): request.user.is_superuser = True view(request, server.id) + server.refresh_from_db() self.remote_user.refresh_from_db() self.assertEqual(server.status, "blocked") + # and the user was deactivated self.assertFalse(self.remote_user.is_active) + self.assertEqual(self.remote_user.deactivation_reason, "domain_block") + + # and the connector was disabled + connector.refresh_from_db() + self.assertFalse(connector.active) + self.assertEqual(connector.deactivation_reason, "domain_block") def test_server_page_unblock(self): """unblock a server""" server = models.FederatedServer.objects.create( - server_name="hi.there.com", status="blocked" + server_name="hi.there.com", status="blocked", application_type="bookwyrm" ) + connector = models.Connector.objects.get( + identifier="hi.there.com", + ) + connector.active = False + connector.deactivation_reason = "domain_block" + connector.save() + self.remote_user.federated_server = server self.remote_user.is_active = False self.remote_user.deactivation_reason = "domain_block" @@ -96,8 +116,15 @@ class FederationViews(TestCase): server.refresh_from_db() self.remote_user.refresh_from_db() self.assertEqual(server.status, "federated") + # and the user was re-activated self.assertTrue(self.remote_user.is_active) + self.assertIsNone(self.remote_user.deactivation_reason) + + # and the connector was re-enabled + connector.refresh_from_db() + self.assertTrue(connector.active) + self.assertIsNone(connector.deactivation_reason) def test_add_view_get(self): """there are so many views, this just makes sure it LOADS"""