1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
|
from datetime import UTC, datetime
from django.urls import reverse
from .base import AuthenticatedAPITestCase
from pydis_site.apps.api.models import MessageDeletionContext, User
class DeletedMessagesWithoutActorTests(AuthenticatedAPITestCase):
@classmethod
def setUpTestData(cls):
cls.author = User.objects.create(
id=55,
name='Robbie Rotten',
discriminator=55,
)
cls.data = {
'actor': None,
'creation': datetime.now(tz=UTC).isoformat(),
'deletedmessage_set': [
{
'author': cls.author.id,
'id': 55,
'channel_id': 5555,
'content': "Terror Billy is a meanie",
'embeds': [],
'attachments': []
},
{
'author': cls.author.id,
'id': 56,
'channel_id': 5555,
'content': "If you purge this, you're evil",
'embeds': [],
'attachments': []
}
]
}
def test_accepts_valid_data(self):
url = reverse('api:bot:messagedeletioncontext-list')
response = self.client.post(url, data=self.data)
self.assertEqual(response.status_code, 201)
[context] = MessageDeletionContext.objects.all()
self.assertIsNone(context.actor)
class DeletedMessagesWithActorTests(AuthenticatedAPITestCase):
@classmethod
def setUpTestData(cls):
cls.author = cls.actor = User.objects.create(
id=12904,
name='Joe Armstrong',
discriminator=1245,
)
cls.data = {
'actor': cls.actor.id,
'creation': datetime.now(tz=UTC).isoformat(),
'deletedmessage_set': [
{
'author': cls.author.id,
'id': 12903,
'channel_id': 1824,
'content': "I hate trailing commas",
'embeds': [],
'attachments': []
},
]
}
def test_accepts_valid_data_and_sets_actor(self):
url = reverse('api:bot:messagedeletioncontext-list')
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)
class DeletedMessagesLogURLTests(AuthenticatedAPITestCase):
@classmethod
def setUpTestData(cls):
cls.author = cls.actor = User.objects.create(
id=324888,
name='Black Knight',
discriminator=1975,
)
cls.deletion_context = MessageDeletionContext.objects.create(
actor=cls.actor,
creation=datetime.now(tz=UTC),
)
def test_valid_log_url(self):
[context] = MessageDeletionContext.objects.all()
expected_url = reverse('staff:logs', args=(context.id,))
self.assertEqual(context.log_url, expected_url)
|