From 940d88c0148d8486f26f41d5d6ad49cc2cb17d7c Mon Sep 17 00:00:00 2001 From: Johannes Christ Date: Fri, 29 Mar 2024 13:36:54 +0100 Subject: Support running tests with --keepdb option Allow faster local tests by skipping the database re-setup. Only two cases were dependent on hardcoded IDs and already existing data, they have been adjusted appropriately. --- pydis_site/apps/api/tests/test_deleted_messages.py | 2 +- pydis_site/apps/api/tests/test_reminders.py | 13 ++++++++++--- 2 files changed, 11 insertions(+), 4 deletions(-) (limited to 'pydis_site/apps') diff --git a/pydis_site/apps/api/tests/test_deleted_messages.py b/pydis_site/apps/api/tests/test_deleted_messages.py index d5501202..7ddd9686 100644 --- a/pydis_site/apps/api/tests/test_deleted_messages.py +++ b/pydis_site/apps/api/tests/test_deleted_messages.py @@ -93,6 +93,6 @@ class DeletedMessagesLogURLTests(AuthenticatedAPITestCase): ) def test_valid_log_url(self): - expected_url = reverse('staff:logs', args=(1,)) [context] = MessageDeletionContext.objects.all() + expected_url = reverse('staff:logs', args=(context.id,)) self.assertEqual(context.log_url, expected_url) diff --git a/pydis_site/apps/api/tests/test_reminders.py b/pydis_site/apps/api/tests/test_reminders.py index 98e93bb7..545ffff8 100644 --- a/pydis_site/apps/api/tests/test_reminders.py +++ b/pydis_site/apps/api/tests/test_reminders.py @@ -1,3 +1,4 @@ +import random from datetime import UTC, datetime from django.forms.models import model_to_dict @@ -67,16 +68,22 @@ class ReminderCreationTests(AuthenticatedAPITestCase): url = reverse('api:bot:reminder-list') response = self.client.post(url, data=data) self.assertEqual(response.status_code, 201) - self.assertIsNotNone(Reminder.objects.filter(id=1).first()) + first = Reminder.objects.first() + self.assertIsNotNone(first) + self.assertEqual(first.author_id, data['author']) + self.assertEqual(first.content, data['content']) + self.assertEqual(first.channel_id, data['channel_id']) + +class EmptyDatabaseReminderCreationTests(AuthenticatedAPITestCase): def test_rejects_invalid_data(self): data = { - 'author': self.author.id, # Missing multiple required fields + 'author': random.randint(1, 2 ** 8), } url = reverse('api:bot:reminder-list') response = self.client.post(url, data=data) self.assertEqual(response.status_code, 400) - self.assertRaises(Reminder.DoesNotExist, Reminder.objects.get, id=1) + self.assertFalse(Reminder.objects.exists()) class ReminderDeletionTests(AuthenticatedAPITestCase): -- cgit v1.2.3