diff --git a/SAS/TMSS/backend/test/t_adapter.py b/SAS/TMSS/backend/test/t_adapter.py index 63c5f3946f03e6d1c546e53e9fa8054e64f1c4d0..945506cc0282d21a45f6ead311e6190692956dac 100755 --- a/SAS/TMSS/backend/test/t_adapter.py +++ b/SAS/TMSS/backend/test/t_adapter.py @@ -779,11 +779,18 @@ class CycleReportTest(unittest.TestCase): dp_pulsar_pip1 = models.Dataproduct.objects.create(**Dataproduct_test_data(producer=subtask_output_pip, dataformat=models.Dataformat.objects.get(value="pulp summary"), datatype=models.Datatype.objects.get(value="pulsar profile"))) dp_pulsar_pip2 = models.Dataproduct.objects.create(**Dataproduct_test_data(producer=subtask_output_pip, dataformat=models.Dataformat.objects.get(value="pulp analysis"), datatype=models.Datatype.objects.get(value="time series"))) - # Create reservations + # Create generic and 'stand-alone' reservations reservation_no_project = models.Reservation.objects.create(**Reservation_test_data(duration=300)) reservation_mixed = models.Reservation.objects.create(**Reservation_test_data(duration=500, project=self.project)) # Non-production project reservation_project = models.Reservation.objects.create(**Reservation_test_data(duration=600, project=self.project_regular)) # Production project + reservation_template = models.ReservationTemplate.objects.get(name="resource reservation") + reservation_template_spec = get_default_json_object_for_schema(reservation_template.schema) + reservation_template_spec['activity']['type'] = 'stand-alone mode' + reservation_no_project_sa_mode = models.Reservation.objects.create(start_time=datetime.now(), stop_time=datetime.now()+timedelta(seconds=1200), name="SA no project", description="SA no project", specifications_template=reservation_template, specifications_doc=reservation_template_spec) + reservation_mixed_sa_mode = models.Reservation.objects.create(start_time=datetime.now(), stop_time=datetime.now()+timedelta(seconds=350), project=self.project, name="SA mixed no project", description="SA mixed no project", specifications_template=reservation_template, specifications_doc=reservation_template_spec) + reservation_project_sa_mode = models.Reservation.objects.create(start_time=datetime.now(), stop_time=datetime.now() + timedelta(seconds=800), project=self.project_regular, name="SA project", description="SA project", specifications_template=reservation_template, specifications_doc=reservation_template_spec) + # Assertions # Assert we get the expected object @@ -803,11 +810,21 @@ class CycleReportTest(unittest.TestCase): self.assertIn(dp_pulsar_pip2.pk, ids_pulsar_pip) # Assert usage_mode + total_sa_mode = reservation_no_project_sa_mode.duration + reservation_mixed_sa_mode.duration + reservation_project_sa_mode.duration + total_all_modes = reservation_no_project.duration + reservation_mixed.duration + reservation_project.duration + total_sa_mode usage_mode = result['usage_mode'] - total_all_modes = reservation_no_project.duration + reservation_mixed.duration + reservation_project.duration self.assertAlmostEqual(usage_mode['all modes']['total'], total_all_modes) - self.assertAlmostEqual(usage_mode['all modes']['observing'], reservation_project.duration) - self.assertAlmostEqual(usage_mode['all modes']['idle/test'], reservation_mixed.duration) + self.assertAlmostEqual(usage_mode['all modes']['observing'], reservation_project.duration+reservation_project_sa_mode.duration) + self.assertAlmostEqual(usage_mode['all modes']['idle/test'], reservation_mixed.duration+reservation_mixed_sa_mode.duration) + + self.assertAlmostEqual(usage_mode['stand-alone mode']['total'], total_sa_mode) + self.assertAlmostEqual(usage_mode['stand-alone mode']['no project'], reservation_no_project_sa_mode.duration) + self.assertAlmostEqual(usage_mode['stand-alone mode']['project'], reservation_project_sa_mode.duration) + self.assertAlmostEqual(usage_mode['stand-alone mode']['mixed/no project'], reservation_mixed_sa_mode.duration) + + self.assertAlmostEqual(usage_mode['ILT mode']['total'], total_all_modes-total_sa_mode) + self.assertAlmostEqual(usage_mode['ILT mode']['observing'], reservation_project.duration+reservation_project_sa_mode.duration - reservation_project_sa_mode.duration) + self.assertAlmostEqual(usage_mode['ILT mode']['idle/test'], reservation_mixed.duration+reservation_mixed_sa_mode.duration - reservation_mixed_sa_mode.duration) class ProjectReportTest(unittest.TestCase):