From c6729fb93c9f2d8c6a3d1cf2e2efe8b34409cd87 Mon Sep 17 00:00:00 2001 From: goei <JsXLRu> Date: Mon, 29 Jun 2020 14:16:04 +0200 Subject: [PATCH] TMSS-166: Fix error during creation of TaskDraft test object for REST --- .../tmss/tmssapp/migrations/0001_initial.py | 8 +++--- .../src/tmss/tmssapp/models/specification.py | 8 +++--- .../tmss/tmssapp/serializers/specification.py | 4 +-- SAS/TMSS/test/tmss_test_data_rest.py | 28 +++++++++++++------ 4 files changed, 30 insertions(+), 18 deletions(-) diff --git a/SAS/TMSS/src/tmss/tmssapp/migrations/0001_initial.py b/SAS/TMSS/src/tmss/tmssapp/migrations/0001_initial.py index 84b3bfd3cc9..fb7a36f795f 100644 --- a/SAS/TMSS/src/tmss/tmssapp/migrations/0001_initial.py +++ b/SAS/TMSS/src/tmss/tmssapp/migrations/0001_initial.py @@ -697,12 +697,12 @@ class Migration(migrations.Migration): migrations.AddField( model_name='taskschedulingrelationdraft', name='first', - field=models.ForeignKey(help_text='Name of first Task Draft', on_delete=django.db.models.deletion.CASCADE, related_name='first_scheduling', to='tmssapp.TaskDraft'), + field=models.ForeignKey(help_text='Name of first Task Draft', on_delete=django.db.models.deletion.CASCADE, related_name='scheduling_relation_first', to='tmssapp.TaskDraft'), ), migrations.AddField( model_name='taskschedulingrelationdraft', name='second', - field=models.ForeignKey(help_text='Name of second Task Draft.', on_delete=django.db.models.deletion.CASCADE, related_name='second_scheduling', to='tmssapp.TaskDraft'), + field=models.ForeignKey(help_text='Name of second Task Draft.', on_delete=django.db.models.deletion.CASCADE, related_name='scheduling_relation_second', to='tmssapp.TaskDraft'), ), migrations.AddField( model_name='taskschedulingrelationblueprint', @@ -712,12 +712,12 @@ class Migration(migrations.Migration): migrations.AddField( model_name='taskschedulingrelationblueprint', name='first', - field=models.ForeignKey(help_text='Name of first Task Blueprint', on_delete=django.db.models.deletion.CASCADE, related_name='first_scheduling', to='tmssapp.TaskBlueprint'), + field=models.ForeignKey(help_text='Name of first Task Blueprint', on_delete=django.db.models.deletion.CASCADE, related_name='scheduling_relation_first', to='tmssapp.TaskBlueprint'), ), migrations.AddField( model_name='taskschedulingrelationblueprint', name='second', - field=models.ForeignKey(help_text='Name of second Task Blueprint.', on_delete=django.db.models.deletion.CASCADE, related_name='second_scheduling', to='tmssapp.TaskBlueprint'), + field=models.ForeignKey(help_text='Name of second Task Blueprint.', on_delete=django.db.models.deletion.CASCADE, related_name='scheduling_relation_second', to='tmssapp.TaskBlueprint'), ), migrations.AddConstraint( model_name='taskrelationselectiontemplate', diff --git a/SAS/TMSS/src/tmss/tmssapp/models/specification.py b/SAS/TMSS/src/tmss/tmssapp/models/specification.py index cd064b2d63d..fb390765da0 100644 --- a/SAS/TMSS/src/tmss/tmssapp/models/specification.py +++ b/SAS/TMSS/src/tmss/tmssapp/models/specification.py @@ -415,12 +415,12 @@ class TaskRelationBlueprint(BasicCommon): class TaskSchedulingRelationDraft(BasicCommon): placement = ForeignKey('Placement', null=False, on_delete=PROTECT, help_text='Placement of first and second Task Draft') time_offset = FloatField(help_text='Time Offset between first and second Task Draft') - first = ForeignKey('TaskDraft', related_name='first_scheduling', on_delete=CASCADE, help_text='Name of first Task Draft') - second = ForeignKey('TaskDraft', related_name='second_scheduling', on_delete=CASCADE, help_text='Name of second Task Draft.') + first = ForeignKey('TaskDraft', related_name='scheduling_relation_first', on_delete=CASCADE, help_text='Name of first Task Draft') + second = ForeignKey('TaskDraft', related_name='scheduling_relation_second', on_delete=CASCADE, help_text='Name of second Task Draft.') class TaskSchedulingRelationBlueprint(BasicCommon): placement = ForeignKey('Placement', null=False, on_delete=PROTECT, help_text='Placement of first and second Task Blueprint') time_offset = FloatField(help_text='Time Offset between first and second Task Blueprint') - first = ForeignKey('TaskBlueprint', related_name='first_scheduling', on_delete=CASCADE, help_text='Name of first Task Blueprint') - second = ForeignKey('TaskBlueprint', related_name='second_scheduling', on_delete=CASCADE, help_text='Name of second Task Blueprint.') + first = ForeignKey('TaskBlueprint', related_name='scheduling_relation_first', on_delete=CASCADE, help_text='Name of first Task Blueprint') + second = ForeignKey('TaskBlueprint', related_name='scheduling_relation_second', on_delete=CASCADE, help_text='Name of second Task Blueprint.') diff --git a/SAS/TMSS/src/tmss/tmssapp/serializers/specification.py b/SAS/TMSS/src/tmss/tmssapp/serializers/specification.py index 5af5c637d46..a8b74f8dbfd 100644 --- a/SAS/TMSS/src/tmss/tmssapp/serializers/specification.py +++ b/SAS/TMSS/src/tmss/tmssapp/serializers/specification.py @@ -274,7 +274,7 @@ class TaskDraftSerializer(RelationalHyperlinkedModelSerializer): class Meta: model = models.TaskDraft fields = '__all__' - extra_fields = ['task_blueprints', 'produced_by', 'consumed_by', 'first_scheduling', 'second_scheduling'] + extra_fields = ['task_blueprints', 'produced_by', 'consumed_by', 'scheduling_relation_first', 'scheduling_relation_second'] class TaskBlueprintSerializer(RelationalHyperlinkedModelSerializer): @@ -291,7 +291,7 @@ class TaskBlueprintSerializer(RelationalHyperlinkedModelSerializer): class Meta: model = models.TaskBlueprint fields = '__all__' - extra_fields = ['subtasks', 'produced_by', 'consumed_by', 'first_scheduling', 'second_scheduling'] + extra_fields = ['subtasks', 'produced_by', 'consumed_by', 'scheduling_relation_first', 'scheduling_relation_second'] class TaskRelationDraftSerializer(RelationalHyperlinkedModelSerializer): diff --git a/SAS/TMSS/test/tmss_test_data_rest.py b/SAS/TMSS/test/tmss_test_data_rest.py index 0a769de5fcd..865e74c738d 100644 --- a/SAS/TMSS/test/tmss_test_data_rest.py +++ b/SAS/TMSS/test/tmss_test_data_rest.py @@ -45,7 +45,13 @@ class TMSSRESTTestDataCreator(): def post_data_and_get_url(self, data, url_postfix): """POST the given data the self.django_api_url+url_postfix, and return the response's url""" - return self.post_data_and_get_response_as_json_object(data, url_postfix)['url'] + result = self.post_data_and_get_response_as_json_object(data, url_postfix) + try: + url = result['url'] + except KeyError: + # Because I don't like 'Bad Request' errors, I want more content if it goes wrong + raise Exception("Error during POST request of '%s' result is '%s'" % (url_postfix, result)) + return url ####################################################### # the methods below can be used to create test data @@ -219,9 +225,11 @@ class TMSSRESTTestDataCreator(): "specifications_template": template_url, 'task_blueprints': [], 'produced_by': [], - 'consumed_by': []} - - + 'consumed_by': [], + 'scheduling_relation_first': [], + 'scheduling_relation_second': []} + + def TaskRelationDraft(self, producer_url=None, consumer_url=None, template_url=None, input_role_url=None, output_role_url=None): if producer_url is None: producer_url = self.post_data_and_get_url(self.TaskDraft(), '/task_draft/') @@ -266,7 +274,8 @@ class TMSSRESTTestDataCreator(): def TaskBlueprint(self, name="my_TaskBlueprint", draft_url=None, template_url=None, scheduling_unit_blueprint_url=None): if draft_url is None: - draft_url = self.post_data_and_get_url(self.TaskDraft(), '/task_draft/') + task_draft = self.TaskDraft() + draft_url = self.post_data_and_get_url(task_draft, '/task_draft/') if template_url is None: template_url = self.post_data_and_get_url(self.TaskTemplate(), '/task_template/') @@ -284,8 +293,10 @@ class TMSSRESTTestDataCreator(): "scheduling_unit_blueprint": scheduling_unit_blueprint_url, "subtasks": [], "produced_by": [], - "consumed_by": []} - + "consumed_by": [], + 'scheduling_relation_first': [], + 'scheduling_relation_second': []} + def TaskRelationBlueprint(self, draft_url=None, template_url=None, input_role_url=None, output_role_url=None, consumer_url=None, producer_url=None): if draft_url is None: draft_url = self.post_data_and_get_url(self.TaskRelationDraft(), '/task_relation_draft/') @@ -374,7 +385,8 @@ class TMSSRESTTestDataCreator(): cluster_url = self.post_data_and_get_url(self.Cluster(), '/cluster/') if task_blueprint_url is None: - task_blueprint_url = self.post_data_and_get_url(self.TaskBlueprint(), '/task_blueprint/') + task_blueprint = self.TaskBlueprint() + task_blueprint_url = self.post_data_and_get_url(task_blueprint, '/task_blueprint/') if specifications_template_url is None: specifications_template_url = self.post_data_and_get_url(self.SubtaskTemplate(), '/subtask_template/') -- GitLab