1111from dl_core .us_manager .us_manager_sync import SyncUSManager
1212from dl_testing .regulated_test import RegulatedTestCase
1313
14+ import pytest
15+
1416
1517class DefaultConnectorDatasetTestSuite (DatasetTestBase , RegulatedTestCase , metaclass = abc .ABCMeta ):
1618 def check_basic_dataset (self , ds : Dataset ) -> None :
@@ -88,35 +90,40 @@ def test_replace_connection(
8890 assert dataset .sources
8991 assert all (source .connection_id == new_connection_id for source in dataset .sources )
9092
91- def test_export_import_dataset (
93+ @pytest .fixture (scope = "function" )
94+ def export_import_headers (self , control_api_app_settings : ControlApiAppSettings ) -> dict [str , str ]:
95+ return {
96+ DLHeadersCommon .US_MASTER_TOKEN .value : control_api_app_settings .US_MASTER_TOKEN ,
97+ }
98+
99+ def test_export_import_invalid_schema (
92100 self ,
93101 control_api : SyncHttpDatasetApiV1 ,
94- saved_connection_id : str ,
95102 saved_dataset : Dataset ,
96- sync_us_manager : SyncUSManager ,
97- control_api_app_settings : ControlApiAppSettings ,
98- bi_headers : Optional [dict [str , str ]],
99- ) -> None :
100- us_master_token = control_api_app_settings .US_MASTER_TOKEN
101- assert us_master_token
102-
103- if bi_headers is None :
104- bi_headers = dict ()
105-
106- bi_headers [DLHeadersCommon .US_MASTER_TOKEN .value ] = us_master_token
103+ export_import_headers : dict [str , str ],
104+ ):
105+ export_data = dict ()
106+ export_resp = control_api .export_dataset (dataset = saved_dataset , data = export_data , headers = export_import_headers )
107+ assert export_resp .status_code == 400 , export_resp .json
107108
108- # test invalid schema
109- export_data : dict = dict ()
110- export_resp = control_api .export_dataset (saved_dataset , data = export_data , bi_headers = bi_headers )
111- assert export_resp .status_code == 400
109+ import_data = dict ()
110+ import_resp = control_api .import_dataset (data = import_data , headers = export_import_headers )
111+ assert import_resp .status_code == 400 , import_resp .json
112112
113- export_data = {"id_mapping" : {}}
114- export_resp = control_api .export_dataset ( saved_dataset , data = export_data , bi_headers = bi_headers )
115- assert export_resp .status_code == 400
113+ import_data = {"id_mapping" : {}}
114+ import_resp = control_api .import_dataset ( data = import_data , headers = export_import_headers )
115+ assert import_resp .status_code == 400 , import_resp . json
116116
117+ def test_export_import_dataset (
118+ self ,
119+ control_api : SyncHttpDatasetApiV1 ,
120+ saved_connection_id : str ,
121+ saved_dataset : Dataset ,
122+ export_import_headers : dict [str , str ],
123+ ) -> None :
117124 # test common export
118125 export_data = {"id_mapping" : {saved_connection_id : "conn_id_1" }}
119- export_resp = control_api .export_dataset (saved_dataset , data = export_data , bi_headers = bi_headers )
126+ export_resp = control_api .export_dataset (dataset = saved_dataset , data = export_data , headers = export_import_headers )
120127 assert export_resp .status_code == 200
121128 assert export_resp .json ["dataset" ]["sources" ][0 ]["connection_id" ] == "conn_id_1"
122129
@@ -125,17 +132,33 @@ def test_export_import_dataset(
125132 "id_mapping" : {"conn_id_1" : saved_connection_id },
126133 "data" : {"workbook_id" : None , "dataset" : export_resp .json ["dataset" ]},
127134 }
128- import_resp = control_api .import_dataset (data = import_data , bi_headers = bi_headers )
129- assert import_resp .status_code == 200 , f"{ import_resp .json } != { export_resp .json } "
135+ import_resp = control_api .import_dataset (data = import_data , headers = export_import_headers )
136+ assert import_resp .status_code == 200 , f"{ import_resp .json } vs { export_resp .json } "
130137
131138 control_api .delete_dataset (dataset_id = import_resp .json ["id" ])
132139
133- # test import without a connection
134- import_without_conn_data : dict = {
135- "id_mapping" : {}, # empty
140+ def test_export_import_dataset_with_no_connection (
141+ self ,
142+ control_api : SyncHttpDatasetApiV1 ,
143+ saved_connection_id : str ,
144+ sync_us_manager : SyncUSManager ,
145+ saved_dataset : Dataset ,
146+ export_import_headers : dict [str , str ],
147+ ):
148+ sync_us_manager .delete (sync_us_manager .get_by_id (saved_connection_id ))
149+
150+ # export with no connection
151+ export_req_data = {"id_mapping" : {}}
152+ export_resp = control_api .export_dataset (dataset = saved_dataset , data = export_req_data , headers = export_import_headers )
153+ assert export_resp .status_code == 200 , export_resp .json
154+ assert export_resp .json ["dataset" ]["sources" ][0 ]["connection_id" ] == None
155+
156+ # import with no connection
157+ import_req_data : dict = {
158+ "id_mapping" : {},
136159 "data" : {"workbook_id" : None , "dataset" : export_resp .json ["dataset" ]},
137160 }
138- import_without_conn_resp = control_api .import_dataset (data = import_without_conn_data , bi_headers = bi_headers )
139- assert import_without_conn_resp .status_code == 200 , f"{ import_without_conn_resp .json } != { export_resp .json } "
161+ import_resp = control_api .import_dataset (data = import_req_data , headers = export_import_headers )
162+ assert import_resp .status_code == 200 , f"{ import_resp .json } vs { export_resp .json } "
140163
141- control_api .delete_dataset (dataset_id = import_without_conn_resp .json ["id" ])
164+ control_api .delete_dataset (dataset_id = import_resp .json ["id" ])
0 commit comments