diff --git a/tests/notificationprofile/destinations/test_base.py b/tests/notificationprofile/destinations/test_base.py new file mode 100644 index 000000000..7bc5ce324 --- /dev/null +++ b/tests/notificationprofile/destinations/test_base.py @@ -0,0 +1,60 @@ +from django import forms +from django.core.exceptions import ValidationError +from django.test import TestCase, tag + +from rest_framework import status +from rest_framework.test import APIClient, APIRequestFactory, APITestCase + +from argus.auth.factories import PersonUserFactory +from argus.notificationprofile.factories import DestinationConfigFactory, NotificationProfileFactory, TimeslotFactory +from argus.notificationprofile.media.base import NotificationMedium +from argus.notificationprofile.models import DestinationConfig, Media +from argus.notificationprofile.serializers import RequestDestinationConfigSerializer +from argus.util.testing import connect_signals, disconnect_signals + + +class DummyNotificationMedium(NotificationMedium): + MEDIA_SETTINGS_KEY = "foo" + MEDIA_NAME = "Dummy" + MEDIA_SLUG = "dummy" + + class Form(forms.Form): + foo = forms.IntegerField() + + +@tag("unit") +class NotificationMediumTests(TestCase): + def setUp(self): + self.user = PersonUserFactory() + + def test_validate_croaks_on_medium_not_in_database(self): + data = {"settings": None} + form = DummyNotificationMedium.validate_settings(data, self.user) +# +# def test_validate_settings_croaks_on_empty_settings(self): +# data = {"settings": None} +# with self.assertRaises(ValidationError): +# DummmyNotificationMedium.validate_settings(data, self.user) +# +# def test_validate_settings_croaks_on_wrong_settings(self): +# data = {"settings": {"bar": False}} +# with self.assertRaises(ValidationError): +# DummyNotificationMedium.validate_settings(data, self.user) +# +# def test_validate_spits_out_a_valid_form_that_includes_cleaned_settings_and_user(self): +# data = { +# "media": DummyNotificationMedium.MEDIA_SLUG, +# "settings": {"foo": 1} +# } +# form = DummyNotificationMedium.validate(data, self.user) +# self.assertEqual(form.cleaned_data["settings"], data["settings"]) +# self.assertEqual(form.cleaned_data["user"], self.user) +# +# def test_validate_croaks_on_invalid_input(self): +# data = { +# "media": "does not exist", +# "settings": {"foo": 1} +# } +# form = DummyNotificationMedium.validate(data, self.user) +# self.assertEqual(form.cleaned_data["settings"], data["settings"]) +# self.assertEqual(form.cleaned_data["user"], self.user)