diff options
author | 2019-08-22 20:55:57 +0200 | |
---|---|---|
committer | 2019-08-23 15:40:53 +0200 | |
commit | b016dbd5431180a183cc99d1841506cc3d240e04 (patch) | |
tree | f5d459744510050f92464892f6836d793d03fda8 /pydis_site | |
parent | Adding required fields validator and tests to embed fields (diff) |
Adding tests for filters and the deleted message front-end view
Diffstat (limited to 'pydis_site')
-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()) |