summaryrefslogtreecommitdiff
path: root/archaeological_files/tests.py
diff options
context:
space:
mode:
authorÉtienne Loks <etienne.loks@iggdrasil.net>2021-08-02 17:19:16 +0200
committerÉtienne Loks <etienne.loks@iggdrasil.net>2022-07-08 09:58:48 +0200
commitab48e1850c5a797d55515d0794f6efe8687a01d8 (patch)
tree9e4f111ce19af56381aee5954d258323c4a4f61a /archaeological_files/tests.py
parent585f2a1e3e0576ce7fe0bf8efd973a9d419a7691 (diff)
downloadIshtar-ab48e1850c5a797d55515d0794f6efe8687a01d8.tar.bz2
Ishtar-ab48e1850c5a797d55515d0794f6efe8687a01d8.zip
Preventive file: copy planned, add default cost - tests - fixtures
Diffstat (limited to 'archaeological_files/tests.py')
-rw-r--r--archaeological_files/tests.py186
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