summaryrefslogtreecommitdiff
path: root/ishtar_common/tests.py
diff options
context:
space:
mode:
authorÉtienne Loks <etienne.loks@iggdrasil.net>2023-11-16 18:12:19 +0100
committerÉtienne Loks <etienne.loks@iggdrasil.net>2024-04-16 16:38:33 +0200
commit7c668d3b1e6dc519c78e4c10fded33136e37cf1b (patch)
treeaa132c4607c10e05c43cce9eb72bc42881a430c3 /ishtar_common/tests.py
parent01d3f76ea4f2bed48d71e78453ca2d0bd23b2342 (diff)
downloadIshtar-7c668d3b1e6dc519c78e4c10fded33136e37cf1b.tar.bz2
Ishtar-7c668d3b1e6dc519c78e4c10fded33136e37cf1b.zip
✨ GDPR: efficient create_log method
Diffstat (limited to 'ishtar_common/tests.py')
-rw-r--r--ishtar_common/tests.py48
1 files changed, 48 insertions, 0 deletions
diff --git a/ishtar_common/tests.py b/ishtar_common/tests.py
index f14872295..e8821f18c 100644
--- a/ishtar_common/tests.py
+++ b/ishtar_common/tests.py
@@ -2060,6 +2060,54 @@ class MergeTest(TestCase):
self.assertEqual(self.person_1.merge_candidate.count(), init_mc)
+class GDPRTest(TestCase):
+ def setUp(self):
+ self.user, created = User.objects.get_or_create(username="username")
+ self.person_1 = models.Person.objects.create(
+ name="Boule",
+ surname=" ",
+ history_modifier=self.user,
+ )
+ self.person_2 = models.Person.objects.create(
+ name="Bill",
+ history_modifier=self.user,
+ surname="Peyo",
+ )
+ self.person_3 = models.Person.objects.create(
+ name="George", history_modifier=self.user,
+ )
+
+ def test_create_log(self):
+ nb = models.GDPRLog.objects.count()
+ nb_person = models.GDPRPerson.objects.count()
+
+ q = models.Person.objects.filter(pk__in=(self.person_1.pk, self.person_2.pk))
+ models.GDPRLog.create_log(self.user.pk, "127.0.0.1", "DC", q)
+ self.assertEqual(models.GDPRLog.objects.count(), nb + 1)
+ self.assertEqual(models.GDPRPerson.objects.count(), nb_person + 2)
+ last_log = models.GDPRLog.objects.order_by("-pk").all()[0]
+ self.assertEqual(last_log.persons.count(), 2)
+
+ nb = models.GDPRLog.objects.count()
+ nb_person = models.GDPRPerson.objects.count()
+ q = models.Person.objects.filter(pk__in=(self.person_1.pk, self.person_3.pk))
+ models.GDPRLog.create_log(self.user.pk, "127.0.1.1", "DE", q)
+ self.assertEqual(models.GDPRLog.objects.count(), nb + 1)
+ self.assertEqual(models.GDPRPerson.objects.count(), nb_person + 1)
+ last_log = models.GDPRLog.objects.order_by("-pk").all()[0]
+ self.assertEqual(last_log.persons.count(), 2)
+
+ def test_create_log_performance(self):
+ persons = []
+ for idx in range(5000):
+ persons.append(models.Person(name=f"George {idx + 1}", raw_name=f"George {idx + 1}"))
+ models.Person.objects.bulk_create(persons)
+ n = datetime.datetime.now()
+ q = models.Person.objects
+ models.GDPRLog.create_log(self.user.pk, "127.0.0.1", "DE", q)
+ self.assertTrue((datetime.datetime.now() - n).seconds < 3)
+
+
class ShortMenuTest(TestCase):
def setUp(self):
self.username = "username666"