diff options
Diffstat (limited to 'ishtar_common/tests.py')
-rw-r--r-- | ishtar_common/tests.py | 87 |
1 files changed, 75 insertions, 12 deletions
diff --git a/ishtar_common/tests.py b/ishtar_common/tests.py index 4398ed762..6a2e9d3b0 100644 --- a/ishtar_common/tests.py +++ b/ishtar_common/tests.py @@ -2068,6 +2068,7 @@ class GDPRTest(TestCase): self.user = User.objects.create_superuser( self.username, "nomail@nomail.com", self.password ) + self.user.user_permissions.add(Permission.objects.get(codename="change_person")) self.person_1 = models.Person.objects.create( name="Boule", surname=" ", @@ -2104,19 +2105,81 @@ class GDPRTest(TestCase): def test_views(self): nb = models.GDPRLog.objects.count() - c = Client() - c.login(username=self.username, password=self.password) - self.settings(GDPR_LOGGING=True) - c.get(reverse("get-person")) - self.assertEqual(models.GDPRLog.objects.count(), nb + 1) - self.assertEqual(models.GDPRLog.objects.order_by('-pk')[0].activity, "DC") - c.get(reverse("get-person", args=["csv"])) - self.assertEqual(models.GDPRLog.objects.count(), nb + 2) - self.assertEqual(models.GDPRLog.objects.order_by('-pk')[0].activity, "DE") - response = c.get(reverse("show-person", args=[self.person_1.pk, ""])) - self.assertEqual(models.GDPRLog.objects.count(), nb + 3) - self.assertEqual(models.GDPRLog.objects.order_by('-pk')[0].activity, "PC") + with self.settings(GDPR_LOGGING=False): + c = Client() + c.login(username=self.username, password=self.password) + c.get(reverse("get-person")) + self.assertEqual(models.GDPRLog.objects.count(), nb) + with self.settings(GDPR_LOGGING=True): + c = Client() + c.login(username=self.username, password=self.password) + c.get(reverse("get-person")) + self.assertEqual(models.GDPRLog.objects.count(), nb + 1) + self.assertEqual(models.GDPRLog.objects.order_by('-pk')[0].activity, "DC") + c.get(reverse("get-person", args=["csv"])) + self.assertEqual(models.GDPRLog.objects.count(), nb + 2) + self.assertEqual(models.GDPRLog.objects.order_by('-pk')[0].activity, "DE") + c.get(reverse("show-person", args=[self.person_1.pk, ""])) + self.assertEqual(models.GDPRLog.objects.count(), nb + 3) + self.assertEqual(models.GDPRLog.objects.order_by('-pk')[0].activity, "PV") + c.get(reverse("show-person", args=[self.person_1.pk, "pdf"])) + self.assertEqual(models.GDPRLog.objects.count(), nb + 4) + self.assertEqual(models.GDPRLog.objects.order_by('-pk')[0].activity, "PE") + title = models.TitleType.objects.create(label="Mr", txt_idx='mr') + c.post( + reverse("person-qa-bulk-update-confirm", args=[str(self.person_1.pk)]), + {"qa_title": title.pk}, + ) + self.assertEqual(models.GDPRLog.objects.count(), nb + 5) + self.assertEqual(models.GDPRLog.objects.order_by('-pk')[0].activity, "PM") + # deletion + url = "/person_deletion/" + step = "selec-person_deletion" + data = { + "person_deletionperson_deletion_wizard-current_step": [step], + f"{step}-pks": [str(self.person_3.pk)] + } + c.post(url, data) + data = { + "person_deletionperson_deletion_wizard-current_step": ["final-person_deletion"], + } + c.post(url, data, follow=True) + self.assertEqual(models.GDPRLog.objects.count(), nb + 6) + self.assertEqual(models.GDPRLog.objects.order_by('-pk')[0].activity, "PD") + # auto-merge + url = f"/person-manual-merge-items/{self.person_1.pk}_{self.person_2.pk}/" + c.post(url, {"main_item": self.person_1.pk}, follow=True) + self.assertEqual(models.GDPRLog.objects.count(), nb + 7) + self.assertEqual(models.GDPRLog.objects.order_by('-pk')[0].activity, "Pm") + # merge + merge_model = models.Person.merge_candidate.through + ln = merge_model.objects.count() + self.person_4 = models.Person.objects.create( + name="George", history_modifier=self.user, + ) + self.person_3.save() + self.person_4.save() + self.assertTrue(merge_model.objects.count(), ln + 1) + data = { + "form-0-b_is_duplicate_a": True, + "form-0-id": list(merge_model.objects.all())[-1].pk, + "form-TOTAL_FORMS": 1, + "form-INITIAL_FORMS": 1 + } + c.post("/person-merge/", data) + self.assertEqual(models.GDPRLog.objects.count(), nb + 8) + self.assertEqual(models.GDPRLog.objects.order_by('-pk')[0].activity, "Pm") + # admin consultation + c.get("/admin/ishtar_common/person/") + self.assertEqual(models.GDPRLog.objects.count(), nb + 9) + self.assertEqual(models.GDPRLog.objects.order_by('-pk')[0].activity, "AC") + c.get(f"/admin/ishtar_common/person/{self.person_1.pk}/change/") + self.assertEqual(models.GDPRLog.objects.count(), nb + 10) + self.assertEqual(models.GDPRLog.objects.order_by('-pk')[0].activity, "AV") + c.post(f"/admin/ishtar_common/person/{self.person_1.pk}/delete/", {"post": "yes"}) + self.assertEqual(models.GDPRLog.objects.count(), nb + 11) + self.assertEqual(models.GDPRLog.objects.order_by('-pk')[0].activity, "AD") def test_create_log_performance(self): persons = [] |