diff --git a/SAS/TMSS/src/tmss/tmssapp/models/specification.py b/SAS/TMSS/src/tmss/tmssapp/models/specification.py index 6d53547b912316e00dd1df81b0517d15c64795f6..40051c1097bbde00f577c5f584abc9a20f63d72d 100644 --- a/SAS/TMSS/src/tmss/tmssapp/models/specification.py +++ b/SAS/TMSS/src/tmss/tmssapp/models/specification.py @@ -350,7 +350,7 @@ class TaskBlueprint(NamedCommon): # see comment on Subtask for why this needs to be raw sql # todo: alter SQL to work for with task connectors instead of input/output return TaskBlueprint.objects.filter(id__in=RawSQL("SELECT predecessor_tb.id FROM tmssapp_taskblueprint as predecessor_tb\n" - "INNER JOIN tmssapp_taskrelationdraft as tr_blueprint on tr_blueprint.producer_id = predecessor_tb.id\n" + "INNER JOIN tmssapp_taskrelationblueprint as tr_blueprint on tr_blueprint.producer_id = predecessor_tb.id\n" "WHERE tr_blueprint.consumer_id = %s", params=[self.id])) diff --git a/SAS/TMSS/test/t_tmssapp_specification_django_API.py b/SAS/TMSS/test/t_tmssapp_specification_django_API.py index de83cda71dc3b4314e22f08bdc37df04fe937b77..8922cb8c4ca8cb7dc95dcca262b879c1dfe6b3ea 100755 --- a/SAS/TMSS/test/t_tmssapp_specification_django_API.py +++ b/SAS/TMSS/test/t_tmssapp_specification_django_API.py @@ -404,9 +404,8 @@ class TaskDraftTest(unittest.TestCase): task_draft_1:models.TaskDraft = models.TaskDraft.objects.create(**TaskDraft_test_data()) task_draft_2:models.TaskDraft = models.TaskDraft.objects.create(**TaskDraft_test_data()) - # todo: set up TaskConnectors/TaskRelations - #output1 = models.TaskConnector.objects.create(task_draft=task_draft_1) - #models.TaskDraftInput.objects.create(**TaskDraftInput_test_data(task_draft=task_draft_2, producer=output1)) + models.TaskRelationDraft.objects.create(**TaskRelationDraft_test_data(producer=task_draft_1, + consumer=task_draft_2)) self.assertEqual(task_draft_1, task_draft_2.predecessors.all()[0]) self.assertEqual(task_draft_2, task_draft_1.successors.all()[0]) @@ -423,19 +422,16 @@ class TaskDraftTest(unittest.TestCase): # | | # ST2 - -> ST5 ---> ST6 - # todo: set up TaskConnectors/TaskRelations - #output1 = models.TaskDraftOutput.objects.create(task_draft=task_draft_1) - #output2 = models.TaskDraftOutput.objects.create(task_draft=task_draft_2) - #output3 = models.TaskDraftOutput.objects.create(task_draft=task_draft_3) - #output4 = models.TaskDraftOutput.objects.create(task_draft=task_draft_4) - #output5 = models.TaskDraftOutput.objects.create(task_draft=task_draft_5) - #output6 = models.TaskDraftOutput.objects.create(task_draft=task_draft_6) - - #models.TaskDraftInput.objects.create(**TaskDraftInput_test_data(task_draft=task_draft_3, producer=output1)) - #models.TaskDraftInput.objects.create(**TaskDraftInput_test_data(task_draft=task_draft_3, producer=output2)) - #models.TaskDraftInput.objects.create(**TaskDraftInput_test_data(task_draft=task_draft_4, producer=output3)) - #models.TaskDraftInput.objects.create(**TaskDraftInput_test_data(task_draft=task_draft_5, producer=output3)) - #models.TaskDraftInput.objects.create(**TaskDraftInput_test_data(task_draft=task_draft_6, producer=output5)) + models.TaskRelationDraft.objects.create(**TaskRelationDraft_test_data(producer=task_draft_1, + consumer=task_draft_3)) + models.TaskRelationDraft.objects.create(**TaskRelationDraft_test_data(producer=task_draft_2, + consumer=task_draft_3)) + models.TaskRelationDraft.objects.create(**TaskRelationDraft_test_data(producer=task_draft_3, + consumer=task_draft_4)) + models.TaskRelationDraft.objects.create(**TaskRelationDraft_test_data(producer=task_draft_3, + consumer=task_draft_5)) + models.TaskRelationDraft.objects.create(**TaskRelationDraft_test_data(producer=task_draft_5, + consumer=task_draft_6)) self.assertEqual(set((task_draft_1, task_draft_2)), set(task_draft_3.predecessors.all())) self.assertEqual(set((task_draft_4, task_draft_5)), set(task_draft_3.successors.all())) @@ -623,9 +619,8 @@ class TaskBlueprintTest(unittest.TestCase): task_blueprint_1: models.TaskBlueprint = models.TaskBlueprint.objects.create(**TaskBlueprint_test_data()) task_blueprint_2: models.TaskBlueprint = models.TaskBlueprint.objects.create(**TaskBlueprint_test_data()) - # todo: set up TaskConnectors/TaskRelations - # output1 = models.TaskConnector.objects.create(task_blueprint=task_blueprint_1) - # models.TaskBlueprintInput.objects.create(**TaskBlueprintInput_test_data(task_blueprint=task_blueprint_2, producer=output1)) + models.TaskRelationBlueprint.objects.create(**TaskRelationBlueprint_test_data(producer=task_blueprint_1, + consumer=task_blueprint_2)) self.assertEqual(task_blueprint_1, task_blueprint_2.predecessors.all()[0]) self.assertEqual(task_blueprint_2, task_blueprint_1.successors.all()[0]) @@ -642,19 +637,16 @@ class TaskBlueprintTest(unittest.TestCase): # | | # ST2 - -> ST5 ---> ST6 - # todo: set up TaskConnectors/TaskRelations - # output1 = models.TaskBlueprintOutput.objects.create(task_blueprint=task_blueprint_1) - # output2 = models.TaskBlueprintOutput.objects.create(task_blueprint=task_blueprint_2) - # output3 = models.TaskBlueprintOutput.objects.create(task_blueprint=task_blueprint_3) - # output4 = models.TaskBlueprintOutput.objects.create(task_blueprint=task_blueprint_4) - # output5 = models.TaskBlueprintOutput.objects.create(task_blueprint=task_blueprint_5) - # output6 = models.TaskBlueprintOutput.objects.create(task_blueprint=task_blueprint_6) - - # models.TaskBlueprintInput.objects.create(**TaskBlueprintInput_test_data(task_blueprint=task_blueprint_3, producer=output1)) - # models.TaskBlueprintInput.objects.create(**TaskBlueprintInput_test_data(task_blueprint=task_blueprint_3, producer=output2)) - # models.TaskBlueprintInput.objects.create(**TaskBlueprintInput_test_data(task_blueprint=task_blueprint_4, producer=output3)) - # models.TaskBlueprintInput.objects.create(**TaskBlueprintInput_test_data(task_blueprint=task_blueprint_5, producer=output3)) - # models.TaskBlueprintInput.objects.create(**TaskBlueprintInput_test_data(task_blueprint=task_blueprint_6, producer=output5)) + models.TaskRelationBlueprint.objects.create(**TaskRelationBlueprint_test_data(producer=task_blueprint_1, + consumer=task_blueprint_3)) + trb1 = models.TaskRelationBlueprint.objects.create(**TaskRelationBlueprint_test_data(producer=task_blueprint_2, + consumer=task_blueprint_3)) + models.TaskRelationBlueprint.objects.create(**TaskRelationBlueprint_test_data(producer=task_blueprint_3, + consumer=task_blueprint_4)) + models.TaskRelationBlueprint.objects.create(**TaskRelationBlueprint_test_data(producer=task_blueprint_3, + consumer=task_blueprint_5)) + models.TaskRelationBlueprint.objects.create(**TaskRelationBlueprint_test_data(producer=task_blueprint_5, + consumer=task_blueprint_6)) self.assertEqual(set((task_blueprint_1, task_blueprint_2)), set(task_blueprint_3.predecessors.all())) self.assertEqual(set((task_blueprint_4, task_blueprint_5)), set(task_blueprint_3.successors.all())) diff --git a/SAS/TMSS/test/tmss_test_data_django_models.py b/SAS/TMSS/test/tmss_test_data_django_models.py index 8a70f7b8335d24119f935ad4f736950af700eafa..ef66868969cf171dbb593ba2d9558f4147ac53d2 100644 --- a/SAS/TMSS/test/tmss_test_data_django_models.py +++ b/SAS/TMSS/test/tmss_test_data_django_models.py @@ -165,12 +165,18 @@ def TaskDraft_test_data(name: str="my_task_draft", specifications_template: mode "scheduling_unit_draft": models.SchedulingUnitDraft.objects.create(**SchedulingUnitDraft_test_data()), "specifications_template": specifications_template } -def TaskRelationDraft_test_data() -> dict: +def TaskRelationDraft_test_data(producer: models.TaskDraft = None, consumer: models.TaskDraft = None) -> dict: + if producer is None: + producer = models.TaskDraft.objects.create(**TaskDraft_test_data()) + + if consumer is None: + consumer = models.TaskDraft.objects.create(**TaskDraft_test_data()) + return {"tags": [], "selection_doc": {}, "dataformat": models.Dataformat.objects.get(value='Beamformed'), - "producer": models.TaskDraft.objects.create(**TaskDraft_test_data()), - "consumer": models.TaskDraft.objects.create(**TaskDraft_test_data()), + "producer": producer, + "consumer": consumer, "input": models.TaskConnector.objects.create(**TaskConnector_test_data()), "output": models.TaskConnector.objects.create(**TaskConnector_test_data()), "selection_template": models.TaskRelationSelectionTemplate.objects.create(**TaskRelationSelectionTemplate_test_data())} @@ -197,16 +203,22 @@ def TaskBlueprint_test_data(name='my_task_blueprint', task_draft: models.TaskDra "specifications_template": task_draft.specifications_template, "scheduling_unit_blueprint": models.SchedulingUnitBlueprint.objects.create(**SchedulingUnitBlueprint_test_data())} -def TaskRelationBlueprint_test_data() -> dict: - return { "tags": [], +def TaskRelationBlueprint_test_data(producer: models.TaskBlueprint = None, consumer: models.TaskBlueprint = None) -> dict: + if producer is None: + producer = models.TaskBlueprint.objects.create(**TaskBlueprint_test_data()) + + if consumer is None: + consumer = models.TaskBlueprint.objects.create(**TaskBlueprint_test_data()) + + return {"tags": [], "selection_doc": {}, "dataformat": models.Dataformat.objects.get(value='Beamformed'), "input": models.TaskConnector.objects.create(**TaskConnector_test_data()), "output": models.TaskConnector.objects.create(**TaskConnector_test_data()), "draft": models.TaskRelationDraft.objects.create(**TaskRelationDraft_test_data()), "selection_template": models.TaskRelationSelectionTemplate.objects.create(**TaskRelationSelectionTemplate_test_data()), - "producer": models.TaskBlueprint.objects.create(**TaskBlueprint_test_data()), - "consumer": models.TaskBlueprint.objects.create(**TaskBlueprint_test_data())} + "producer": producer, + "consumer": consumer} def SubtaskTemplate_test_data(schema: object=None, version:str=None) -> dict: