diff options
| author | 2021-06-24 18:16:09 +0200 | |
|---|---|---|
| committer | 2021-06-24 18:16:09 +0200 | |
| commit | 3a4a78e3e1e7ccb87e987ab09be3b03a7873b8d0 (patch) | |
| tree | b3457baee27992ca6f309ebe2f90aee59900b8b9 /pydis_site/apps/api | |
| parent | Merge pull request #538 from python-discord/jb3/navbar-spans (diff) | |
| parent | Merge branch 'main' into fix-nitro-message (diff) | |
Merge pull request #536 from bast0006/fix-nitro-message
Adjust Message model to support new nitro messages with over 4000 chars
Diffstat (limited to 'pydis_site/apps/api')
| -rw-r--r-- | pydis_site/apps/api/migrations/0071_increase_message_content_4000.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/0071_increase_message_content_4000.py b/pydis_site/apps/api/migrations/0071_increase_message_content_4000.py new file mode 100644 index 00000000..6ca5d21a --- /dev/null +++ b/pydis_site/apps/api/migrations/0071_increase_message_content_4000.py @@ -0,0 +1,18 @@ +# Generated by Django 3.0.14 on 2021-06-24 14:45 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + +    dependencies = [ +        ('api', '0070_auto_20210618_2114'), +    ] + +    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..5c9ddea4 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:  # pragma: no cover +            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( | 
