summaryrefslogtreecommitdiff
path: root/archaeological_operations/tests.py
diff options
context:
space:
mode:
Diffstat (limited to 'archaeological_operations/tests.py')
-rw-r--r--archaeological_operations/tests.py164
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):