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) | 
