diff options
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 |
commit | 5cd466f393e9be2bc0bce6315257e3344306bb43 (patch) | |
tree | 22749e0a51f06bcc0ae8a4e1912ebe2cbea9470e /ishtar_common/tests.py | |
parent | 94eb112df3af9ab93d0d2c9a4fc2e3e0d86d08e1 (diff) | |
download | Ishtar-5cd466f393e9be2bc0bce6315257e3344306bb43.tar.bz2 Ishtar-5cd466f393e9be2bc0bce6315257e3344306bb43.zip |
✅ sheet filter test
Diffstat (limited to 'ishtar_common/tests.py')
-rw-r--r-- | ishtar_common/tests.py | 60 |
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 |