diff options
| author | 2019-08-22 20:55:57 +0200 | |
|---|---|---|
| committer | 2019-08-23 15:40:53 +0200 | |
| commit | b016dbd5431180a183cc99d1841506cc3d240e04 (patch) | |
| tree | f5d459744510050f92464892f6836d793d03fda8 | |
| parent | Adding required fields validator and tests to embed fields (diff) | |
Adding tests for filters and the deleted message front-end view
| -rw-r--r-- | pydis_site/apps/staff/tests/test_deletedmessage_filters.py | 21 | ||||
| -rw-r--r-- | pydis_site/apps/staff/tests/test_logs_view.py | 64 | 
2 files changed, 85 insertions, 0 deletions
| diff --git a/pydis_site/apps/staff/tests/test_deletedmessage_filters.py b/pydis_site/apps/staff/tests/test_deletedmessage_filters.py new file mode 100644 index 00000000..d064b8d9 --- /dev/null +++ b/pydis_site/apps/staff/tests/test_deletedmessage_filters.py @@ -0,0 +1,21 @@ +from django.test import TestCase +from django.utils import timezone + +from ..templatetags import deletedmessage_filters + + +class DeletedMessageFilterTests(TestCase): +    def test_hex_colour_filter(self): +        self.assertEqual(deletedmessage_filters.hex_colour(0), "#000000") +        self.assertEqual(deletedmessage_filters.hex_colour(255), "#0000FF") +        self.assertEqual(deletedmessage_filters.hex_colour(65280), "#00FF00") +        self.assertEqual(deletedmessage_filters.hex_colour(16711680), "#FF0000") +        self.assertEqual(deletedmessage_filters.hex_colour(16777215), "#FFFFFF") + +    def test_footer_datetime_filter(self): +        datetime_aware = timezone.now() +        iso_string = datetime_aware.isoformat() + +        datetime_returned = deletedmessage_filters.footer_datetime(iso_string) +        self.assertTrue(timezone.is_aware(datetime_returned)) +        self.assertEqual(datetime_aware, datetime_returned) diff --git a/pydis_site/apps/staff/tests/test_logs_view.py b/pydis_site/apps/staff/tests/test_logs_view.py new file mode 100644 index 00000000..b5f7bb24 --- /dev/null +++ b/pydis_site/apps/staff/tests/test_logs_view.py @@ -0,0 +1,64 @@ +from django.test import Client, TestCase +from django.utils import timezone +from django_hosts.resolvers import reverse, reverse_host + +from pydis_site.apps.api.models.bot import DeletedMessage, MessageDeletionContext, Role, User +from ..templatetags.deletedmessage_filters import hex_colour + + +class TestLogsView(TestCase): +    @classmethod +    def setUpTestData(cls): +        cls.developers_role = Role.objects.create( +            id=12345678, +            name="Developers", +            colour=16777215, +            permissions=104324673, +            position=1, +        ) + +        cls.author = cls.actor = User.objects.create( +            id=12345678901, +            name='Alan Turing', +            discriminator=1912, +            avatar_hash=None +        ) + +        cls.author.roles.add(cls.developers_role) + +        cls.deletion_context = MessageDeletionContext.objects.create( +            actor=cls.actor, +            creation=timezone.now() +        ) + +        cls.deleted_message = DeletedMessage.objects.create( +            author=cls.author, +            id=614125807161573397, +            channel_id=1984, +            content='I think my tape has run out...', +            embeds=[], +            deletion_context=cls.deletion_context, +        ) + +    def setUp(self): +        """Sets up a test client that automatically sets the correct HOST header.""" +        self.client = Client(HTTP_HOST=reverse_host(host="staff")) + +    def test_logs_returns_200_for_existing_logs_pk(self): +        url = reverse('logs', host="staff", args=(self.deletion_context.id,)) +        response = self.client.get(url) +        self.assertEqual(response.status_code, 200) + +    def test_logs_returns_404_for_nonexisting_logs_pk(self): +        url = reverse('logs', host="staff", args=(self.deletion_context.id + 100,)) +        response = self.client.get(url) +        self.assertEqual(response.status_code, 404) + +    def test_author_color_is_set_in_response(self): +        url = reverse('logs', host="staff", args=(self.deletion_context.id,)) +        response = self.client.get(url) +        role_colour = hex_colour(self.developers_role.colour) +        html_needle = ( +            f'<span class="discord-username" style="color: {role_colour}">{self.author}</span>' +        ) +        self.assertInHTML(html_needle, response.content.decode()) | 
