aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGravatar Sebastiaan Zeeff <[email protected]>2019-08-22 20:55:57 +0200
committerGravatar Sebastiaan Zeeff <[email protected]>2019-08-23 15:40:53 +0200
commitb016dbd5431180a183cc99d1841506cc3d240e04 (patch)
treef5d459744510050f92464892f6836d793d03fda8
parentAdding 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.py21
-rw-r--r--pydis_site/apps/staff/tests/test_logs_view.py64
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())