diff options
author | Cefin <kevon@tuta.io> | 2022-03-09 13:06:37 +0100 |
---|---|---|
committer | Étienne Loks <etienne.loks@iggdrasil.net> | 2022-12-12 12:21:00 +0100 |
commit | 504715e3da32b4769a68afbcf4f5d5f1e416b9b5 (patch) | |
tree | 383032caf2c733b841a74a94250736d31d7f1726 | |
parent | 4f898cad7318a13e2d8e0c7744c6960d534817d2 (diff) | |
download | Ishtar-504715e3da32b4769a68afbcf4f5d5f1e416b9b5.tar.bz2 Ishtar-504715e3da32b4769a68afbcf4f5d5f1e416b9b5.zip |
Operation - Parcels - Modify: refactoring and reorganize tests #5227
-rw-r--r-- | archaeological_operations/tests.py | 164 |
1 files changed, 109 insertions, 55 deletions
diff --git a/archaeological_operations/tests.py b/archaeological_operations/tests.py index 1da5aed6c..8e3bb7e70 100644 --- a/archaeological_operations/tests.py +++ b/archaeological_operations/tests.py @@ -1642,7 +1642,7 @@ class ParcelTest(ImportTest, TestCase): 'recognized in "%s"' % (str(not_imported), value), ) - def test_operation_parcel_modify(self): + def init_operation_parcels_tests(self): username, password, user = create_user( username="Gandalf", password="ushallpass" ) @@ -1656,109 +1656,163 @@ class ParcelTest(ImportTest, TestCase): c = Client() c.login(username=username, password=password) - town_1 = Town.objects.create(name="Minas Morgul", numero_insee="10920") - town_2 = Town.objects.create(name="Minas Tirith", numero_insee="10901") - parcel_1 = models.Parcel.objects.create(town=town_1, year=2640, section="M", parcel_number="1", public_domain=False) - parcel_2 = models.Parcel.objects.create(town=town_2, year=2620, section="M", parcel_number="2", public_domain=True) - parcel_associated = models.Parcel.objects.create(town=town_1, year=2000, section="ASSO", parcel_number="10", public_domain=False) - operation = create_operation(user) + + town_1, town_2 = self.init_towns() + operation.towns.add(town_1) operation.towns.add(town_2) - operation.parcels.add(parcel_1) - operation.parcels.add(parcel_2) - operation.parcels.add(parcel_associated) - cr_data = { - "label": "Context record", - "operation": operation, - "parcel": parcel_associated, - "history_modifier": user, - } - ContextRecord = apps.get_model( - "archaeological_context_records", "ContextRecord" - ) - cr = ContextRecord.objects.create(**cr_data) + return c, user, operation, town_1, town_2 - response = c.get(reverse("operation-parcels-modify", kwargs={"pk": operation.pk})) + def init_towns(self): + town_1 = Town.objects.create(name="Minas Morgul", numero_insee="10920") + town_2 = Town.objects.create(name="Minas Tirith", numero_insee="10901") + + return town_1, town_2 + + def init_one_parcel(self, op, twn1): + p = models.Parcel.objects.create(town=twn1, year=2640, section="M", parcel_number="1", public_domain=False) + op.parcels.add(p) + + return p + def init_two_parcels(self, op, twn1, twn2): + p = models.Parcel.objects.create(town=twn2, year=2620, section="M", parcel_number="2", public_domain=True) + op.parcels.add(p) + + return self.init_one_parcel(op, twn1), p + + def init_data(self): + nb_parcels = models.Parcel.objects.all().count() + town_pk = models.Town.objects.all().first().pk + data = {} + for idx in range(nb_parcels + views.PARCEL_FORMSET_EXTRA_FORM): + data.update({ + f"form-{idx}-pk": "", + f"form-{idx}-year": "", + f"form-{idx}-section": "", + f"form-{idx}-parcel_number": "", + f"form-{idx}-town": town_pk, + f"form-{idx}-DELETE": '', + }) + + return data + + def test_operation_parcel_modify_and_add(self): + c, user, operation, town_1, town_2 = self.init_operation_parcels_tests() + + parcel_1, parcel_2 = self.init_two_parcels(operation, town_1, town_2) + + response = c.get(reverse("operation-parcels-modify", kwargs={"pk": operation.pk})) self.assertEqual(response.status_code, 200) self.assertContains(response, town_1.name) self.assertContains(response, town_2.name) self.assertContains(response, parcel_1.year) self.assertContains(response, parcel_2.year) - self.assertContains(response, parcel_associated.year) self.assertContains(response, parcel_1.section) self.assertContains(response, parcel_2.section) - self.assertContains(response, parcel_associated.section) self.assertContains(response, parcel_1.parcel_number) self.assertContains(response, parcel_2.parcel_number) - self.assertContains(response, parcel_associated.parcel_number) - data = {} - for idx in range(3 + views.PARCEL_FORMSET_EXTRA_FORM): - data.update({ - f"form-{idx}-pk": "", - f"form-{idx}-year": "", - f"form-{idx}-section": "", - f"form-{idx}-parcel_number": "", - f"form-{idx}-town": town_1.pk, - f"form-{idx}-DELETE": '', - }) + data = self.init_data() data.update({ "form-0-pk": parcel_1.pk, "form-0-year": 2021, "form-0-section": "SCT1", "form-0-parcel_number": "001", "form-0-town": town_2.pk, - "form-0-DELETE": "on", "form-1-pk": parcel_2.pk, "form-1-year": 2021, "form-1-section": "SCT2", "form-1-parcel_number": "002", "form-1-town": town_2.pk, - "form-3-year": 2011, - "form-3-section": "XXX", - "form-3-parcel_number": "003", - "form-3-town": town_2.pk, + "form-2-year": 2021, + "form-2-section": "SCT3", + "form-2-parcel_number": "003", + "form-2-town": town_2.pk, }) - post_response = c.post("/operation-parcels-modify/" + str(operation.pk) + "/", data) + post_response = c.post("/operation-parcels-modify/" + str(operation.pk) + "/", data) self.assertEqual(post_response.status_code, 302) response = c.get(reverse("operation-parcels-modify", kwargs={"pk": operation.pk})) self.assertContains(response, town_2.name) self.assertContains(response, 2021) + self.assertContains(response, "SCT1") self.assertContains(response, "SCT2") - self.assertContains(response, "SCT1", count=0) - self.assertContains(response, "001", count=0) + self.assertContains(response, "SCT3") + self.assertContains(response, "001") self.assertContains(response, "002") self.assertContains(response, "003") - self.assertContains(response, "XXX") parcels = models.Parcel.objects.all() - print("First passage parcels BDD : ", parcels) self.assertEqual(parcels.count(), 3) - deleted_parcel = models.Parcel.objects.filter(pk=parcel_1.pk) - self.assertEqual(deleted_parcel.count(), 0) + def test_operation_parcel_delete(self): + c, user, operation, town_1, town_2 = self.init_operation_parcels_tests() + + parcel_1 = self.init_one_parcel(operation, town_1) + data = self.init_data() data.update({ - "form-2-DELETE": "on", + "form-0-pk": parcel_1.pk, + "form-0-year": parcel_1.year, + "form-0-section": parcel_1.section, + "form-0-parcel_number": parcel_1.parcel_number, + "form-0-town": town_1.pk, + "form-0-DELETE": "on", }) - post_response = c.post("/operation-parcels-modify/" + str(operation.pk) + "/", data) + post_response = c.post("/operation-parcels-modify/" + str(operation.pk) + "/", data) self.assertEqual(post_response.status_code, 302) - # self.assertContains(response, "This parcel is associated with a context " - # "record. It can't be deleted.") - associated_parcel = models.Parcel.objects.filter(pk=parcel_associated.pk) - self.assertEqual(associated_parcel.count(), 1) + + parcels = models.Parcel.objects.all() + self.assertEqual(parcels.count(), 0) + + def test_operation_parcel_association_with_cr(self): + c, user, operation, town_1, town_2 = self.init_operation_parcels_tests() + + parcel_1 = self.init_one_parcel(operation, town_1) + + cr_data = { + "label": "Context record", + "operation": operation, + "parcel": parcel_1, + "history_modifier": user, + } + ContextRecord = apps.get_model( + "archaeological_context_records", "ContextRecord" + ) + cr = ContextRecord.objects.create(**cr_data) + + data = self.init_data() + data.update({ + "form-0-pk": parcel_1.pk, + "form-0-year": parcel_1.year, + "form-0-section": parcel_1.section, + "form-0-parcel_number": parcel_1.parcel_number, + "form-0-town": town_1.pk, + "form-0-DELETE": "on", + }) + + post_response = c.post("/operation-parcels-modify/" + str(operation.pk) + "/", data) + + self.assertEqual(post_response.status_code, 200) + self.assertContains(post_response, _("This parcel is associated with a context " + "record. It can't be deleted.") # How to convert ''' to ' ? + ) + parcels = models.Parcel.objects.all() + self.assertEqual(parcels.count(), 1) + + def test_operation_parcel_free_entry(self): + c, user, operation, town_1, town_2 = self.init_operation_parcels_tests() + data = self.init_data() data.update({ "_town": town_2.pk, "_parcel_selection": "2013:XD:10 to 20, YD:24", }) - post_response = c.post("/operation-parcels-modify/" + str(operation.pk) + "/", data) response = c.get(reverse("operation-parcels-modify", kwargs={"pk": operation.pk})) @@ -1768,9 +1822,9 @@ class ParcelTest(ImportTest, TestCase): self.assertContains(response, "24") for i in range(10, 20): self.assertContains(response, i) + parcels = models.Parcel.objects.all() - print("Second passage parcels BDD : ", parcels) - self.assertEqual(parcels.count(), 15) + self.assertEqual(parcels.count(), 12) def create_orga(user): |