aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--pydis_site/apps/api/serializers.py1
-rw-r--r--pydis_site/apps/api/tests/test_deleted_messages.py38
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)