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 | 
