diff --git a/SAS/TMSS/test/t_tmssapp_specification_functional.py b/SAS/TMSS/test/t_tmssapp_specification_functional.py
index 2aba43f467afcbf8f133184e618112a0a7258a5e..fb3deef98e6e7f768d10ec60207e6453c257c5e4 100755
--- a/SAS/TMSS/test/t_tmssapp_specification_functional.py
+++ b/SAS/TMSS/test/t_tmssapp_specification_functional.py
@@ -277,6 +277,10 @@ class WorkRelationSelectionTemplateTestCase(unittest.TestCase):
 
 
 class TaskConnectorsTestCase(unittest.TestCase):
+    @classmethod
+    def setUpClass(cls) -> None:
+        cls.input_of_url = test_data_creator.post_data_and_get_url(test_data_creator.TaskTemplate(), '/task_template/')
+        cls.output_of_url = test_data_creator.post_data_and_get_url(test_data_creator.TaskTemplate(), '/task_template/')
 
     def test_task_connectors_list_apiformat(self):
         r = requests.get(BASE_URL + '/task_connectors/?format=api', auth=AUTH)
@@ -287,7 +291,7 @@ class TaskConnectorsTestCase(unittest.TestCase):
         GET_and_assert_expected_response(self, BASE_URL + '/task_connectors/1234321/', 404, {})
 
     def test_task_connectors_POST_and_GET(self):
-        tc_test_data = test_data_creator.TaskConnectors()
+        tc_test_data = test_data_creator.TaskConnectors(input_of_url=self.input_of_url, output_of_url=self.output_of_url)
         # POST and GET a new item and assert correctness
         r_dict = POST_and_assert_expected_response(self, BASE_URL + '/task_connectors/', tc_test_data, 201, tc_test_data)
         url = r_dict['url']
@@ -296,7 +300,7 @@ class TaskConnectorsTestCase(unittest.TestCase):
     def test_task_connectors_POST_invalid_role_raises_error(self):
 
         # POST a new item with invalid choice
-        test_data_invalid_role = dict(test_data_creator.TaskConnectors())
+        test_data_invalid_role = dict(test_data_creator.TaskConnectors(input_of_url=self.input_of_url, output_of_url=self.output_of_url))
         test_data_invalid_role['role'] = BASE_URL + '/role/forbidden/'
         r_dict = POST_and_assert_expected_response(self, BASE_URL + '/task_connectors/', test_data_invalid_role, 400, {})
         self.assertTrue('Invalid hyperlink' in str(r_dict['role']))
@@ -304,7 +308,7 @@ class TaskConnectorsTestCase(unittest.TestCase):
     def test_task_connectors_POST_invalid_datatype_raises_error(self):
 
         # POST a new item with invalid choice
-        test_data_invalid = dict(test_data_creator.TaskConnectors())
+        test_data_invalid = dict(test_data_creator.TaskConnectors(input_of_url=self.input_of_url, output_of_url=self.output_of_url))
         test_data_invalid['datatype'] = BASE_URL + '/datatype/forbidden/'
         r_dict = POST_and_assert_expected_response(self, BASE_URL + '/task_connectors/', test_data_invalid, 400, {})
         self.assertTrue('Invalid hyperlink' in str(r_dict['datatype']))
@@ -312,7 +316,7 @@ class TaskConnectorsTestCase(unittest.TestCase):
     def test_task_connectors_POST_invalid_dataformats_raises_error(self):
 
         # POST a new item with invalid choice
-        test_data_invalid = dict(test_data_creator.TaskConnectors())
+        test_data_invalid = dict(test_data_creator.TaskConnectors(input_of_url=self.input_of_url, output_of_url=self.output_of_url))
         test_data_invalid['dataformats'] = [BASE_URL + '/dataformat/forbidden/']
         r_dict = POST_and_assert_expected_response(self, BASE_URL + '/task_connectors/', test_data_invalid, 400, {})
         self.assertTrue('Invalid hyperlink' in str(r_dict['dataformats']))
@@ -320,7 +324,7 @@ class TaskConnectorsTestCase(unittest.TestCase):
     def test_task_connectors_POST_nonexistant_input_of_raises_error(self):
 
         # POST a new item with wrong reference
-        test_data_invalid = dict(test_data_creator.TaskConnectors())
+        test_data_invalid = dict(test_data_creator.TaskConnectors(input_of_url=self.input_of_url, output_of_url=self.output_of_url))
         test_data_invalid['input_of'] = BASE_URL + "/task_template/6353748/"
         r_dict = POST_and_assert_expected_response(self, BASE_URL + '/task_connectors/', test_data_invalid, 400, {})
         self.assertTrue('Invalid hyperlink' in str(r_dict['input_of']))
@@ -328,7 +332,7 @@ class TaskConnectorsTestCase(unittest.TestCase):
     def test_task_connectors_POST_nonexistant_output_of_raises_error(self):
 
         # POST a new item with wrong reference
-        test_data_invalid = dict(test_data_creator.TaskConnectors())
+        test_data_invalid = dict(test_data_creator.TaskConnectors(input_of_url=self.input_of_url, output_of_url=self.output_of_url))
         test_data_invalid['output_of'] = BASE_URL + "/task_template/6353748/"
         r_dict = POST_and_assert_expected_response(self, BASE_URL + '/task_connectors/', test_data_invalid, 400, {})
         self.assertTrue('Invalid hyperlink' in str(r_dict['output_of']))
@@ -340,16 +344,16 @@ class TaskConnectorsTestCase(unittest.TestCase):
         url = r_dict['url']
 
         # POST a new item with correct reference
-        test_data_valid = dict(test_data_creator.TaskConnectors())
+        test_data_valid = dict(test_data_creator.TaskConnectors(input_of_url=self.input_of_url, output_of_url=self.output_of_url))
         test_data_valid['output_of'] = url
         POST_and_assert_expected_response(self, BASE_URL + '/task_connectors/', test_data_valid, 201, test_data_valid)
 
     def test_task_connectors_PUT_nonexistant_raises_error(self):
-        PUT_and_assert_expected_response(self, BASE_URL + '/task_connectors/9876789876/', test_data_creator.TaskConnectors(), 404, {})
+        PUT_and_assert_expected_response(self, BASE_URL + '/task_connectors/9876789876/', test_data_creator.TaskConnectors(input_of_url=self.input_of_url, output_of_url=self.output_of_url), 404, {})
 
     def test_task_connectors_PUT(self):
-        tc_test_data1 = test_data_creator.TaskConnectors(role="correlator")
-        tc_test_data2 = test_data_creator.TaskConnectors(role="beamformer")
+        tc_test_data1 = test_data_creator.TaskConnectors(role="correlator", input_of_url=self.input_of_url, output_of_url=self.output_of_url)
+        tc_test_data2 = test_data_creator.TaskConnectors(role="beamformer", input_of_url=self.input_of_url, output_of_url=self.output_of_url)
 
         # POST new item, verify
         r_dict = POST_and_assert_expected_response(self, BASE_URL + '/task_connectors/', tc_test_data1, 201, tc_test_data1)
@@ -361,7 +365,7 @@ class TaskConnectorsTestCase(unittest.TestCase):
         GET_and_assert_expected_response(self, url, 200, tc_test_data2)
 
     def test_task_connectors_PATCH(self):
-        tc_test_data = test_data_creator.TaskConnectors()
+        tc_test_data = test_data_creator.TaskConnectors(input_of_url=self.input_of_url, output_of_url=self.output_of_url)
 
         # POST new item, verify
         r_dict = POST_and_assert_expected_response(self, BASE_URL + '/task_connectors/', tc_test_data, 201, tc_test_data)
@@ -379,7 +383,7 @@ class TaskConnectorsTestCase(unittest.TestCase):
         GET_and_assert_expected_response(self, url, 200, expected_data)
 
     def test_task_connectors_DELETE(self):
-        tc_test_data = test_data_creator.TaskConnectors()
+        tc_test_data = test_data_creator.TaskConnectors(input_of_url=self.input_of_url, output_of_url=self.output_of_url)
 
         # POST new item, verify
         r_dict = POST_and_assert_expected_response(self, BASE_URL + '/task_connectors/', tc_test_data, 201, tc_test_data)
@@ -391,7 +395,8 @@ class TaskConnectorsTestCase(unittest.TestCase):
 
 
     def test_task_relation_blueprint_CASCADE_behavior_on_inputs_template_deleted(self):
-        tc_test_data = test_data_creator.TaskConnectors()
+        input_of_url = test_data_creator.post_data_and_get_url(test_data_creator.TaskTemplate(), '/task_template/')
+        tc_test_data = test_data_creator.TaskConnectors(input_of_url=input_of_url, output_of_url=self.output_of_url)
 
         # POST new item
         url = POST_and_assert_expected_response(self, BASE_URL + '/task_connectors/', tc_test_data, 201, tc_test_data)['url']
@@ -400,14 +405,15 @@ class TaskConnectorsTestCase(unittest.TestCase):
         GET_and_assert_expected_response(self, url, 200, tc_test_data)
 
         # DELETE dependency
-        DELETE_and_assert_gone(self, tc_test_data['input_of'])
+        DELETE_and_assert_gone(self, input_of_url)
 
         # assert
         GET_and_assert_expected_response(self, url, 404, {})
 
 
     def test_task_relation_blueprint_CASCADE_behavior_on_outputs_template_deleted(self):
-        tc_test_data = test_data_creator.TaskConnectors()
+        output_of_url = test_data_creator.post_data_and_get_url(test_data_creator.TaskTemplate(), '/task_template/')
+        tc_test_data = test_data_creator.TaskConnectors(input_of_url=self.input_of_url, output_of_url=output_of_url)
 
         # POST new item
         url = POST_and_assert_expected_response(self, BASE_URL + '/task_connectors/', tc_test_data, 201, tc_test_data)['url']
@@ -416,7 +422,7 @@ class TaskConnectorsTestCase(unittest.TestCase):
         GET_and_assert_expected_response(self, url, 200, tc_test_data)
 
         # DELETE dependency
-        DELETE_and_assert_gone(self, tc_test_data['output_of'])
+        DELETE_and_assert_gone(self, output_of_url)
 
         # assert
         GET_and_assert_expected_response(self, url, 404, {})
@@ -787,6 +793,11 @@ class SchedulingSetTestCase(unittest.TestCase):
 
 
 class SchedulingUnitDraftTestCase(unittest.TestCase):
+    @classmethod
+    def setUpClass(cls) -> None:
+        cls.scheduling_set_url = test_data_creator.post_data_and_get_url(test_data_creator.SchedulingSet(), '/scheduling_set/')
+        cls.template_url = test_data_creator.post_data_and_get_url(test_data_creator.SchedulingUnitTemplate(), '/scheduling_unit_template/')
+
     def test_scheduling_unit_draft_list_apiformat(self):
         r = requests.get(BASE_URL + '/scheduling_unit_draft/?format=api', auth=AUTH)
         self.assertEqual(r.status_code, 200)
@@ -796,7 +807,7 @@ class SchedulingUnitDraftTestCase(unittest.TestCase):
         GET_and_assert_expected_response(self, BASE_URL + '/scheduling_unit_draft/1234321/', 404, {})
 
     def test_scheduling_unit_draft_POST_and_GET(self):
-        schedulingunitdraft_test_data = test_data_creator.SchedulingUnitDraft()
+        schedulingunitdraft_test_data = test_data_creator.SchedulingUnitDraft(scheduling_set_url=self.scheduling_set_url, template_url=self.template_url)
 
         # POST and GET a new item and assert correctness
         r_dict = POST_and_assert_expected_response(self, BASE_URL + '/scheduling_unit_draft/', schedulingunitdraft_test_data, 201, schedulingunitdraft_test_data)
@@ -804,25 +815,25 @@ class SchedulingUnitDraftTestCase(unittest.TestCase):
         GET_and_assert_expected_response(self, url, 200, schedulingunitdraft_test_data)
 
     def test_scheduling_unit_draft_PUT_invalid_raises_error(self):
-        schedulingunitdraft_test_data = test_data_creator.SchedulingUnitDraft()
+        schedulingunitdraft_test_data = test_data_creator.SchedulingUnitDraft(scheduling_set_url=self.scheduling_set_url, template_url=self.template_url)
         PUT_and_assert_expected_response(self, BASE_URL + '/scheduling_unit_draft/9876789876/', schedulingunitdraft_test_data, 404, {})
 
     def test_scheduling_unit_draft_PUT(self):
-        schedulingunitdraft_test_data = test_data_creator.SchedulingUnitDraft()
+        schedulingunitdraft_test_data = test_data_creator.SchedulingUnitDraft(scheduling_set_url=self.scheduling_set_url, template_url=self.template_url)
 
         # POST new item, verify
         r_dict = POST_and_assert_expected_response(self, BASE_URL + '/scheduling_unit_draft/', schedulingunitdraft_test_data, 201, schedulingunitdraft_test_data)
         url = r_dict['url']
         GET_and_assert_expected_response(self, url, 200, schedulingunitdraft_test_data)
 
-        schedulingunitdraft_test_data2 = test_data_creator.SchedulingUnitDraft("my_scheduling_unit_draft2")
+        schedulingunitdraft_test_data2 = test_data_creator.SchedulingUnitDraft("my_scheduling_unit_draft2", scheduling_set_url=self.scheduling_set_url, template_url=self.template_url)
 
         # PUT new values, verify
         PUT_and_assert_expected_response(self, url, schedulingunitdraft_test_data2, 200, schedulingunitdraft_test_data2)
         GET_and_assert_expected_response(self, url, 200, schedulingunitdraft_test_data2)
 
     def test_scheduling_unit_draft_PATCH(self):
-        schedulingunitdraft_test_data = test_data_creator.SchedulingUnitDraft()
+        schedulingunitdraft_test_data = test_data_creator.SchedulingUnitDraft(scheduling_set_url=self.scheduling_set_url, template_url=self.template_url)
 
         # POST new item, verify
         r_dict = POST_and_assert_expected_response(self, BASE_URL + '/scheduling_unit_draft/', schedulingunitdraft_test_data, 201, schedulingunitdraft_test_data)
@@ -839,7 +850,7 @@ class SchedulingUnitDraftTestCase(unittest.TestCase):
         GET_and_assert_expected_response(self, url, 200, expected_data)
 
     def test_scheduling_unit_draft_DELETE(self):
-        schedulingunitdraft_test_data = test_data_creator.SchedulingUnitDraft()
+        schedulingunitdraft_test_data = test_data_creator.SchedulingUnitDraft(scheduling_set_url=self.scheduling_set_url, template_url=self.template_url)
 
         # POST new item, verify
         r_dict = POST_and_assert_expected_response(self, BASE_URL + '/scheduling_unit_draft/', schedulingunitdraft_test_data, 201, schedulingunitdraft_test_data)
@@ -851,7 +862,7 @@ class SchedulingUnitDraftTestCase(unittest.TestCase):
 
     def test_scheduling_unit_draft_CASCADE_behavior_on_scheduling_unit_template_deleted(self):
         template_url = test_data_creator.post_data_and_get_url(test_data_creator.SchedulingUnitTemplate(), '/scheduling_unit_template/')
-        schedulingunitdraft_test_data = test_data_creator.SchedulingUnitDraft(template_url=template_url)
+        schedulingunitdraft_test_data = test_data_creator.SchedulingUnitDraft(template_url=template_url, scheduling_set_url=self.scheduling_set_url)
 
         # POST new item
         url = POST_and_assert_expected_response(self, BASE_URL + '/scheduling_unit_draft/',  schedulingunitdraft_test_data, 201, schedulingunitdraft_test_data)['url']
@@ -867,7 +878,7 @@ class SchedulingUnitDraftTestCase(unittest.TestCase):
 
     def test_scheduling_unit_draft_CASCADE_behavior_on_scheduling_set_deleted(self):
         scheduling_set_url = test_data_creator.post_data_and_get_url(test_data_creator.SchedulingSet(), '/scheduling_set/')
-        schedulingunitdraft_test_data = test_data_creator.SchedulingUnitDraft(scheduling_set_url=scheduling_set_url)
+        schedulingunitdraft_test_data = test_data_creator.SchedulingUnitDraft(scheduling_set_url=scheduling_set_url, template_url=self.template_url)
 
         # POST new item
         url = POST_and_assert_expected_response(self, BASE_URL + '/scheduling_unit_draft/',  schedulingunitdraft_test_data, 201, schedulingunitdraft_test_data)['url']
@@ -882,7 +893,7 @@ class SchedulingUnitDraftTestCase(unittest.TestCase):
         GET_and_assert_expected_response(self, url, 404, {})
 
     def test_scheduling_unit_draft_SET_NULL_behavior_on_copies_deleted(self):
-        schedulingunitdraft_test_data = test_data_creator.SchedulingUnitDraft()
+        schedulingunitdraft_test_data = test_data_creator.SchedulingUnitDraft(scheduling_set_url=self.scheduling_set_url, template_url=self.template_url)
 
         # POST new item with dependency
         copy_url = POST_and_assert_expected_response(self, BASE_URL + '/scheduling_unit_draft/', schedulingunitdraft_test_data, 201, schedulingunitdraft_test_data)['url']
@@ -902,6 +913,11 @@ class SchedulingUnitDraftTestCase(unittest.TestCase):
 
 
 class TaskDraftTestCase(unittest.TestCase):
+    @classmethod
+    def setUpClass(cls) -> None:
+        cls.scheduling_unit_draft_url = test_data_creator.post_data_and_get_url(test_data_creator.SchedulingUnitDraft(), '/scheduling_unit_draft/')
+        cls.template_url = test_data_creator.post_data_and_get_url(test_data_creator.TaskTemplate(), '/task_template/')
+
     def test_task_draft_list_apiformat(self):
         r = requests.get(BASE_URL + '/task_draft/?format=api', auth=AUTH)
         self.assertEqual(r.status_code, 200)
@@ -911,7 +927,7 @@ class TaskDraftTestCase(unittest.TestCase):
         GET_and_assert_expected_response(self, BASE_URL + '/task_draft/1234321/', 404, {})
 
     def test_task_draft_POST_and_GET(self):
-        taskdraft_test_data = test_data_creator.TaskDraft()
+        taskdraft_test_data = test_data_creator.TaskDraft(scheduling_unit_draft_url=self.scheduling_unit_draft_url, template_url=self.template_url)
 
         # POST and GET a new item and assert correctness
         r_dict = POST_and_assert_expected_response(self, BASE_URL + '/task_draft/', taskdraft_test_data, 201, taskdraft_test_data)
@@ -919,12 +935,12 @@ class TaskDraftTestCase(unittest.TestCase):
         GET_and_assert_expected_response(self, url, 200, taskdraft_test_data)
 
     def test_task_draft_PUT_invalid_raises_error(self):
-        taskdraft_test_data = test_data_creator.TaskDraft()
+        taskdraft_test_data = test_data_creator.TaskDraft(scheduling_unit_draft_url=self.scheduling_unit_draft_url, template_url=self.template_url)
         PUT_and_assert_expected_response(self, BASE_URL + '/task_draft/9876789876/', taskdraft_test_data, 404, {})
 
     def test_task_draft_PUT(self):
-        taskdraft_test_data1 = test_data_creator.TaskDraft(name="the one")
-        taskdraft_test_data2 = test_data_creator.TaskDraft(name="the other")
+        taskdraft_test_data1 = test_data_creator.TaskDraft(name="the one", scheduling_unit_draft_url=self.scheduling_unit_draft_url, template_url=self.template_url)
+        taskdraft_test_data2 = test_data_creator.TaskDraft(name="the other", scheduling_unit_draft_url=self.scheduling_unit_draft_url, template_url=self.template_url)
 
         # POST new item, verify
         r_dict = POST_and_assert_expected_response(self, BASE_URL + '/task_draft/', taskdraft_test_data1, 201, taskdraft_test_data1)
@@ -936,7 +952,7 @@ class TaskDraftTestCase(unittest.TestCase):
         GET_and_assert_expected_response(self, url, 200, taskdraft_test_data2)
 
     def test_task_draft_PATCH(self):
-        taskdraft_test_data = test_data_creator.TaskDraft()
+        taskdraft_test_data = test_data_creator.TaskDraft(scheduling_unit_draft_url=self.scheduling_unit_draft_url, template_url=self.template_url)
 
         # POST new item, verify
         r_dict = POST_and_assert_expected_response(self, BASE_URL + '/task_draft/', taskdraft_test_data, 201, taskdraft_test_data)
@@ -953,7 +969,7 @@ class TaskDraftTestCase(unittest.TestCase):
         GET_and_assert_expected_response(self, url, 200, expected_data)
 
     def test_task_draft_DELETE(self):
-        taskdraft_test_data = test_data_creator.TaskDraft()
+        taskdraft_test_data = test_data_creator.TaskDraft(scheduling_unit_draft_url=self.scheduling_unit_draft_url, template_url=self.template_url)
 
         # POST new item, verify
         r_dict = POST_and_assert_expected_response(self, BASE_URL + '/task_draft/', taskdraft_test_data, 201, taskdraft_test_data)
@@ -965,7 +981,7 @@ class TaskDraftTestCase(unittest.TestCase):
 
     def test_task_draft_CASCADE_behavior_on_task_template_deleted(self):
         template_url = test_data_creator.post_data_and_get_url(test_data_creator.TaskTemplate(), '/task_template/')
-        taskdraft_test_data = test_data_creator.TaskDraft(name="task draft 2", template_url=template_url)
+        taskdraft_test_data = test_data_creator.TaskDraft(name="task draft 2", template_url=template_url, scheduling_unit_draft_url=self.scheduling_unit_draft_url)
 
         # POST new item
         url = POST_and_assert_expected_response(self, BASE_URL + '/task_draft/',  taskdraft_test_data, 201, taskdraft_test_data)['url']
@@ -981,7 +997,7 @@ class TaskDraftTestCase(unittest.TestCase):
 
     def test_task_draft_CASCADE_behavior_on_scheduling_unit_draft_deleted(self):
         scheduling_unit_draft_url = test_data_creator.post_data_and_get_url(test_data_creator.SchedulingUnitDraft(), '/scheduling_unit_draft/')
-        taskdraft_test_data = test_data_creator.TaskDraft(name="task draft 2", scheduling_unit_draft_url=scheduling_unit_draft_url)
+        taskdraft_test_data = test_data_creator.TaskDraft(name="task draft 2", scheduling_unit_draft_url=scheduling_unit_draft_url, template_url=self.template_url)
 
         # POST new item
         url = POST_and_assert_expected_response(self, BASE_URL + '/task_draft/',  taskdraft_test_data, 201, taskdraft_test_data)['url']
@@ -996,8 +1012,8 @@ class TaskDraftTestCase(unittest.TestCase):
         GET_and_assert_expected_response(self, url, 404, {})
 
     def test_task_draft_SET_NULL_behavior_on_copies_deleted(self):
-        taskdraft_test_data1 = test_data_creator.TaskDraft(name="the one")
-        taskdraft_test_data2 = test_data_creator.TaskDraft(name="the other")
+        taskdraft_test_data1 = test_data_creator.TaskDraft(name="the one", scheduling_unit_draft_url=self.scheduling_unit_draft_url, template_url=self.template_url)
+        taskdraft_test_data2 = test_data_creator.TaskDraft(name="the other", scheduling_unit_draft_url=self.scheduling_unit_draft_url, template_url=self.template_url)
 
         # POST new item with dependency
         copy_url = POST_and_assert_expected_response(self, BASE_URL + '/task_draft/', taskdraft_test_data2, 201, taskdraft_test_data2)['url']
@@ -1017,6 +1033,14 @@ class TaskDraftTestCase(unittest.TestCase):
 
 
 class TaskRelationDraftTestCase(unittest.TestCase):
+    @classmethod
+    def setUpClass(cls) -> None:
+        cls.producer_url = test_data_creator.post_data_and_get_url(test_data_creator.TaskDraft(), '/task_draft/')
+        cls.consumer_url = test_data_creator.post_data_and_get_url(test_data_creator.TaskDraft(), '/task_draft/')
+        cls.template_url = test_data_creator.post_data_and_get_url(test_data_creator.WorkRelationSelectionTemplate(), '/work_relation_selection_template/')
+        cls.input_url = test_data_creator.post_data_and_get_url(test_data_creator.TaskConnectors(), '/task_connectors/')
+        cls.output_url = test_data_creator.post_data_and_get_url(test_data_creator.TaskConnectors(), '/task_connectors/')
+
     def test_task_relation_draft_list_apiformat(self):
         r = requests.get(BASE_URL + '/task_relation_draft/?format=api', auth=AUTH)
         self.assertEqual(r.status_code, 200)
@@ -1026,7 +1050,7 @@ class TaskRelationDraftTestCase(unittest.TestCase):
         GET_and_assert_expected_response(self, BASE_URL + '/task_relation_draft/1234321/', 404, {})
 
     def test_task_relation_draft_POST_and_GET(self):
-        trd_test_data = test_data_creator.TaskRelationDraft()
+        trd_test_data = test_data_creator.TaskRelationDraft(producer_url=self.producer_url, consumer_url=self.consumer_url, template_url=self.template_url, input_url=self.input_url, output_url=self.output_url)
 
         # POST and GET a new item and assert correctness
         r_dict = POST_and_assert_expected_response(self, BASE_URL + '/task_relation_draft/', trd_test_data, 201, trd_test_data)
@@ -1034,12 +1058,12 @@ class TaskRelationDraftTestCase(unittest.TestCase):
         GET_and_assert_expected_response(self, url, 200, trd_test_data)
 
     def test_task_relation_draft_PUT_invalid_raises_error(self):
-        trd_test_data = test_data_creator.TaskRelationDraft()
+        trd_test_data = test_data_creator.TaskRelationDraft(producer_url=self.producer_url, consumer_url=self.consumer_url, template_url=self.template_url, input_url=self.input_url, output_url=self.output_url)
         PUT_and_assert_expected_response(self, BASE_URL + '/task_relation_draft/9876789876/', trd_test_data, 404, {})
 
     def test_task_relation_draft_PUT(self):
-        trd_test_data1 = test_data_creator.TaskRelationDraft()
-        trd_test_data2 = test_data_creator.TaskRelationDraft()
+        trd_test_data1 = test_data_creator.TaskRelationDraft(producer_url=self.producer_url, consumer_url=self.consumer_url, template_url=self.template_url, input_url=self.input_url, output_url=self.output_url)
+        trd_test_data2 = test_data_creator.TaskRelationDraft(producer_url=self.producer_url, consumer_url=self.consumer_url, template_url=self.template_url, input_url=self.input_url, output_url=self.output_url)
 
         # POST new item, verify
         r_dict = POST_and_assert_expected_response(self, BASE_URL + '/task_relation_draft/', trd_test_data1, 201, trd_test_data1)
@@ -1051,7 +1075,7 @@ class TaskRelationDraftTestCase(unittest.TestCase):
         GET_and_assert_expected_response(self, url, 200, trd_test_data2)
 
     def test_task_relation_draft_PATCH(self):
-        trd_test_data = test_data_creator.TaskRelationDraft()
+        trd_test_data = test_data_creator.TaskRelationDraft(producer_url=self.producer_url, consumer_url=self.consumer_url, template_url=self.template_url, input_url=self.input_url, output_url=self.output_url)
 
         # POST new item, verify
         r_dict = POST_and_assert_expected_response(self, BASE_URL + '/task_relation_draft/', trd_test_data, 201, trd_test_data)
@@ -1067,7 +1091,7 @@ class TaskRelationDraftTestCase(unittest.TestCase):
         GET_and_assert_expected_response(self, url, 200, expected_data)
 
     def test_task_relation_draft_DELETE(self):
-        trd_test_data = test_data_creator.TaskRelationDraft()
+        trd_test_data = test_data_creator.TaskRelationDraft(producer_url=self.producer_url, consumer_url=self.consumer_url, template_url=self.template_url, input_url=self.input_url, output_url=self.output_url)
 
         # POST new item, verify
         r_dict = POST_and_assert_expected_response(self, BASE_URL + '/task_relation_draft/', trd_test_data, 201, trd_test_data)
@@ -1079,7 +1103,7 @@ class TaskRelationDraftTestCase(unittest.TestCase):
 
     def test_task_relation_draft_CASCADE_behavior_on_work_relation_selection_template_deleted(self):
         template_url = test_data_creator.post_data_and_get_url(test_data_creator.WorkRelationSelectionTemplate(), '/work_relation_selection_template/')
-        trd_test_data = test_data_creator.TaskRelationDraft(template_url=template_url)
+        trd_test_data = test_data_creator.TaskRelationDraft(template_url=template_url, producer_url=self.producer_url, consumer_url=self.consumer_url, input_url=self.input_url, output_url=self.output_url)
 
         # POST new item
         url = POST_and_assert_expected_response(self, BASE_URL + '/task_relation_draft/',  trd_test_data, 201, trd_test_data)['url']
@@ -1095,7 +1119,7 @@ class TaskRelationDraftTestCase(unittest.TestCase):
 
     def test_task_relation_draft_CASCADE_behavior_on_producer_deleted(self):
         producer_url = test_data_creator.post_data_and_get_url(test_data_creator.TaskDraft(), '/task_draft/')
-        trd_test_data = test_data_creator.TaskRelationDraft(producer_url=producer_url)
+        trd_test_data = test_data_creator.TaskRelationDraft(producer_url=producer_url, consumer_url=self.consumer_url, template_url=self.template_url, input_url=self.input_url, output_url=self.output_url)
 
         # POST new item
         url = POST_and_assert_expected_response(self, BASE_URL + '/task_relation_draft/',
@@ -1113,7 +1137,7 @@ class TaskRelationDraftTestCase(unittest.TestCase):
 
     def test_task_relation_draft_CASCADE_behavior_on_consumer_deleted(self):
         consumer_url = test_data_creator.post_data_and_get_url(test_data_creator.TaskDraft(), '/task_draft/')
-        trd_test_data = test_data_creator.TaskRelationDraft(consumer_url=consumer_url)
+        trd_test_data = test_data_creator.TaskRelationDraft(consumer_url=consumer_url, producer_url=self.producer_url, template_url=self.template_url, input_url=self.input_url, output_url=self.output_url)
 
         # POST new item with dependency
         url = POST_and_assert_expected_response(self, BASE_URL + '/task_relation_draft/',
@@ -1131,7 +1155,7 @@ class TaskRelationDraftTestCase(unittest.TestCase):
 
     def test_task_relation_draft_CASCADE_behavior_on_input_deleted(self):
         input_url = test_data_creator.post_data_and_get_url(test_data_creator.TaskConnectors(), '/task_connectors/')
-        trd_test_data = test_data_creator.TaskRelationDraft(input_url=input_url)
+        trd_test_data = test_data_creator.TaskRelationDraft(input_url=input_url, producer_url=self.producer_url, consumer_url=self.consumer_url, template_url=self.template_url, output_url=self.output_url)
 
         # POST new item
         url = POST_and_assert_expected_response(self, BASE_URL + '/task_relation_draft/',
@@ -1149,7 +1173,7 @@ class TaskRelationDraftTestCase(unittest.TestCase):
 
     def test_task_relation_draft_CASCADE_behavior_on_output_deleted(self):
         output_url = test_data_creator.post_data_and_get_url(test_data_creator.TaskConnectors(), '/task_connectors/')
-        trd_test_data = test_data_creator.TaskRelationDraft(output_url=output_url)
+        trd_test_data = test_data_creator.TaskRelationDraft(output_url=output_url, producer_url=self.producer_url, consumer_url=self.consumer_url, template_url=self.template_url, input_url=self.input_url)
 
         # POST new item with dependency
         url = POST_and_assert_expected_response(self, BASE_URL + '/task_relation_draft/',
@@ -1166,6 +1190,11 @@ class TaskRelationDraftTestCase(unittest.TestCase):
 
 
 class SchedulingUnitBlueprintTestCase(unittest.TestCase):
+    @classmethod
+    def setUpClass(cls) -> None:
+        cls.scheduling_unit_draft_url = test_data_creator.post_data_and_get_url(test_data_creator.SchedulingUnitDraft(), '/scheduling_unit_draft/')
+        cls.template_url = test_data_creator.post_data_and_get_url(test_data_creator.SchedulingUnitTemplate(), '/scheduling_unit_template/')
+
     def test_scheduling_unit_blueprint_list_apiformat(self):
         r = requests.get(BASE_URL + '/scheduling_unit_blueprint/?format=api', auth=AUTH)
         self.assertEqual(r.status_code, 200)
@@ -1175,7 +1204,7 @@ class SchedulingUnitBlueprintTestCase(unittest.TestCase):
         GET_and_assert_expected_response(self, BASE_URL + '/scheduling_unit_blueprint/1234321/', 404, {})
 
     def test_scheduling_unit_blueprint_POST_and_GET(self):
-        sub_test_data = test_data_creator.SchedulingUnitBlueprint()
+        sub_test_data = test_data_creator.SchedulingUnitBlueprint(scheduling_unit_draft_url=self.scheduling_unit_draft_url, template_url=self.template_url)
 
         # POST and GET a new item and assert correctness
         r_dict = POST_and_assert_expected_response(self, BASE_URL + '/scheduling_unit_blueprint/', sub_test_data, 201, sub_test_data)
@@ -1183,12 +1212,12 @@ class SchedulingUnitBlueprintTestCase(unittest.TestCase):
         GET_and_assert_expected_response(self, url, 200, sub_test_data)
 
     def test_scheduling_unit_blueprint_PUT_invalid_raises_error(self):
-        sub_test_data = test_data_creator.SchedulingUnitBlueprint()
+        sub_test_data = test_data_creator.SchedulingUnitBlueprint(scheduling_unit_draft_url=self.scheduling_unit_draft_url, template_url=self.template_url)
         PUT_and_assert_expected_response(self, BASE_URL + '/scheduling_unit_blueprint/9876789876/', sub_test_data, 404, {})
 
     def test_scheduling_unit_blueprint_PUT(self):
-        sub_test_data1 = test_data_creator.SchedulingUnitBlueprint(name="the one")
-        sub_test_data2 = test_data_creator.SchedulingUnitBlueprint(name="the other")
+        sub_test_data1 = test_data_creator.SchedulingUnitBlueprint(name="the one", scheduling_unit_draft_url=self.scheduling_unit_draft_url, template_url=self.template_url)
+        sub_test_data2 = test_data_creator.SchedulingUnitBlueprint(name="the other", scheduling_unit_draft_url=self.scheduling_unit_draft_url, template_url=self.template_url)
 
         # POST new item, verify
         r_dict = POST_and_assert_expected_response(self, BASE_URL + '/scheduling_unit_blueprint/', sub_test_data1, 201, sub_test_data1)
@@ -1200,7 +1229,7 @@ class SchedulingUnitBlueprintTestCase(unittest.TestCase):
         GET_and_assert_expected_response(self, url, 200, sub_test_data2)
 
     def test_scheduling_unit_blueprint_PATCH(self):
-        sub_test_data = test_data_creator.SchedulingUnitBlueprint()
+        sub_test_data = test_data_creator.SchedulingUnitBlueprint(scheduling_unit_draft_url=self.scheduling_unit_draft_url, template_url=self.template_url)
 
         # POST new item, verify
         r_dict = POST_and_assert_expected_response(self, BASE_URL + '/scheduling_unit_blueprint/', sub_test_data, 201, sub_test_data)
@@ -1217,7 +1246,7 @@ class SchedulingUnitBlueprintTestCase(unittest.TestCase):
         GET_and_assert_expected_response(self, url, 200, expected_data)
 
     def test_scheduling_unit_blueprint_DELETE(self):
-        sub_test_data = test_data_creator.SchedulingUnitBlueprint()
+        sub_test_data = test_data_creator.SchedulingUnitBlueprint(scheduling_unit_draft_url=self.scheduling_unit_draft_url, template_url=self.template_url)
 
         # POST new item, verify
         r_dict = POST_and_assert_expected_response(self, BASE_URL + '/scheduling_unit_blueprint/', sub_test_data, 201, sub_test_data)
@@ -1228,7 +1257,8 @@ class SchedulingUnitBlueprintTestCase(unittest.TestCase):
         DELETE_and_assert_gone(self, url)
 
     def test_scheduling_unit_blueprint_CASCADE_behavior_on_scheduling_unit_template_deleted(self):
-        sub_test_data = test_data_creator.SchedulingUnitBlueprint()
+        template_url = test_data_creator.post_data_and_get_url(test_data_creator.SchedulingUnitTemplate(), '/scheduling_unit_template/')
+        sub_test_data = test_data_creator.SchedulingUnitBlueprint(scheduling_unit_draft_url=self.scheduling_unit_draft_url, template_url=template_url)
 
         # POST new item
         url = POST_and_assert_expected_response(self, BASE_URL + '/scheduling_unit_blueprint/',  sub_test_data, 201, sub_test_data)['url']
@@ -1237,13 +1267,14 @@ class SchedulingUnitBlueprintTestCase(unittest.TestCase):
         GET_and_assert_expected_response(self, url, 200, sub_test_data)
 
         # DELETE dependency
-        DELETE_and_assert_gone(self, sub_test_data['requirements_template'])
+        DELETE_and_assert_gone(self, template_url)
 
         # assert
         GET_and_assert_expected_response(self, url, 404, {})
 
     def test_scheduling_unit_blueprint_CASCADE_behavior_on_scheduling_unit_draft_deleted(self):
-        sub_test_data = test_data_creator.SchedulingUnitBlueprint()
+        scheduling_unit_draft_url = test_data_creator.post_data_and_get_url(test_data_creator.SchedulingUnitDraft(), '/scheduling_unit_draft/')
+        sub_test_data = test_data_creator.SchedulingUnitBlueprint(scheduling_unit_draft_url=scheduling_unit_draft_url, template_url=self.template_url)
 
         # POST new item
         url = POST_and_assert_expected_response(self, BASE_URL + '/scheduling_unit_blueprint/', sub_test_data, 201, sub_test_data)['url']
@@ -1252,12 +1283,18 @@ class SchedulingUnitBlueprintTestCase(unittest.TestCase):
         GET_and_assert_expected_response(self, url, 200, sub_test_data)
 
         # DELETE dependency
-        DELETE_and_assert_gone(self, sub_test_data['draft'])
+        DELETE_and_assert_gone(self, scheduling_unit_draft_url)
 
         # assert
         GET_and_assert_expected_response(self, url, 404, {})
 
 class TaskBlueprintTestCase(unittest.TestCase):
+    @classmethod
+    def setUpClass(cls) -> None:
+        cls.draft_url = test_data_creator.post_data_and_get_url(test_data_creator.TaskDraft(), '/task_draft/')
+        cls.template_url = test_data_creator.post_data_and_get_url(test_data_creator.TaskTemplate(), '/task_template/')
+        cls.scheduling_unit_blueprint_url = test_data_creator.post_data_and_get_url(test_data_creator.SchedulingUnitBlueprint(), '/scheduling_unit_blueprint/')
+
     def test_task_blueprint_list_apiformat(self):
         r = requests.get(BASE_URL + '/task_blueprint/?format=api', auth=AUTH)
         self.assertEqual(r.status_code, 200)
@@ -1267,7 +1304,7 @@ class TaskBlueprintTestCase(unittest.TestCase):
         GET_and_assert_expected_response(self, BASE_URL + '/task_blueprint/1234321/', 404, {})
 
     def test_task_blueprint_POST_and_GET(self):
-        tb_test_data = test_data_creator.TaskBlueprint()
+        tb_test_data = test_data_creator.TaskBlueprint(draft_url=self.draft_url, template_url=self.template_url, scheduling_unit_blueprint_url=self.scheduling_unit_blueprint_url)
 
         # POST and GET a new item and assert correctness
         r_dict = POST_and_assert_expected_response(self, BASE_URL + '/task_blueprint/', tb_test_data, 201, tb_test_data)
@@ -1275,12 +1312,12 @@ class TaskBlueprintTestCase(unittest.TestCase):
         GET_and_assert_expected_response(self, url, 200, tb_test_data)
 
     def test_task_blueprint_PUT_invalid_raises_error(self):
-        tb_test_data = test_data_creator.TaskBlueprint()
+        tb_test_data = test_data_creator.TaskBlueprint(draft_url=self.draft_url, template_url=self.template_url, scheduling_unit_blueprint_url=self.scheduling_unit_blueprint_url)
         PUT_and_assert_expected_response(self, BASE_URL + '/task_blueprint/9876789876/', tb_test_data, 404, {})
 
     def test_task_blueprint_PUT(self):
-        tb_test_data1 = test_data_creator.TaskBlueprint(name="the one")
-        tb_test_data2 = test_data_creator.TaskBlueprint(name="the other")
+        tb_test_data1 = test_data_creator.TaskBlueprint(name="the one", draft_url=self.draft_url, template_url=self.template_url, scheduling_unit_blueprint_url=self.scheduling_unit_blueprint_url)
+        tb_test_data2 = test_data_creator.TaskBlueprint(name="the other", draft_url=self.draft_url, template_url=self.template_url, scheduling_unit_blueprint_url=self.scheduling_unit_blueprint_url)
 
         # POST new item, verify
         r_dict = POST_and_assert_expected_response(self, BASE_URL + '/task_blueprint/', tb_test_data1, 201, tb_test_data1)
@@ -1292,7 +1329,7 @@ class TaskBlueprintTestCase(unittest.TestCase):
         GET_and_assert_expected_response(self, url, 200, tb_test_data2)
 
     def test_task_blueprint_PATCH(self):
-        tb_test_data = test_data_creator.TaskBlueprint()
+        tb_test_data = test_data_creator.TaskBlueprint(draft_url=self.draft_url, template_url=self.template_url, scheduling_unit_blueprint_url=self.scheduling_unit_blueprint_url)
 
         # POST new item, verify
         r_dict = POST_and_assert_expected_response(self, BASE_URL + '/task_blueprint/', tb_test_data, 201, tb_test_data)
@@ -1309,7 +1346,7 @@ class TaskBlueprintTestCase(unittest.TestCase):
         GET_and_assert_expected_response(self, url, 200, expected_data)
 
     def test_task_blueprint_DELETE(self):
-        tb_test_data = test_data_creator.TaskBlueprint()
+        tb_test_data = test_data_creator.TaskBlueprint(draft_url=self.draft_url, template_url=self.template_url, scheduling_unit_blueprint_url=self.scheduling_unit_blueprint_url)
 
         # POST new item, verify
         r_dict = POST_and_assert_expected_response(self, BASE_URL + '/task_blueprint/', tb_test_data, 201, tb_test_data)
@@ -1320,7 +1357,7 @@ class TaskBlueprintTestCase(unittest.TestCase):
         DELETE_and_assert_gone(self, url)
 
     def test_task_blueprint_prevents_missing_specification_template(self):
-        tb_test_data = test_data_creator.TaskBlueprint()
+        tb_test_data = test_data_creator.TaskBlueprint(draft_url=self.draft_url, template_url=self.template_url, scheduling_unit_blueprint_url=self.scheduling_unit_blueprint_url)
 
         # test data
         test_data = dict(tb_test_data)
@@ -1331,7 +1368,7 @@ class TaskBlueprintTestCase(unittest.TestCase):
         self.assertTrue('This field may not be null' in str(r_dict['specifications_template']))
 
     def test_task_blueprint_prevents_missing_draft(self):
-        tb_test_data = test_data_creator.TaskBlueprint()
+        tb_test_data = test_data_creator.TaskBlueprint(draft_url=self.draft_url, template_url=self.template_url, scheduling_unit_blueprint_url=self.scheduling_unit_blueprint_url)
 
         # test data
         test_data = dict(tb_test_data)
@@ -1342,7 +1379,7 @@ class TaskBlueprintTestCase(unittest.TestCase):
         self.assertTrue('This field may not be null' in str(r_dict['draft']))
 
     def test_task_blueprint_prevents_missing_scheduling_unit_blueprint(self):
-        tb_test_data = test_data_creator.TaskBlueprint()
+        tb_test_data = test_data_creator.TaskBlueprint(draft_url=self.draft_url, template_url=self.template_url, scheduling_unit_blueprint_url=self.scheduling_unit_blueprint_url)
 
         # test data
         test_data = dict(tb_test_data)
@@ -1353,7 +1390,8 @@ class TaskBlueprintTestCase(unittest.TestCase):
         self.assertTrue('This field may not be null' in str(r_dict['scheduling_unit_blueprint']))
 
     def test_task_blueprint_CASCADE_behavior_on_task_template_deleted(self):
-        tb_test_data = test_data_creator.TaskBlueprint()
+        template_url = test_data_creator.post_data_and_get_url(test_data_creator.TaskTemplate(), '/task_template/')
+        tb_test_data = test_data_creator.TaskBlueprint(draft_url=self.draft_url, template_url=template_url, scheduling_unit_blueprint_url=self.scheduling_unit_blueprint_url)
 
         # POST new item
         url = POST_and_assert_expected_response(self, BASE_URL + '/task_blueprint/',  tb_test_data, 201, tb_test_data)['url']
@@ -1362,13 +1400,14 @@ class TaskBlueprintTestCase(unittest.TestCase):
         GET_and_assert_expected_response(self, url, 200, tb_test_data)
 
         # DELETE dependency
-        DELETE_and_assert_gone(self, tb_test_data['specifications_template'])
+        DELETE_and_assert_gone(self, template_url)
 
         # assert
         GET_and_assert_expected_response(self, url, 404, {})
 
     def test_task_blueprint_CASCADE_behavior_on_task_draft_deleted(self):
-        tb_test_data = test_data_creator.TaskBlueprint()
+        draft_url = test_data_creator.post_data_and_get_url(test_data_creator.TaskDraft(), '/task_draft/')
+        tb_test_data = test_data_creator.TaskBlueprint(draft_url=draft_url, template_url=self.template_url, scheduling_unit_blueprint_url=self.scheduling_unit_blueprint_url)
 
         # POST new item
         url = POST_and_assert_expected_response(self, BASE_URL + '/task_blueprint/',  tb_test_data, 201, tb_test_data)['url']
@@ -1377,13 +1416,14 @@ class TaskBlueprintTestCase(unittest.TestCase):
         GET_and_assert_expected_response(self, url, 200, tb_test_data)
 
         # DELETE dependency
-        DELETE_and_assert_gone(self, tb_test_data['draft'])
+        DELETE_and_assert_gone(self, draft_url)
 
         # assert
         GET_and_assert_expected_response(self, url, 404, {})
 
     def test_task_blueprint_CASCADE_behavior_on_scheduling_unit_blueprint_deleted(self):
-        tb_test_data = test_data_creator.TaskBlueprint()
+        scheduling_unit_blueprint_url = test_data_creator.post_data_and_get_url(test_data_creator.SchedulingUnitBlueprint(), '/scheduling_unit_blueprint/')
+        tb_test_data = test_data_creator.TaskBlueprint(draft_url=self.draft_url, template_url=self.template_url, scheduling_unit_blueprint_url=scheduling_unit_blueprint_url)
 
         # POST new item
         url = POST_and_assert_expected_response(self, BASE_URL + '/task_blueprint/',  tb_test_data, 201, tb_test_data)['url']
@@ -1392,13 +1432,23 @@ class TaskBlueprintTestCase(unittest.TestCase):
         GET_and_assert_expected_response(self, url, 200, tb_test_data)
 
         # DELETE dependency
-        DELETE_and_assert_gone(self, tb_test_data['scheduling_unit_blueprint'])
+        DELETE_and_assert_gone(self, scheduling_unit_blueprint_url)
 
         # assert
         GET_and_assert_expected_response(self, url, 404, {})
 
 
 class TaskRelationBlueprintTestCase(unittest.TestCase):
+
+    @classmethod
+    def setUpClass(cls) -> None:
+        cls.draft_url = test_data_creator.post_data_and_get_url(test_data_creator.TaskRelationDraft(), '/task_relation_draft/')
+        cls.producer_url = test_data_creator.post_data_and_get_url(test_data_creator.TaskBlueprint(), '/task_blueprint/')
+        cls.consumer_url = test_data_creator.post_data_and_get_url(test_data_creator.TaskBlueprint(), '/task_blueprint/')
+        cls.template_url = test_data_creator.post_data_and_get_url(test_data_creator.WorkRelationSelectionTemplate(), '/work_relation_selection_template/')
+        cls.input_url = test_data_creator.post_data_and_get_url(test_data_creator.TaskConnectors(), '/task_connectors/')
+        cls.output_url = test_data_creator.post_data_and_get_url(test_data_creator.TaskConnectors(), '/task_connectors/')
+
     def test_task_relation_blueprint_list_apiformat(self):
         r = requests.get(BASE_URL + '/task_relation_blueprint/?format=api', auth=AUTH)
         self.assertEqual(r.status_code, 200)
@@ -1408,7 +1458,7 @@ class TaskRelationBlueprintTestCase(unittest.TestCase):
         GET_and_assert_expected_response(self, BASE_URL + '/task_relation_blueprint/1234321/', 404, {})
 
     def test_task_relation_blueprint_POST_and_GET(self):
-        trb_test_data = test_data_creator.TaskRelationBlueprint()
+        trb_test_data = test_data_creator.TaskRelationBlueprint(draft_url=self.draft_url, template_url=self.template_url, input_url=self.input_url, output_url=self.output_url, consumer_url=self.consumer_url, producer_url=self.producer_url)
 
         # POST and GET a new item and assert correctness
         r_dict = POST_and_assert_expected_response(self, BASE_URL + '/task_relation_blueprint/', trb_test_data, 201, trb_test_data)
@@ -1416,12 +1466,12 @@ class TaskRelationBlueprintTestCase(unittest.TestCase):
         GET_and_assert_expected_response(self, url, 200, trb_test_data)
 
     def test_task_relation_blueprint_PUT_invalid_raises_error(self):
-        trb_test_data = test_data_creator.TaskRelationBlueprint()
+        trb_test_data = test_data_creator.TaskRelationBlueprint(draft_url=self.draft_url, template_url=self.template_url, input_url=self.input_url, output_url=self.output_url, consumer_url=self.consumer_url, producer_url=self.producer_url)
         PUT_and_assert_expected_response(self, BASE_URL + '/task_relation_blueprint/9876789876/', trb_test_data, 404, {})
 
     def test_task_relation_blueprint_PUT(self):
-        trb_test_data1 = test_data_creator.TaskRelationBlueprint()
-        trb_test_data2 = test_data_creator.TaskRelationBlueprint()
+        trb_test_data1 = test_data_creator.TaskRelationBlueprint(draft_url=self.draft_url, template_url=self.template_url, input_url=self.input_url, output_url=self.output_url, consumer_url=self.consumer_url, producer_url=self.producer_url)
+        trb_test_data2 = test_data_creator.TaskRelationBlueprint(draft_url=self.draft_url, template_url=self.template_url, input_url=self.input_url, output_url=self.output_url, consumer_url=self.consumer_url, producer_url=self.producer_url)
 
         # POST new item, verify
         r_dict = POST_and_assert_expected_response(self, BASE_URL + '/task_relation_blueprint/', trb_test_data1, 201, trb_test_data1)
@@ -1433,7 +1483,7 @@ class TaskRelationBlueprintTestCase(unittest.TestCase):
         GET_and_assert_expected_response(self, url, 200, trb_test_data2)
 
     def test_task_relation_blueprint_PATCH(self):
-        trb_test_data = test_data_creator.TaskRelationBlueprint()
+        trb_test_data = test_data_creator.TaskRelationBlueprint(draft_url=self.draft_url, template_url=self.template_url, input_url=self.input_url, output_url=self.output_url, consumer_url=self.consumer_url, producer_url=self.producer_url)
 
         # POST new item, verify
         r_dict = POST_and_assert_expected_response(self, BASE_URL + '/task_relation_blueprint/', trb_test_data, 201, trb_test_data)
@@ -1449,7 +1499,7 @@ class TaskRelationBlueprintTestCase(unittest.TestCase):
         GET_and_assert_expected_response(self, url, 200, expected_data)
 
     def test_task_relation_blueprint_DELETE(self):
-        trb_test_data = test_data_creator.TaskRelationBlueprint()
+        trb_test_data = test_data_creator.TaskRelationBlueprint(draft_url=self.draft_url, template_url=self.template_url, input_url=self.input_url, output_url=self.output_url, consumer_url=self.consumer_url, producer_url=self.producer_url)
 
         # POST new item, verify
         r_dict = POST_and_assert_expected_response(self, BASE_URL + '/task_relation_blueprint/', trb_test_data, 201, trb_test_data)
@@ -1460,7 +1510,7 @@ class TaskRelationBlueprintTestCase(unittest.TestCase):
         DELETE_and_assert_gone(self, url)
 
     def test_task_relation_blueprint_prevents_missing_selection_template(self):
-        trb_test_data = test_data_creator.TaskRelationBlueprint()
+        trb_test_data = test_data_creator.TaskRelationBlueprint(draft_url=self.draft_url, template_url=self.template_url, input_url=self.input_url, output_url=self.output_url, consumer_url=self.consumer_url, producer_url=self.producer_url)
 
         # test data
         test_data = dict(trb_test_data)
@@ -1471,7 +1521,7 @@ class TaskRelationBlueprintTestCase(unittest.TestCase):
         self.assertTrue('This field may not be null' in str(r_dict['selection_template']))
 
     def test_task_relation_blueprint_prevents_missing_draft(self):
-        trb_test_data = test_data_creator.TaskRelationBlueprint()
+        trb_test_data = test_data_creator.TaskRelationBlueprint(draft_url=self.draft_url, template_url=self.template_url, input_url=self.input_url, output_url=self.output_url, consumer_url=self.consumer_url, producer_url=self.producer_url)
 
         # test data
         test_data = dict(trb_test_data)
@@ -1482,7 +1532,7 @@ class TaskRelationBlueprintTestCase(unittest.TestCase):
         self.assertTrue('This field may not be null' in str(r_dict['draft']))
 
     def test_task_relation_blueprint_prevents_missing_producer(self):
-        trb_test_data = test_data_creator.TaskRelationBlueprint()
+        trb_test_data = test_data_creator.TaskRelationBlueprint(draft_url=self.draft_url, template_url=self.template_url, input_url=self.input_url, output_url=self.output_url, consumer_url=self.consumer_url, producer_url=self.producer_url)
 
         # test data
         test_data = dict(trb_test_data)
@@ -1493,7 +1543,7 @@ class TaskRelationBlueprintTestCase(unittest.TestCase):
         self.assertTrue('This field may not be null' in str(r_dict['producer']))
 
     def test_task_relation_blueprint_prevents_missing_consumer(self):
-        trb_test_data = test_data_creator.TaskRelationBlueprint()
+        trb_test_data = test_data_creator.TaskRelationBlueprint(draft_url=self.draft_url, template_url=self.template_url, input_url=self.input_url, output_url=self.output_url, consumer_url=self.consumer_url, producer_url=self.producer_url)
 
         # test data
         test_data = dict(trb_test_data)
@@ -1504,7 +1554,7 @@ class TaskRelationBlueprintTestCase(unittest.TestCase):
         self.assertTrue('This field may not be null' in str(r_dict['consumer']))
 
     def test_task_relation_blueprint_prevents_missing_input(self):
-        trb_test_data = test_data_creator.TaskRelationBlueprint()
+        trb_test_data = test_data_creator.TaskRelationBlueprint(draft_url=self.draft_url, template_url=self.template_url, input_url=self.input_url, output_url=self.output_url, consumer_url=self.consumer_url, producer_url=self.producer_url)
 
         # test data
         test_data = dict(trb_test_data)
@@ -1515,7 +1565,7 @@ class TaskRelationBlueprintTestCase(unittest.TestCase):
         self.assertTrue('This field may not be null' in str(r_dict['input']))
 
     def test_task_relation_blueprint_prevents_missing_output(self):
-        trb_test_data = test_data_creator.TaskRelationBlueprint()
+        trb_test_data = test_data_creator.TaskRelationBlueprint(draft_url=self.draft_url, template_url=self.template_url, input_url=self.input_url, output_url=self.output_url, consumer_url=self.consumer_url, producer_url=self.producer_url)
 
         # test data
         test_data = dict(trb_test_data)
@@ -1527,7 +1577,7 @@ class TaskRelationBlueprintTestCase(unittest.TestCase):
 
     def test_task_relation_blueprint_CASCADE_behavior_on_work_relation_selection_template_deleted(self):
         template_url = test_data_creator.post_data_and_get_url(test_data_creator.WorkRelationSelectionTemplate(), '/work_relation_selection_template/')
-        trb_test_data = test_data_creator.TaskRelationBlueprint(template_url=template_url)
+        trb_test_data = test_data_creator.TaskRelationBlueprint(draft_url=self.draft_url, template_url=template_url, input_url=self.input_url, output_url=self.output_url, consumer_url=self.consumer_url, producer_url=self.producer_url)
 
         # POST new item
         url = POST_and_assert_expected_response(self, BASE_URL + '/task_relation_blueprint/',  trb_test_data, 201, trb_test_data)['url']
@@ -1543,7 +1593,7 @@ class TaskRelationBlueprintTestCase(unittest.TestCase):
 
     def test_task_relation_blueprint_CASCADE_behavior_on_producer_deleted(self):
         producer_url = test_data_creator.post_data_and_get_url(test_data_creator.TaskBlueprint(), '/task_blueprint/')
-        trb_test_data = test_data_creator.TaskRelationBlueprint(producer_url=producer_url)
+        trb_test_data = test_data_creator.TaskRelationBlueprint(draft_url=self.draft_url, template_url=self.template_url, input_url=self.input_url, output_url=self.output_url, consumer_url=self.consumer_url, producer_url=producer_url)
 
         # POST new item
         url = POST_and_assert_expected_response(self, BASE_URL + '/task_relation_blueprint/',
@@ -1561,7 +1611,7 @@ class TaskRelationBlueprintTestCase(unittest.TestCase):
 
     def test_task_relation_blueprint_CASCADE_behavior_on_consumer_deleted(self):
         consumer_url = test_data_creator.post_data_and_get_url(test_data_creator.TaskBlueprint(), '/task_blueprint/')
-        trb_test_data = test_data_creator.TaskRelationBlueprint(consumer_url=consumer_url)
+        trb_test_data = test_data_creator.TaskRelationBlueprint(draft_url=self.draft_url, template_url=self.template_url, input_url=self.input_url, output_url=self.output_url, consumer_url=consumer_url, producer_url=self.producer_url)
 
         # POST new item with dependency
         url = POST_and_assert_expected_response(self, BASE_URL + '/task_relation_blueprint/',
@@ -1579,7 +1629,7 @@ class TaskRelationBlueprintTestCase(unittest.TestCase):
 
     def test_task_relation_blueprint_CASCADE_behavior_on_input_deleted(self):
         input_url = test_data_creator.post_data_and_get_url(test_data_creator.TaskConnectors(), '/task_connectors/')
-        trb_test_data = test_data_creator.TaskRelationBlueprint(input_url=input_url)
+        trb_test_data = test_data_creator.TaskRelationBlueprint(draft_url=self.draft_url, template_url=self.template_url, input_url=input_url, output_url=self.output_url, consumer_url=self.consumer_url, producer_url=self.producer_url)
 
         # POST new item
         url = POST_and_assert_expected_response(self, BASE_URL + '/task_relation_blueprint/',
@@ -1597,7 +1647,7 @@ class TaskRelationBlueprintTestCase(unittest.TestCase):
 
     def test_task_relation_blueprint_CASCADE_behavior_on_output_deleted(self):
         output_url = test_data_creator.post_data_and_get_url(test_data_creator.TaskConnectors(), '/task_connectors/')
-        trb_test_data = test_data_creator.TaskRelationBlueprint(output_url=output_url)
+        trb_test_data = test_data_creator.TaskRelationBlueprint(draft_url=self.draft_url, template_url=self.template_url, input_url=self.input_url, output_url=output_url, consumer_url=self.consumer_url, producer_url=self.producer_url)
 
         # POST new item with dependency
         url = POST_and_assert_expected_response(self, BASE_URL + '/task_relation_blueprint/',
diff --git a/SAS/TMSS/test/tmss_test_data_rest.py b/SAS/TMSS/test/tmss_test_data_rest.py
index 8c1a62ae360f77f89a83725709ce0931ec122a48..60cb443aa880c4a6802688b008deb621d6c1d2ee 100644
--- a/SAS/TMSS/test/tmss_test_data_rest.py
+++ b/SAS/TMSS/test/tmss_test_data_rest.py
@@ -169,7 +169,7 @@ class TMSSRESTTestDataCreator():
                 'consumed_by': []}
     
     
-    def TaskRelationDraft(self, name="myTaskRelationDraft", producer_url=None, consumer_url=None, template_url=None, input_url=None, output_url=None):
+    def TaskRelationDraft(self, producer_url=None, consumer_url=None, template_url=None, input_url=None, output_url=None):
         if producer_url is None:
             producer_url = self.post_data_and_get_url(self.TaskDraft(), '/task_draft/')