diff options
Diffstat (limited to 'archaeological_operations/tests.py')
| -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): | 
