django-notifications/notifications/tests/sample_notifications/tests.py
2023-06-24 00:10:23 +00:00

46 lines
1.8 KiB
Python

import os
from unittest import skipUnless
import swapper
from django.contrib.auth import get_user_model
from notifications.signals import notify
from notifications.tests.tests import AdminTest as BaseAdminTest
from notifications.tests.tests import NotificationTest as BaseNotificationTest
Notification = swapper.load_model("notifications", "Notification")
User = get_user_model()
@skipUnless(os.environ.get("SAMPLE_APP", False), "Running tests on standard django-notifications models")
class AdminTest(BaseAdminTest):
@classmethod
def setUpClass(cls):
super().setUpClass()
BaseAdminTest.app_name = "sample_notifications"
@skipUnless(os.environ.get("SAMPLE_APP", False), "Running tests on standard django-notifications models")
class NotificationTest(BaseNotificationTest):
pass
class TestExtraDataCustomAccessor(NotificationTest):
def setUp(self):
self.from_user = User.objects.create_user(username="from_extra", password="pwd", email="example@example.com")
self.to_user = User.objects.create_user(username="to_extra", password="pwd", email="example@example.com")
notify.send(
self.from_user,
recipient=self.to_user,
verb="commented",
action_object=self.from_user,
url="/learn/ask-a-pro/q/test-question-9/299/",
other_content="Hello my 'world'",
details="test detail",
)
def test_extra_data(self):
notification = Notification.objects.get(details="test detail")
assert notification, "Expected a notification retrieved by custom extra data accessor"
assert notification.details == "test detail", "Custom accessor should return set value"
assert "details" not in notification.data, "Custom accessor should not be in json data"