diff options
| author | 2019-10-26 17:03:57 +0200 | |
|---|---|---|
| committer | 2019-10-26 17:03:57 +0200 | |
| commit | 57992886c53977fca7b3034d648a94cf4b4d4df1 (patch) | |
| tree | 1c9b932ef0eb0c0426062421e64f2bf09619cad8 | |
| parent | Delete unnecessary search filter (diff) | |
Write tests for the offensive message model.
| -rw-r--r-- | pydis_site/apps/api/tests/test_models.py | 6 | ||||
| -rw-r--r-- | pydis_site/apps/api/tests/test_offensive_message.py | 61 | ||||
| -rw-r--r-- | pydis_site/apps/api/tests/test_validators.py | 6 | 
3 files changed, 70 insertions, 3 deletions
| diff --git a/pydis_site/apps/api/tests/test_models.py b/pydis_site/apps/api/tests/test_models.py index b4a766d0..a97d3251 100644 --- a/pydis_site/apps/api/tests/test_models.py +++ b/pydis_site/apps/api/tests/test_models.py @@ -12,6 +12,7 @@ from ..models import (      ModelReprMixin,      Nomination,      OffTopicChannelName, +    OffensiveMessage,      Reminder,      Role,      Tag, @@ -69,6 +70,11 @@ class StringDunderMethodTests(SimpleTestCase):              DocumentationLink(                  'test', 'http://example.com', 'http://example.com'              ), +            OffensiveMessage( +                id=602951077675139072, +                channel_id=291284109232308226, +                delete_date=dt(3000, 1, 1) +            ),              OffTopicChannelName(name='bob-the-builders-playground'),              Role(                  id=5, name='test role', diff --git a/pydis_site/apps/api/tests/test_offensive_message.py b/pydis_site/apps/api/tests/test_offensive_message.py new file mode 100644 index 00000000..4ef9201e --- /dev/null +++ b/pydis_site/apps/api/tests/test_offensive_message.py @@ -0,0 +1,61 @@ +import datetime + +from django_hosts.resolvers import reverse + +from .base import APISubdomainTestCase +from ..models import OffensiveMessage + + +class CreationTests(APISubdomainTestCase): +    def test_accept_valid_data(self): +        url = reverse('bot:offensivemessage-list', host='api') +        delete_at = datetime.datetime.now() + datetime.timedelta(days=1) +        data = { +            'id': '602951077675139072', +            'channel_id': '291284109232308226', +            'delete_date': delete_at.isoformat()[:-1] +        } + +        aware_delete_at = delete_at.replace(tzinfo=datetime.timezone.utc) + +        response = self.client.post(url, data=data) +        self.assertEqual(response.status_code, 201) + +        offensive_message = OffensiveMessage.objects.get(id=response.json()['id']) +        self.assertAlmostEqual( +            aware_delete_at, +            offensive_message.delete_date, +            delta=datetime.timedelta(seconds=1) +        ) +        self.assertEqual(data['id'], str(offensive_message.id)) +        self.assertEqual(data['channel_id'], str(offensive_message.channel_id)) + +    def test_returns_400_on_non_future_date(self): +        url = reverse('bot:offensivemessage-list', host='api') +        delete_at = datetime.datetime.now() - datetime.timedelta(days=1) +        data = { +            'id': '602951077675139072', +            'channel_id': '291284109232308226', +            'delete_date': delete_at.isoformat()[:-1] +        } +        response = self.client.post(url, data=data) +        self.assertEqual(response.status_code, 400) + +    def test_returns_400_on_negative_id_or_channel_id(self): +        url = reverse('bot:offensivemessage-list', host='api') +        delete_at = datetime.datetime.now() + datetime.timedelta(days=1) +        data = { +            'id': '-602951077675139072', +            'channel_id': '291284109232308226', +            'delete_date': delete_at.isoformat()[:-1] +        } +        response = self.client.post(url, data=data) +        self.assertEqual(response.status_code, 400) + +        data = { +            'id': '602951077675139072', +            'channel_id': '-291284109232308226', +            'delete_date': delete_at.isoformat()[:-1] +        } +        response = self.client.post(url, data=data) +        self.assertEqual(response.status_code, 400) diff --git a/pydis_site/apps/api/tests/test_validators.py b/pydis_site/apps/api/tests/test_validators.py index 9d993839..241af08c 100644 --- a/pydis_site/apps/api/tests/test_validators.py +++ b/pydis_site/apps/api/tests/test_validators.py @@ -1,4 +1,4 @@ -from datetime import datetime +from datetime import datetime, timezone  from django.core.exceptions import ValidationError  from django.test import TestCase @@ -252,8 +252,8 @@ class TagEmbedValidatorTests(TestCase):  class OffensiveMessageValidatorsTests(TestCase):      def test_accepts_future_date(self): -        future_date_validator(datetime(3000, 1, 1)) +        future_date_validator(datetime(3000, 1, 1, tzinfo=timezone.utc))      def test_rejects_non_future_date(self):          with self.assertRaises(ValidationError): -            future_date_validator(datetime(1000, 1, 1)) +            future_date_validator(datetime(1000, 1, 1, tzinfo=timezone.utc)) | 
