diff --git a/SAS/TMSS/src/tmss/tmssapp/migrations/0001_initial.py b/SAS/TMSS/src/tmss/tmssapp/migrations/0001_initial.py index defc347b991c9bacb5b76da03d1755e68afb44e1..2ac93b356e68a70ef8a50bc221c21e7009b7fb25 100644 --- a/SAS/TMSS/src/tmss/tmssapp/migrations/0001_initial.py +++ b/SAS/TMSS/src/tmss/tmssapp/migrations/0001_initial.py @@ -1,4 +1,4 @@ -# Generated by Django 3.0.9 on 2020-12-18 07:08 +# Generated by Django 3.0.9 on 2021-01-08 13:46 from django.conf import settings import django.contrib.postgres.fields diff --git a/SAS/TMSS/test/t_tmssapp_specification_REST_API.py b/SAS/TMSS/test/t_tmssapp_specification_REST_API.py index 2d51f1861ed5aae0f529117a30a73f6c92f024b0..a40f9ce7c189cdfe27b75dfd8ca3aad6a675fae5 100755 --- a/SAS/TMSS/test/t_tmssapp_specification_REST_API.py +++ b/SAS/TMSS/test/t_tmssapp_specification_REST_API.py @@ -2439,8 +2439,14 @@ class TaskSchedulingRelationBlueprintTestCase(unittest.TestCase): @classmethod def setUpClass(cls) -> None: - cls.first_url = test_data_creator.post_data_and_get_url(test_data_creator.TaskBlueprint(), '/task_blueprint/') - cls.second_url = test_data_creator.post_data_and_get_url(test_data_creator.TaskBlueprint(), '/task_blueprint/') + cls.task_blueprint = test_data_creator.post_data_and_get_response_as_json_object(test_data_creator.TaskBlueprint(), '/task_blueprint/') + + @classmethod + def fast_create_new_task_blueprint_url(cls): + '''create a new task_blueprint object, based on existing one, with only new name, returning new url''' + tbp = dict(cls.task_blueprint) + tbp['name'] = str(uuid.uuid4()) + return test_data_creator.post_data_and_get_url(tbp, '/task_blueprint/') def test_task_scheduling_relation_blueprint_list_apiformat(self): r = requests.get(BASE_URL + '/task_scheduling_relation_blueprint/?format=api', auth=AUTH) @@ -2451,19 +2457,25 @@ class TaskSchedulingRelationBlueprintTestCase(unittest.TestCase): GET_and_assert_equal_expected_code(self, BASE_URL + '/task_scheduling_relation_blueprint/1234321/', 404) def test_task_scheduling_relation_blueprint_POST_and_GET(self): - tsrb_test_data = test_data_creator.TaskSchedulingRelationBlueprint(first_url=None, second_url=None, placement="after") + tsrb_test_data = test_data_creator.TaskSchedulingRelationBlueprint(first_url=self.fast_create_new_task_blueprint_url(), second_url=self.fast_create_new_task_blueprint_url(), placement="after") # POST and GET a new item and assert correctness r_dict = POST_and_assert_expected_response(self, BASE_URL + '/task_scheduling_relation_blueprint/', tsrb_test_data, 201, tsrb_test_data) url = r_dict['url'] GET_OK_and_assert_equal_expected_response(self, url, tsrb_test_data) + def test_task_scheduling_relation_blueprint_unique_constraint(self): + tsrb_test_data = test_data_creator.TaskSchedulingRelationBlueprint(first_url=self.fast_create_new_task_blueprint_url(), second_url=self.fast_create_new_task_blueprint_url(), placement="after") + POST_and_assert_expected_response(self, BASE_URL + '/task_scheduling_relation_blueprint/', tsrb_test_data, 201, tsrb_test_data) + # again should raise a unique constraint error, resulting in http 500 + POST_and_assert_expected_response(self, BASE_URL + '/task_scheduling_relation_blueprint/', tsrb_test_data, 500, tsrb_test_data) + def test_task_scheduling_relation_blueprint_PUT_invalid_raises_error(self): - tsrb_test_data = test_data_creator.TaskSchedulingRelationBlueprint(first_url=None, second_url=None, placement="after") + tsrb_test_data = test_data_creator.TaskSchedulingRelationBlueprint(first_url=self.fast_create_new_task_blueprint_url(), second_url=self.fast_create_new_task_blueprint_url(), placement="after") PUT_and_assert_expected_response(self, BASE_URL + '/task_scheduling_relation_blueprint/9876789876/', tsrb_test_data, 404, {}) def test_task_scheduling_relation_blueprint_PUT(self): - tsrb_test_data1 = test_data_creator.TaskSchedulingRelationBlueprint(first_url=None, second_url=None, placement="after") - tsrb_test_data2 = test_data_creator.TaskSchedulingRelationBlueprint(first_url=None, second_url=None, placement="after") + tsrb_test_data1 = test_data_creator.TaskSchedulingRelationBlueprint(first_url=self.fast_create_new_task_blueprint_url(), second_url=self.fast_create_new_task_blueprint_url(), placement="after") + tsrb_test_data2 = test_data_creator.TaskSchedulingRelationBlueprint(first_url=self.fast_create_new_task_blueprint_url(), second_url=self.fast_create_new_task_blueprint_url(), placement="after") # POST new item, verify r_dict = POST_and_assert_expected_response(self, BASE_URL + '/task_scheduling_relation_blueprint/', tsrb_test_data1, 201, tsrb_test_data1) @@ -2475,7 +2487,7 @@ class TaskSchedulingRelationBlueprintTestCase(unittest.TestCase): GET_OK_and_assert_equal_expected_response(self, url, tsrb_test_data2) def test_task_scheduling_relation_blueprint_PATCH(self): - tsrb_test_data = test_data_creator.TaskSchedulingRelationBlueprint(first_url=None, second_url=None, placement="after") + tsrb_test_data = test_data_creator.TaskSchedulingRelationBlueprint(first_url=self.fast_create_new_task_blueprint_url(), second_url=self.fast_create_new_task_blueprint_url(), placement="after") # POST new item, verify r_dict = POST_and_assert_expected_response(self, BASE_URL + '/task_scheduling_relation_blueprint/', tsrb_test_data, 201, tsrb_test_data) url = r_dict['url'] @@ -2490,7 +2502,7 @@ class TaskSchedulingRelationBlueprintTestCase(unittest.TestCase): GET_OK_and_assert_equal_expected_response(self, url, expected_data) def test_task_scheduling_relation_blueprint_DELETE(self): - tsrb_test_data = test_data_creator.TaskSchedulingRelationBlueprint(first_url=None, second_url=None, placement="after") + tsrb_test_data = test_data_creator.TaskSchedulingRelationBlueprint(first_url=self.fast_create_new_task_blueprint_url(), second_url=self.fast_create_new_task_blueprint_url(), placement="after") # POST new item, verify r_dict = POST_and_assert_expected_response(self, BASE_URL + '/task_scheduling_relation_blueprint/', tsrb_test_data, 201, tsrb_test_data) url = r_dict['url'] @@ -2500,7 +2512,7 @@ class TaskSchedulingRelationBlueprintTestCase(unittest.TestCase): DELETE_and_assert_gone(self, url) def test_task_scheduling_relation_blueprint_prevents_missing_time_offset(self): - tsrb_test_data = test_data_creator.TaskSchedulingRelationBlueprint(first_url=None, second_url=None, placement="after") + tsrb_test_data = test_data_creator.TaskSchedulingRelationBlueprint(first_url=self.fast_create_new_task_blueprint_url(), second_url=self.fast_create_new_task_blueprint_url(), placement="after") # test data test_data = dict(tsrb_test_data) test_data['time_offset'] = None @@ -2510,7 +2522,7 @@ class TaskSchedulingRelationBlueprintTestCase(unittest.TestCase): self.assertTrue('This field may not be null' in str(r_dict['time_offset'])) def test_task_scheduling_relation_blueprint_prevents_missing_time_first(self): - tsrb_test_data = test_data_creator.TaskSchedulingRelationBlueprint(first_url=None, second_url=None, placement="after") + tsrb_test_data = test_data_creator.TaskSchedulingRelationBlueprint(first_url=self.fast_create_new_task_blueprint_url(), second_url=self.fast_create_new_task_blueprint_url(), placement="after") # test data test_data = dict(tsrb_test_data) @@ -2521,7 +2533,7 @@ class TaskSchedulingRelationBlueprintTestCase(unittest.TestCase): self.assertTrue('This field may not be null' in str(r_dict['first'])) def test_task_scheduling_relation_blueprint_prevents_missing_second(self): - tsrb_test_data = test_data_creator.TaskSchedulingRelationBlueprint(first_url=None, second_url=None, placement="after") + tsrb_test_data = test_data_creator.TaskSchedulingRelationBlueprint(first_url=self.fast_create_new_task_blueprint_url(), second_url=self.fast_create_new_task_blueprint_url(), placement="after") # test data test_data = dict(tsrb_test_data) @@ -2532,7 +2544,7 @@ class TaskSchedulingRelationBlueprintTestCase(unittest.TestCase): self.assertTrue('This field may not be null' in str(r_dict['second'])) def test_task_scheduling_relation_blueprint_prevents_missing_placement(self): - tsrb_test_data = test_data_creator.TaskSchedulingRelationBlueprint(first_url=None, second_url=None, placement="after") + tsrb_test_data = test_data_creator.TaskSchedulingRelationBlueprint(first_url=self.fast_create_new_task_blueprint_url(), second_url=self.fast_create_new_task_blueprint_url(), placement="after") # test data test_data = dict(tsrb_test_data) @@ -2544,7 +2556,8 @@ class TaskSchedulingRelationBlueprintTestCase(unittest.TestCase): def test_task_scheduling_relation_blueprint_CASCADE_behavior_on_task_blueprint_deleted(self): #Create test data - tsrb_test_data = test_data_creator.TaskSchedulingRelationBlueprint(first_url=None, second_url=None, placement="after") + first_task_blueprint_url = test_data_creator.post_data_and_get_url(test_data_creator.TaskBlueprint(), '/task_blueprint/') + tsrb_test_data = test_data_creator.TaskSchedulingRelationBlueprint(first_url=first_task_blueprint_url, second_url=self.fast_create_new_task_blueprint_url(), placement="after") # POST new item url = POST_and_assert_expected_response(self, BASE_URL + '/task_scheduling_relation_blueprint/', tsrb_test_data, 201, tsrb_test_data)['url'] @@ -2552,12 +2565,8 @@ class TaskSchedulingRelationBlueprintTestCase(unittest.TestCase): # verify GET_OK_and_assert_equal_expected_response(self, url, tsrb_test_data) - #Get the URL of first task blueprint - test_data = dict(tsrb_test_data) - task_blueprint_url=test_data['first'] - # DELETE dependency - DELETE_and_assert_gone(self, task_blueprint_url) + DELETE_and_assert_gone(self, first_task_blueprint_url) # assert GET_and_assert_equal_expected_code(self, url, 404) @@ -2585,8 +2594,14 @@ class TaskSchedulingRelationDraftTestCase(unittest.TestCase): @classmethod def setUpClass(cls) -> None: - cls.first_url = test_data_creator.post_data_and_get_url(test_data_creator.TaskDraft(), '/task_draft/') - cls.second_url = test_data_creator.post_data_and_get_url(test_data_creator.TaskDraft(), '/task_draft/') + cls.task_draft = test_data_creator.post_data_and_get_response_as_json_object(test_data_creator.TaskDraft(), '/task_draft/') + + @classmethod + def fast_create_new_task_draft_url(cls): + '''create a new task_draft object, based on existing one, with only new name, returning new url''' + tbp = dict(cls.task_draft) + tbp['name'] = str(uuid.uuid4()) + return test_data_creator.post_data_and_get_url(tbp, '/task_draft/') def test_task_scheduling_relation_draft_list_apiformat(self): r = requests.get(BASE_URL + '/task_scheduling_relation_draft/?format=api', auth=AUTH) @@ -2597,19 +2612,19 @@ class TaskSchedulingRelationDraftTestCase(unittest.TestCase): GET_and_assert_equal_expected_code(self, BASE_URL + '/task_scheduling_relation_draft/1234321/', 404) def test_task_scheduling_relation_draft_POST_and_GET(self): - tsrd_test_data = test_data_creator.TaskSchedulingRelationDraft( first_url=None, second_url=None, placement="after") + tsrd_test_data = test_data_creator.TaskSchedulingRelationDraft( first_url=self.fast_create_new_task_draft_url(), second_url=self.fast_create_new_task_draft_url(), placement="after") # POST and GET a new item and assert correctness r_dict = POST_and_assert_expected_response(self, BASE_URL + '/task_scheduling_relation_draft/', tsrd_test_data, 201, tsrd_test_data) url = r_dict['url'] GET_OK_and_assert_equal_expected_response(self, url, tsrd_test_data) def test_task_scheduling_relation_draft_PUT_invalid_raises_error(self): - tsrd_test_data = test_data_creator.TaskSchedulingRelationDraft( first_url=None, second_url=None, placement="after") + tsrd_test_data = test_data_creator.TaskSchedulingRelationDraft( first_url=self.fast_create_new_task_draft_url(), second_url=self.fast_create_new_task_draft_url(), placement="after") PUT_and_assert_expected_response(self, BASE_URL + '/task_scheduling_relation_draft/9876789876/', tsrd_test_data, 404, {}) def test_task_scheduling_relation_draft_PUT(self): - tsrd_test_data = test_data_creator.TaskSchedulingRelationDraft( first_url=None, second_url=None, placement="after") - tsrd_test_data2 = test_data_creator.TaskSchedulingRelationDraft( first_url=None, second_url=None, placement="after") + tsrd_test_data = test_data_creator.TaskSchedulingRelationDraft( first_url=self.fast_create_new_task_draft_url(), second_url=self.fast_create_new_task_draft_url(), placement="after") + tsrd_test_data2 = test_data_creator.TaskSchedulingRelationDraft( first_url=self.fast_create_new_task_draft_url(), second_url=self.fast_create_new_task_draft_url(), placement="after") # POST new item, verify r_dict = POST_and_assert_expected_response(self, BASE_URL + '/task_scheduling_relation_draft/', tsrd_test_data, 201, tsrd_test_data) @@ -2621,7 +2636,7 @@ class TaskSchedulingRelationDraftTestCase(unittest.TestCase): GET_OK_and_assert_equal_expected_response(self, url, tsrd_test_data2) def test_task_scheduling_relation_draft_PATCH(self): - tsrd_test_data = test_data_creator.TaskSchedulingRelationDraft(first_url=None, second_url=None, placement="after") + tsrd_test_data = test_data_creator.TaskSchedulingRelationDraft(first_url=self.fast_create_new_task_draft_url(), second_url=self.fast_create_new_task_draft_url(), placement="after") # POST new item, verify r_dict = POST_and_assert_expected_response(self, BASE_URL + '/task_scheduling_relation_draft/', tsrd_test_data, 201, tsrd_test_data) url = r_dict['url'] @@ -2636,7 +2651,7 @@ class TaskSchedulingRelationDraftTestCase(unittest.TestCase): GET_OK_and_assert_equal_expected_response(self, url, expected_data) def test_task_scheduling_relation_draft_DELETE(self): - tsrd_test_data = test_data_creator.TaskSchedulingRelationDraft( first_url=None, second_url=None, placement="after") + tsrd_test_data = test_data_creator.TaskSchedulingRelationDraft( first_url=self.fast_create_new_task_draft_url(), second_url=self.fast_create_new_task_draft_url(), placement="after") # POST new item, verify r_dict = POST_and_assert_expected_response(self, BASE_URL + '/task_scheduling_relation_draft/', tsrd_test_data, 201, tsrd_test_data) url = r_dict['url'] @@ -2646,7 +2661,7 @@ class TaskSchedulingRelationDraftTestCase(unittest.TestCase): DELETE_and_assert_gone(self, url) def test_task_scheduling_relation_draft_prevents_missing_time_offset(self): - tsrd_test_data = test_data_creator.TaskSchedulingRelationDraft( first_url=None, second_url=None, placement="after") + tsrd_test_data = test_data_creator.TaskSchedulingRelationDraft( first_url=self.fast_create_new_task_draft_url(), second_url=self.fast_create_new_task_draft_url(), placement="after") # test data test_data = dict(tsrd_test_data) test_data['time_offset'] = None @@ -2656,7 +2671,7 @@ class TaskSchedulingRelationDraftTestCase(unittest.TestCase): self.assertTrue('This field may not be null' in str(r_dict['time_offset'])) def test_task_scheduling_relation_draft_prevents_missing_time_first(self): - tsrd_test_data = test_data_creator.TaskSchedulingRelationDraft( first_url=None, second_url=None, placement="after") + tsrd_test_data = test_data_creator.TaskSchedulingRelationDraft( first_url=self.fast_create_new_task_draft_url(), second_url=self.fast_create_new_task_draft_url(), placement="after") # test data test_data = dict(tsrd_test_data) @@ -2667,7 +2682,7 @@ class TaskSchedulingRelationDraftTestCase(unittest.TestCase): self.assertTrue('This field may not be null' in str(r_dict['first'])) def test_task_scheduling_relation_draft_prevents_missing_second(self): - tsrd_test_data = test_data_creator.TaskSchedulingRelationDraft( first_url=None, second_url=None, placement="after") + tsrd_test_data = test_data_creator.TaskSchedulingRelationDraft( first_url=self.fast_create_new_task_draft_url(), second_url=self.fast_create_new_task_draft_url(), placement="after") # test data test_data = dict(tsrd_test_data) @@ -2678,7 +2693,7 @@ class TaskSchedulingRelationDraftTestCase(unittest.TestCase): self.assertTrue('This field may not be null' in str(r_dict['second'])) def test_task_scheduling_relation_draft_prevents_missing_placement(self): - tsrd_test_data = test_data_creator.TaskSchedulingRelationDraft( first_url=None, second_url=None, placement="after") + tsrd_test_data = test_data_creator.TaskSchedulingRelationDraft( first_url=self.fast_create_new_task_draft_url(), second_url=self.fast_create_new_task_draft_url(), placement="after") # test data test_data = dict(tsrd_test_data) @@ -2845,7 +2860,6 @@ class ExtendedViewTestCase(unittest.TestCase): if __name__ == "__main__": - logging.basicConfig(format='%(asctime)s %(levelname)s %(message)s', - level=logging.INFO) + logging.basicConfig(format='%(asctime)s %(levelname)s %(message)s', level=logging.INFO) unittest.main()