diff options
author | 2021-06-18 13:46:06 -0700 | |
---|---|---|
committer | 2021-06-18 13:48:03 -0700 | |
commit | a8a0322c871ef04920167ded706cfdc8a425d958 (patch) | |
tree | 664d08f68c6c8ac17e45943c074f82ca9aef1c94 /pydis_site/apps | |
parent | Add cache purge step to CI deploy stage (#533) (diff) |
Adjust Message model to support new nitro messages with over 4000 chars
Diffstat (limited to 'pydis_site/apps')
-rw-r--r-- | pydis_site/apps/api/migrations/0070_auto_20210618_2010.py | 18 | ||||
-rw-r--r-- | pydis_site/apps/api/models/bot/message.py | 2 | ||||
-rw-r--r-- | pydis_site/apps/api/tests/test_models.py | 40 |
3 files changed, 58 insertions, 2 deletions
diff --git a/pydis_site/apps/api/migrations/0070_auto_20210618_2010.py b/pydis_site/apps/api/migrations/0070_auto_20210618_2010.py new file mode 100644 index 00000000..b0c79b32 --- /dev/null +++ b/pydis_site/apps/api/migrations/0070_auto_20210618_2010.py @@ -0,0 +1,18 @@ +# Generated by Django 3.0.14 on 2021-06-18 20:10 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('api', '0069_documentationlink_validators'), + ] + + operations = [ + migrations.AlterField( + model_name='deletedmessage', + name='content', + field=models.CharField(blank=True, help_text='The content of this message, taken from Discord.', max_length=4000), + ), + ] diff --git a/pydis_site/apps/api/models/bot/message.py b/pydis_site/apps/api/models/bot/message.py index ff06de21..60e2a553 100644 --- a/pydis_site/apps/api/models/bot/message.py +++ b/pydis_site/apps/api/models/bot/message.py @@ -43,7 +43,7 @@ class Message(ModelReprMixin, models.Model): verbose_name="Channel ID" ) content = models.CharField( - max_length=2_000, + max_length=4_000, help_text="The content of this message, taken from Discord.", blank=True ) diff --git a/pydis_site/apps/api/tests/test_models.py b/pydis_site/apps/api/tests/test_models.py index 66052e01..1303639e 100644 --- a/pydis_site/apps/api/tests/test_models.py +++ b/pydis_site/apps/api/tests/test_models.py @@ -1,6 +1,7 @@ from datetime import datetime as dt -from django.test import SimpleTestCase +from django.core.exceptions import ValidationError +from django.test import SimpleTestCase, TestCase from django.utils import timezone from pydis_site.apps.api.models import ( @@ -34,6 +35,43 @@ class ReprMixinTests(SimpleTestCase): self.assertEqual(repr(self.klass), expected) +class NitroMessageLengthTest(TestCase): + def setUp(self): + self.user = User.objects.create(id=50, name='bill', discriminator=5) + self.context = MessageDeletionContext.objects.create( + id=50, + actor=self.user, + creation=dt.utcnow() + ) + + def test_create(self): + message = DeletedMessage( + id=46, + author=self.user, + channel_id=666, + content="w"*4000, + deletion_context=self.context, + embeds=[] + ) + + try: + message.clean_fields() + except Exception as e: + self.fail(f"Creation of message of length 3950 failed with: {e}") + + def test_create_failure(self): + message = DeletedMessage( + id=47, + author=self.user, + channel_id=666, + content="w"*4001, + deletion_context=self.context, + embeds=[] + ) + + self.assertRaisesRegex(ValidationError, "content':", message.clean_fields) + + class StringDunderMethodTests(SimpleTestCase): def setUp(self): self.nomination = Nomination( |