changeset 1220:d63f9ece1129 modernize tip

Add unit test for bulletin template tags.
author Brian Neal <bgneal@gmail.com>
date Sun, 23 Feb 2025 16:34:01 -0600
parents f354554afb6e
children
files bulletins/tests/__init__.py bulletins/tests/test_templatetags.py
diffstat 1 files changed, 46 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/bulletins/tests/test_templatetags.py	Sun Feb 23 16:34:01 2025 -0600
@@ -0,0 +1,46 @@
+"""
+Unit tests for the bulletin app template tags.
+
+"""
+from datetime import datetime, timedelta
+
+from django.template import Context, Template
+from django.test import TestCase
+
+from bulletins.models import Bulletin
+
+
+class BulletinTemplatetagsTestCase(TestCase):
+
+    TEMPLATE = Template('{% load bulletin_tags %} {% current_bulletins %}')
+
+    def setUp(self):
+        now = datetime.now()
+        bulletins = [
+            Bulletin(title='All Points', text='No end date',
+                     start_date=now - timedelta(days=3)),
+            Bulletin(title='Attention', text='Has end date within window',
+                     start_date=now - timedelta(days=30),
+                     end_date=now + timedelta(days=30)),
+            Bulletin(title='Expired', text='Ended already',
+                     start_date=now - timedelta(days=30),
+                     end_date=now - timedelta(days=10)),
+            Bulletin(title='Not enabled', text='Not enabled text',
+                     start_date=now - timedelta(days=30),
+                     is_enabled=False)
+        ]
+        for bulletin in bulletins:
+            bulletin.save()
+
+    def test_renders_expected_bulletins(self):
+        rendered = self.TEMPLATE.render(Context({}))
+
+        self.assertIn('All Points', rendered)
+        self.assertIn('No end date', rendered)
+        self.assertIn('Attention', rendered)
+        self.assertIn('Has end date within window', rendered)
+
+        self.assertNotIn('Expired', rendered)
+        self.assertNotIn('Ended already', rendered)
+        self.assertNotIn('Not enabled', rendered)
+