diff options
Diffstat (limited to 'archaeological_files/tests.py')
-rw-r--r-- | archaeological_files/tests.py | 186 |
1 files changed, 184 insertions, 2 deletions
diff --git a/archaeological_files/tests.py b/archaeological_files/tests.py index bf9ac14c0..53c7d5282 100644 --- a/archaeological_files/tests.py +++ b/archaeological_files/tests.py @@ -61,7 +61,7 @@ def create_administrativact(user, fle): class FileTest(TestCase, FileInit): - fixtures = COMMON_FIXTURES + fixtures = FILE_TOWNS_FIXTURES model = models.File def setUp(self): @@ -234,7 +234,6 @@ class FileTest(TestCase, FileInit): self.assertEqual(parcel_nb, Parcel.objects.count()) def test_show(self): - c = Client() url = "show-file" pk = self.item.pk response = self.client.get(reverse(url, kwargs={"pk": pk})) @@ -247,6 +246,189 @@ class FileTest(TestCase, FileInit): self.assertEqual(response.status_code, 200) self.assertIn('class="card sheet"', response.content.decode()) + def test_preventive(self): + pk = self.item.pk + url = reverse("file-edit-preventive", kwargs={"pk": pk}) + response = self.client.get(url) + self.assertEqual(response.status_code, 302) + self.login_as_superuser() + response = self.client.get(url) + self.assertEqual(response.status_code, 200) + job1 = models.Job.objects.all()[0] + job2 = models.Job.objects.all()[1] + cost1 = models.EquipmentServiceCost.objects.filter( + equipment_service_type=models.EquipmentServiceType.objects.all()[0] + ).all()[0] + cost2 = models.EquipmentServiceCost.objects.filter( + equipment_service_type=models.EquipmentServiceType.objects.all()[1] + ).all()[1] + data = { + "pk": pk, + "start_date": "2021-05-03", + "total_surface": 6000, + "linear_meter": 200, + "preventive-040-ground-jobs-0-file_id": pk, + "preventive-040-ground-jobs-0-job": job1.pk, + "preventive-040-ground-jobs-0-man_by_day_planned": 5, + "preventive-040-ground-jobs-0-days_planned": 6, + "preventive-040-ground-jobs-0-man_by_day_worked": 0, + "preventive-040-ground-jobs-0-days_worked": 0, + "preventive-030-post-excavation-0-file_id": pk, + "preventive-030-post-excavation-0-job": job2.pk, + "preventive-030-post-excavation-0-man_by_day_planned": 5, + "preventive-030-post-excavation-0-days_planned": 6, + "preventive-030-post-excavation-0-man_by_day_worked": 0, + "preventive-030-post-excavation-0-days_worked": 0, + "engins-mecaniques-0-file_id": pk, + "engins-mecaniques-0-equipment_service_cost": cost1.pk, + "engins-mecaniques-0-quantity_by_day_planned": 5, + "engins-mecaniques-0-days_planned": 6, + "engins-mecaniques-0-quantity_by_day_worked": 0, + "engins-mecaniques-0-days_worked": 0, + "locaux-de-chantiers-et-prestations-techniques-0-file_id": pk, + "locaux-de-chantiers-et-prestations-techniques-0-equipment_service_cost": cost2.pk, + "locaux-de-chantiers-et-prestations-techniques-0-quantity_by_day_planned": 5, + "locaux-de-chantiers-et-prestations-techniques-0-days_planned": 6, + "locaux-de-chantiers-et-prestations-techniques-0-quantity_by_day_worked": 0, + "locaux-de-chantiers-et-prestations-techniques-0-days_worked": 0, + } + for k in ( + "preventive-040-ground-jobs", + "preventive-030-post-excavation", + "engins-mecaniques", + "locaux-de-chantiers-et-prestations-techniques", + ): + data[k + "-TOTAL_FORMS"] = 1 + data[k + "-INITIAL_FORMS"] = 0 + data[k + "-MIN_NUM_FORMS"] = 0 + data[k + "-MAX_NUM_FORMS"] = 1000 + response = self.client.post(url, data) + self.assertRedirects( + response, + url, + status_code=302, + target_status_code=200, + fetch_redirect_response=True, + ) + file = models.File.objects.get(pk=self.item.pk) + self.assertEqual(file.total_surface, 6000) + self.assertEqual(file.linear_meter, 200) + self.assertEqual(file.start_date, datetime.date(2021, 5, 3)) + self.assertEqual( + models.PreventiveFileGroundJob.objects.filter(file_id=pk, job=job1).count(), + 1, + ) + self.assertEqual( + models.PreventiveFileGroundJob.objects.filter( + file_id=pk, job=job1.child + ).count(), + 1, + ) + self.assertEqual( + models.PreventiveFileJob.objects.filter(file_id=pk, job=job2).count(), 1 + ) + self.assertEqual( + models.PreventiveFileJob.objects.filter(file_id=pk, job=job2.child).count(), + 1, + ) + self.assertEqual( + models.PreventiveFileEquipmentServiceCost.objects.filter( + file_id=pk, equipment_service_cost=cost1.pk + ).count(), + 1, + ) + self.assertEqual( + models.PreventiveFileEquipmentServiceCost.objects.filter( + file_id=pk, equipment_service_cost=cost2.pk + ).count(), + 1, + ) + + def test_preventive_add_default(self): + pk = self.item.pk + url = reverse("file-edit-preventive", kwargs={"pk": pk}) + self.login_as_superuser() + for job in models.Job.objects.all()[:5]: + job.default_daily_need_on_ground = 4 + job.save() + for job in models.Job.objects.all()[:3]: + job.default_daily_need = 5 + job.save() + nb = models.EquipmentServiceCost.objects.update(default_quantity_by_day=10) + response = self.client.get( + reverse("file-edit-preventive-default-cost", kwargs={"pk": pk}) + ) + self.assertRedirects( + response, + url, + status_code=302, + target_status_code=200, + fetch_redirect_response=True, + ) + self.assertEqual(models.PreventiveFileJob.objects.filter(file_id=pk).count(), 3) + self.assertEqual( + models.PreventiveFileGroundJob.objects.filter(file_id=pk).count(), 5 + ) + self.assertEqual( + models.PreventiveFileEquipmentServiceCost.objects.filter( + file_id=pk + ).count(), + nb, + ) + + def test_preventive_copy_planned(self): + pk = self.item.pk + url = reverse("file-edit-preventive", kwargs={"pk": pk}) + self.login_as_superuser() + + for job in models.Job.objects.all()[:5]: + models.PreventiveFileJob.objects.create( + file_id=pk, job=job, man_by_day_planned=5, days_planned=42 + ) + models.PreventiveFileGroundJob.objects.create( + file_id=pk, job=job, man_by_day_planned=2, days_planned=50 + ) + + nb = models.EquipmentServiceCost.objects.count() + for cost in models.EquipmentServiceCost.objects.all(): + models.PreventiveFileEquipmentServiceCost.objects.create( + equipment_service_cost=cost, + file_id=pk, + quantity_by_day_planned=4, + days_planned=3, + ) + + response = self.client.get( + reverse("file-edit-preventive-copy-planned", kwargs={"pk": pk}) + ) + self.assertRedirects( + response, + url, + status_code=302, + target_status_code=200, + fetch_redirect_response=True, + ) + self.assertEqual( + models.PreventiveFileJob.objects.filter( + file_id=pk, man_by_day_worked=5, days_worked=42 + ).count(), + 5, + ) + self.assertEqual( + models.PreventiveFileGroundJob.objects.filter( + file_id=pk, man_by_day_worked=2, days_worked=50 + ).count(), + 5, + ) + self.assertEqual( + models.PreventiveFileEquipmentServiceCost.objects.filter( + file_id=pk, + days_worked=3, + quantity_by_day_worked=4, + ).count(), + nb, + ) + class FileOperationTest(TestCase, OperationInitTest, FileInit): model = models.File |