From bd4a6380e4e190ae532d795de83bc1c9fa48a5a3 Mon Sep 17 00:00:00 2001 From: Calum Mackervoy <c.mackervoy@gmail.com> Date: Thu, 29 Jul 2021 19:14:37 +0200 Subject: [PATCH] syntax: added container subscription test --- djangoldp_notification/tests/runner.py | 1 + .../tests/test_subscriptions.py | 36 +++++++++++++++++++ 2 files changed, 37 insertions(+) create mode 100644 djangoldp_notification/tests/test_subscriptions.py diff --git a/djangoldp_notification/tests/runner.py b/djangoldp_notification/tests/runner.py index 29f3947..de3991c 100644 --- a/djangoldp_notification/tests/runner.py +++ b/djangoldp_notification/tests/runner.py @@ -43,6 +43,7 @@ test_runner = DiscoverRunner(verbosity=1) failures = test_runner.run_tests([ 'djangoldp_notification.tests.test_models', + 'djangoldp_notification.tests.test_subscriptions', 'djangoldp_notification.tests.test_cache', ]) if failures: diff --git a/djangoldp_notification/tests/test_subscriptions.py b/djangoldp_notification/tests/test_subscriptions.py new file mode 100644 index 0000000..fb12200 --- /dev/null +++ b/djangoldp_notification/tests/test_subscriptions.py @@ -0,0 +1,36 @@ +import uuid +import json + +from django.conf import settings +from rest_framework.test import APITestCase, APIClient + +from djangoldp_account.models import LDPUser +from djangoldp_notification.models import Notification, Subscription + + +class SubscriptionTestCase(APITestCase): + def setUp(self): + self.client = APIClient() + + def _get_random_user(self): + return LDPUser.objects.create(email='{}@test.co.uk'.format(str(uuid.uuid4())), first_name='Test', + last_name='Test', username=str(uuid.uuid4())) + + def _auth_as_user(self, user): + self.client.force_authenticate(user=user) + + def setUpLoggedInUser(self): + self.user = self._get_random_user() + self._auth_as_user(self.user) + + def test_can_subscribe_to_container(self): + self.setUpLoggedInUser() + + users_container = "{}/users/".format(settings.BASE_URL) + Subscription.objects.create(object=users_container, inbox=self.user.urlid + "inbox/") + self.assertEqual(self.user.inbox.count(), 0) + + self._get_random_user() + self.assertEqual(self.user.inbox.count(), 2) + notification = self.user.inbox.all()[0] + self.assertTrue(notification.object, users_container) -- GitLab