summaryrefslogtreecommitdiff
path: root/ishtar_common/tests.py
diff options
context:
space:
mode:
authorÉtienne Loks <etienne.loks@iggdrasil.net>2024-11-15 17:35:31 +0100
committerÉtienne Loks <etienne.loks@iggdrasil.net>2025-02-19 14:45:55 +0100
commit5cd466f393e9be2bc0bce6315257e3344306bb43 (patch)
tree22749e0a51f06bcc0ae8a4e1912ebe2cbea9470e /ishtar_common/tests.py
parent94eb112df3af9ab93d0d2c9a4fc2e3e0d86d08e1 (diff)
downloadIshtar-5cd466f393e9be2bc0bce6315257e3344306bb43.tar.bz2
Ishtar-5cd466f393e9be2bc0bce6315257e3344306bb43.zip
✅ sheet filter test
Diffstat (limited to 'ishtar_common/tests.py')
-rw-r--r--ishtar_common/tests.py60
1 files changed, 60 insertions, 0 deletions
diff --git a/ishtar_common/tests.py b/ishtar_common/tests.py
index 1e4ba7d9c..32e1f12a8 100644
--- a/ishtar_common/tests.py
+++ b/ishtar_common/tests.py
@@ -3519,6 +3519,66 @@ class IshtarBasicTest(TestCase):
self.assertEqual(town.cached_label, "Sin City - 99 (2050)")
+class SheetFilterTest(TestCase):
+ fixtures = COMMON_FIXTURES
+
+ def setUp(self):
+ username, password, user = create_user()
+ ishtuser = models.IshtarUser.objects.get(user_ptr=user)
+ self.profile_type = models.ProfileType.objects.get(txt_idx="reader_access")
+ models.UserProfile.objects.get_or_create(
+ current=True,
+ person=ishtuser.person,
+ profile_type=self.profile_type,
+ )
+ ishtuser.generate_permission()
+ self.client = Client()
+ self.client.login(username=username, password=password)
+
+ def test_sheet_filter(self):
+ # sheet filter
+ person = models.Person.objects.create(name="Weasley", surname="Bill")
+
+ response = self.client.get(reverse("show-person", kwargs={"pk": person.pk}))
+ self.assertEqual(response.status_code, 200)
+ content = response.content.decode("utf-8")
+ self.assertIn('class="card sheet"', content)
+ self.assertIn('Weasley', content)
+ self.assertIn('Bill', content)
+ person_content_type = ContentType.objects.get_for_model(models.Person)
+ key_sur = models_common.SheetFilter.objects.create(
+ key="surname", content_type=person_content_type, exclude_or_include="E"
+ )
+ key_raw = models_common.SheetFilter.objects.create(
+ key="raw_name", content_type=person_content_type, exclude_or_include="E"
+ )
+ sheet = models_common.FilteredSheet.objects.create(
+ name="Filtered sheet", content_type=person_content_type
+ )
+ self.profile_type.filtered_sheets.add(sheet)
+
+ # exclude surname
+ sheet.filters.add(key_sur)
+ sheet.filters.add(key_raw)
+
+ response = self.client.get(reverse("show-person", kwargs={"pk": person.pk}))
+ content = response.content.decode("utf-8")
+ self.assertIn('class="card sheet"', content)
+ self.assertIn('Weasley', content)
+ self.assertNotIn('Bill', content)
+
+ # only show surname
+ key_raw.exclude_or_include, key_sur.exclude_or_include = "I", "I"
+ key_raw.save()
+ key_sur.save()
+
+ response = self.client.get(reverse("show-person", kwargs={"pk": person.pk}))
+ content = response.content.decode("utf-8")
+ self.assertIn('class="card sheet"', content)
+ self.assertNotIn('Weasley', content)
+ self.assertIn('Bill', content)
+
+
class GeoVectorFormTest(TestCase):
fixtures = FILE_FIXTURES