aboutsummaryrefslogtreecommitdiffstats
path: root/pydis_site/apps/api/tests
diff options
context:
space:
mode:
authorGravatar Sebastiaan Zeeff <[email protected]>2019-09-30 15:17:03 +0200
committerGravatar Sebastiaan Zeeff <[email protected]>2019-09-30 15:42:16 +0200
commit9b38f42272994350a6bb58da796dcca86ee628d9 (patch)
tree853f4cee539bef70bc52367651f4e8f3bc6e09fb /pydis_site/apps/api/tests
parentMerge pull request #261 from python-discord/decoupling-warnings-and-notes (diff)
Migrate nominations to new Nomination model
Before the migration to Django, we stored meta data on a nomination, such as the `reason` and `end_reason`, in the infraction table using "note" infractions, using a special prefix for the `reason`. We have since decided to move nominations out of the infraction context by creating a special `Nomination` model. However, given the complexity of the data migration, we did not yet migrate the old nomination data to this new model. This commit migrates that data by performing a data migration. The data migration works as follows: - Query all nomination data in chronological order; - Replay all nominations and add them to the `Nomination` model; - Delete the now obsolete `Infraction` entry. In addition, this commit also adds a useful string representation for `Nomination` objects.
Diffstat (limited to 'pydis_site/apps/api/tests')
-rw-r--r--pydis_site/apps/api/tests/test_models.py36
1 files changed, 31 insertions, 5 deletions
diff --git a/pydis_site/apps/api/tests/test_models.py b/pydis_site/apps/api/tests/test_models.py
index 2120b056..aaf12045 100644
--- a/pydis_site/apps/api/tests/test_models.py
+++ b/pydis_site/apps/api/tests/test_models.py
@@ -3,11 +3,18 @@ from datetime import datetime as dt, timezone
from django.test import SimpleTestCase
from ..models import (
- DeletedMessage, DocumentationLink,
- Infraction, Message,
- MessageDeletionContext, ModelReprMixin,
- OffTopicChannelName, Reminder,
- Role, Tag, User
+ DeletedMessage,
+ DocumentationLink,
+ Infraction,
+ Message,
+ MessageDeletionContext,
+ ModelReprMixin,
+ Nomination,
+ OffTopicChannelName,
+ Reminder,
+ Role,
+ Tag,
+ User
)
@@ -27,6 +34,19 @@ class ReprMixinTests(SimpleTestCase):
class StringDunderMethodTests(SimpleTestCase):
def setUp(self):
+ self.nomination = Nomination(
+ id=123,
+ actor=User(
+ id=9876, name='Mr. Hemlock',
+ discriminator=6666, avatar_hash=None
+ ),
+ user=User(
+ id=9876, name="Hemlock's Cat",
+ discriminator=7777, avatar_hash=None
+ ),
+ reason="He purrrrs like the best!",
+ )
+
self.objects = (
DeletedMessage(
id=45,
@@ -102,3 +122,9 @@ class StringDunderMethodTests(SimpleTestCase):
def test_returns_string(self):
for instance in self.objects:
self.assertIsInstance(str(instance), str)
+
+ def test_nomination_str_representation(self):
+ self.assertEqual(
+ "Nomination of Hemlock's Cat#7777 (active)",
+ str(self.nomination)
+ )