diff options
-rw-r--r-- | pydis_site/apps/api/serializers.py | 1 | ||||
-rw-r--r-- | pydis_site/apps/api/tests/test_deleted_messages.py | 38 |
2 files changed, 37 insertions, 2 deletions
diff --git a/pydis_site/apps/api/serializers.py b/pydis_site/apps/api/serializers.py index 51ad9276..24533dd6 100644 --- a/pydis_site/apps/api/serializers.py +++ b/pydis_site/apps/api/serializers.py @@ -56,6 +56,7 @@ class DeletedMessageSerializer(ModelSerializer): class MessageDeletionContextSerializer(ModelSerializer): """A class providing (de-)serialization of `MessageDeletionContext` instances.""" + actor = PrimaryKeyRelatedField(queryset=User.objects.all(), allow_null=True) deletedmessage_set = DeletedMessageSerializer(many=True) class Meta: diff --git a/pydis_site/apps/api/tests/test_deleted_messages.py b/pydis_site/apps/api/tests/test_deleted_messages.py index cd5acab0..d1e9f2f5 100644 --- a/pydis_site/apps/api/tests/test_deleted_messages.py +++ b/pydis_site/apps/api/tests/test_deleted_messages.py @@ -3,10 +3,10 @@ from datetime import datetime from django_hosts.resolvers import reverse from .base import APISubdomainTestCase -from ..models import User +from ..models import MessageDeletionContext, User -class DeletedMessagesTests(APISubdomainTestCase): +class DeletedMessagesWithoutActorTests(APISubdomainTestCase): @classmethod def setUpTestData(cls): # noqa cls.author = User.objects.create( @@ -41,3 +41,37 @@ class DeletedMessagesTests(APISubdomainTestCase): url = reverse('bot:messagedeletioncontext-list', host='api') response = self.client.post(url, data=self.data) self.assertEqual(response.status_code, 201) + [context] = MessageDeletionContext.objects.all() + self.assertIsNone(context.actor) + + +class DeletedMessagesWithActorTests(APISubdomainTestCase): + @classmethod + def setUpTestData(cls): # noqa + cls.author = cls.actor = User.objects.create( + id=12904, + name='Joe Armstrong', + discriminator=1245, + avatar_hash=None + ) + + cls.data = { + 'actor': cls.actor.id, + 'creation': datetime.utcnow().isoformat(), + 'deletedmessage_set': [ + { + 'author': cls.author.id, + 'id': 12903, + 'channel_id': 1824, + 'content': "I hate trailing commas", + 'embeds': [] + }, + ] + } + + def test_accepts_valid_data_and_sets_actor(self): + url = reverse('bot:messagedeletioncontext-list', host='api') + response = self.client.post(url, data=self.data) + self.assertEqual(response.status_code, 201) + [context] = MessageDeletionContext.objects.all() + self.assertEqual(context.actor.id, self.actor.id) |