From fd768cf16de319d68c8b0aad6c781ecb88967e49 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?J=C3=B6rn=20K=C3=BCnsem=C3=B6ller?=
 <jkuensem@physik.uni-bielefeld.de>
Date: Wed, 27 Sep 2023 18:12:08 +0200
Subject: [PATCH] TMSS-1996: full test setup

---
 .../test/t_report_refresh_service.py          | 29 +++++++++++++++----
 1 file changed, 24 insertions(+), 5 deletions(-)

diff --git a/SAS/TMSS/backend/services/report_refresh/test/t_report_refresh_service.py b/SAS/TMSS/backend/services/report_refresh/test/t_report_refresh_service.py
index b5e81f4b8f6..e878c972ccb 100755
--- a/SAS/TMSS/backend/services/report_refresh/test/t_report_refresh_service.py
+++ b/SAS/TMSS/backend/services/report_refresh/test/t_report_refresh_service.py
@@ -47,8 +47,6 @@ class TestReportRefreshService(unittest.TestCase):
         cls.tmss_test_env = TMSSTestEnvironment(exchange=cls.tmp_exchange.address, populate_test_data=False, populate_schemas=False, start_websocket=False, start_postgres_listener=True, enable_viewflow=False)
         cls.tmss_test_env.start()
 
-        cls.test_data_creator = cls.tmss_test_env.create_test_data_creator()
-
     @classmethod
     def tearDownClass(cls) -> None:
         cls.tmss_test_env.stop()
@@ -60,12 +58,33 @@ class TestReportRefreshService(unittest.TestCase):
         of a cycle report in the database.
         '''
 
+        # test data setup
+        from lofar.sas.tmss.test import tmss_test_data_django_models
+        from lofar.sas.tmss.tmss.tmssapp import models
+        project = models.Project.objects.create(**tmss_test_data_django_models.Project_test_data(name=str(uuid.uuid4())))
+        cycle = models.Cycle.objects.create(**tmss_test_data_django_models.Cycle_test_data(name=str(uuid.uuid4())))
+        project.cycles.set([cycle])
+        project.save()
+        scheduling_set = models.SchedulingSet.objects.create(**tmss_test_data_django_models.SchedulingSet_test_data(project=project))
+        scheduling_unit_template = models.SchedulingUnitTemplate.get_latest(name='scheduling unit')
+        scheduling_unit_draft = models.SchedulingUnitDraft.objects.create(**tmss_test_data_django_models.SchedulingUnitDraft_test_data(name=str(uuid.uuid4()), template=scheduling_unit_template, scheduling_set=scheduling_set))
+        obs_task_template = models.TaskTemplate.get_latest(name='target observation')
+        task_draft = models.TaskDraft.objects.create(**tmss_test_data_django_models.TaskDraft_test_data(name=str(uuid.uuid4()), specifications_template=obs_task_template, scheduling_unit_draft=scheduling_unit_draft))
+        task_blueprint = models.TaskBlueprint.objects.create(**tmss_test_data_django_models.TaskBlueprint_test_data(name=str(uuid.uuid4()), task_draft=task_draft))
+        subtask_obs = models.Subtask.objects.create(**tmss_test_data_django_models.Subtask_test_data(state=models.SubtaskState.objects.get(value="defining"),
+                                                                        subtask_template=models.SubtaskTemplate.get_latest(name='observation control'),
+                                                                        task_blueprint=task_blueprint))
+        subtask_obs.state = models.SubtaskState.objects.get(value="defined")
+        subtask_obs.save()
+
         # create and start the service (the object under test)
         service = create_service(exchange=self.tmp_exchange.address)
         with BusListenerJanitor(service):
-
-            pass
-            # todo
+            self.assertEqual(models.CycleReport.objects.filter(cycle=cycle).count(), 0)
+            subtask_obs.state = models.SubtaskState.objects.get(value="defined")
+            subtask_obs.save()
+            time.sleep(5)   # todo: ugly, is there a better way?
+            self.assertEqual(models.CycleReport.objects.filter(cycle=cycle).count(), 1)
 
 
 if __name__ == '__main__':
-- 
GitLab