def test_get(self) -> None: with open(GET_XML, "rb") as f: response_xml = f.read().decode("utf-8") with requests_mock.mock() as m: m.get(self.baseurl, text=response_xml) all_workbooks, pagination_item = self.server.workbooks.get() self.assertEqual(2, pagination_item.total_available) self.assertEqual("6d13b0ca-043d-4d42-8c9d-3f3313ea3a00", all_workbooks[0].id) self.assertEqual("Superstore", all_workbooks[0].name) self.assertEqual("Superstore", all_workbooks[0].content_url) self.assertEqual(False, all_workbooks[0].show_tabs) self.assertEqual("http://tableauserver/#/workbooks/1/views", all_workbooks[0].webpage_url) self.assertEqual(1, all_workbooks[0].size) self.assertEqual("2016-08-03T20:34:04Z", format_datetime(all_workbooks[0].created_at)) self.assertEqual("description for Superstore", all_workbooks[0].description) self.assertEqual("2016-08-04T17:56:41Z", format_datetime(all_workbooks[0].updated_at)) self.assertEqual("ee8c6e70-43b6-11e6-af4f-f7b0d8e20760", all_workbooks[0].project_id) self.assertEqual("default", all_workbooks[0].project_name) self.assertEqual("5de011f8-5aa9-4d5b-b991-f462c8dd6bb7", all_workbooks[0].owner_id) self.assertEqual("3cc6cd06-89ce-4fdc-b935-5294135d6d42", all_workbooks[1].id) self.assertEqual("SafariSample", all_workbooks[1].name) self.assertEqual("SafariSample", all_workbooks[1].content_url) self.assertEqual("http://tableauserver/#/workbooks/2/views", all_workbooks[1].webpage_url) self.assertEqual(False, all_workbooks[1].show_tabs) self.assertEqual(26, all_workbooks[1].size) self.assertEqual("2016-07-26T20:34:56Z", format_datetime(all_workbooks[1].created_at)) self.assertEqual("description for SafariSample", all_workbooks[1].description) self.assertEqual("2016-07-26T20:35:05Z", format_datetime(all_workbooks[1].updated_at)) self.assertEqual("ee8c6e70-43b6-11e6-af4f-f7b0d8e20760", all_workbooks[1].project_id) self.assertEqual("default", all_workbooks[1].project_name) self.assertEqual("5de011f8-5aa9-4d5b-b991-f462c8dd6bb7", all_workbooks[1].owner_id) self.assertEqual(set(["Safari", "Sample"]), all_workbooks[1].tags)
def test_get_by_id(self): with open(GET_BY_ID_XML, 'rb') as f: response_xml = f.read().decode('utf-8') with requests_mock.mock() as m: m.get(self.baseurl + '/9dbd2263-16b5-46e1-9c43-a76bb8ab65fb', text=response_xml) single_datasource = self.server.datasources.get_by_id( '9dbd2263-16b5-46e1-9c43-a76bb8ab65fb') self.assertEqual('9dbd2263-16b5-46e1-9c43-a76bb8ab65fb', single_datasource.id) self.assertEqual('dataengine', single_datasource.datasource_type) self.assertEqual('Sampledatasource', single_datasource.content_url) self.assertEqual('2016-08-04T21:31:55Z', format_datetime(single_datasource.created_at)) self.assertEqual('2016-08-04T21:31:55Z', format_datetime(single_datasource.updated_at)) self.assertEqual('default', single_datasource.project_name) self.assertEqual('Sample datasource', single_datasource.name) self.assertEqual('ee8c6e70-43b6-11e6-af4f-f7b0d8e20760', single_datasource.project_id) self.assertEqual('5de011f8-5aa9-4d5b-b991-f462c8dd6bb7', single_datasource.owner_id) self.assertEqual(set(['world', 'indicators', 'sample']), single_datasource.tags)
def test_get(self): response_xml = read_xml_asset(GET_XML) with requests_mock.mock() as m: m.get(self.baseurl, text=response_xml) all_datasources, pagination_item = self.server.datasources.get() self.assertEqual(2, pagination_item.total_available) self.assertEqual('e76a1461-3b1d-4588-bf1b-17551a879ad9', all_datasources[0].id) self.assertEqual('dataengine', all_datasources[0].datasource_type) self.assertEqual('SampleDS', all_datasources[0].content_url) self.assertEqual('2016-08-11T21:22:40Z', format_datetime(all_datasources[0].created_at)) self.assertEqual('2016-08-11T21:34:17Z', format_datetime(all_datasources[0].updated_at)) self.assertEqual('default', all_datasources[0].project_name) self.assertEqual('SampleDS', all_datasources[0].name) self.assertEqual('ee8c6e70-43b6-11e6-af4f-f7b0d8e20760', all_datasources[0].project_id) self.assertEqual('5de011f8-5aa9-4d5b-b991-f462c8dd6bb7', all_datasources[0].owner_id) self.assertEqual('9dbd2263-16b5-46e1-9c43-a76bb8ab65fb', all_datasources[1].id) self.assertEqual('dataengine', all_datasources[1].datasource_type) self.assertEqual('Sampledatasource', all_datasources[1].content_url) self.assertEqual('2016-08-04T21:31:55Z', format_datetime(all_datasources[1].created_at)) self.assertEqual('2016-08-04T21:31:55Z', format_datetime(all_datasources[1].updated_at)) self.assertEqual('default', all_datasources[1].project_name) self.assertEqual('Sample datasource', all_datasources[1].name) self.assertEqual('ee8c6e70-43b6-11e6-af4f-f7b0d8e20760', all_datasources[1].project_id) self.assertEqual('5de011f8-5aa9-4d5b-b991-f462c8dd6bb7', all_datasources[1].owner_id) self.assertEqual(set(['world', 'indicators', 'sample']), all_datasources[1].tags)
def test_publish_path_object(self) -> None: with open(PUBLISH_XML, "rb") as f: response_xml = f.read().decode("utf-8") with requests_mock.mock() as m: m.post(self.baseurl, text=response_xml) new_workbook = TSC.WorkbookItem( name="Sample", show_tabs=False, project_id="ee8c6e70-43b6-11e6-af4f-f7b0d8e20760" ) sample_workbook = Path(TEST_ASSET_DIR) / "SampleWB.twbx" publish_mode = self.server.PublishMode.CreateNew new_workbook = self.server.workbooks.publish(new_workbook, sample_workbook, publish_mode) self.assertEqual("a8076ca1-e9d8-495e-bae6-c684dbb55836", new_workbook.id) self.assertEqual("RESTAPISample", new_workbook.name) self.assertEqual("RESTAPISample_0", new_workbook.content_url) self.assertEqual(False, new_workbook.show_tabs) self.assertEqual(1, new_workbook.size) self.assertEqual("2016-08-18T18:33:24Z", format_datetime(new_workbook.created_at)) self.assertEqual("2016-08-18T20:31:34Z", format_datetime(new_workbook.updated_at)) self.assertEqual("ee8c6e70-43b6-11e6-af4f-f7b0d8e20760", new_workbook.project_id) self.assertEqual("default", new_workbook.project_name) self.assertEqual("5de011f8-5aa9-4d5b-b991-f462c8dd6bb7", new_workbook.owner_id) self.assertEqual("fe0b4e89-73f4-435e-952d-3a263fbfa56c", new_workbook.views[0].id) self.assertEqual("GDP per capita", new_workbook.views[0].name) self.assertEqual("RESTAPISample_0/sheets/GDPpercapita", new_workbook.views[0].content_url)
def test_get(self): response_xml = read_xml_asset(GET_XML) with requests_mock.mock() as m: m.get(self.baseurl, text=response_xml) all_flows, pagination_item = self.server.flows.get() self.assertEqual(5, pagination_item.total_available) self.assertEqual('587daa37-b84d-4400-a9a2-aa90e0be7837', all_flows[0].id) self.assertEqual('http://tableauserver/#/flows/1', all_flows[0].webpage_url) self.assertEqual('2019-06-16T21:43:28Z', format_datetime(all_flows[0].created_at)) self.assertEqual('2019-06-16T21:43:28Z', format_datetime(all_flows[0].updated_at)) self.assertEqual('Default', all_flows[0].project_name) self.assertEqual('FlowOne', all_flows[0].name) self.assertEqual('aa23f4ac-906f-11e9-86fb-3f0f71412e77', all_flows[0].project_id) self.assertEqual('7ebb3f20-0fd2-4f27-a2f6-c539470999e2', all_flows[0].owner_id) self.assertEqual({'i_love_tags'}, all_flows[0].tags) self.assertEqual('Descriptive', all_flows[0].description) self.assertEqual('5c36be69-eb30-461b-b66e-3e2a8e27cc35', all_flows[1].id) self.assertEqual('http://tableauserver/#/flows/4', all_flows[1].webpage_url) self.assertEqual('2019-06-18T03:08:19Z', format_datetime(all_flows[1].created_at)) self.assertEqual('2019-06-18T03:08:19Z', format_datetime(all_flows[1].updated_at)) self.assertEqual('Default', all_flows[1].project_name) self.assertEqual('FlowTwo', all_flows[1].name) self.assertEqual('aa23f4ac-906f-11e9-86fb-3f0f71412e77', all_flows[1].project_id) self.assertEqual('9127d03f-d996-405f-b392-631b25183a0f', all_flows[1].owner_id)
def test_publish_a_non_packaged_file_object(self): response_xml = read_xml_asset(PUBLISH_XML) with requests_mock.mock() as m: m.post(self.baseurl, text=response_xml) new_datasource = TSC.DatasourceItem( 'ee8c6e70-43b6-11e6-af4f-f7b0d8e20760', 'SampleDS') publish_mode = self.server.PublishMode.CreateNew with open(asset('SampleDS.tds'), 'rb') as file_object: new_datasource = self.server.datasources.publish( new_datasource, file_object, mode=publish_mode) self.assertEqual('e76a1461-3b1d-4588-bf1b-17551a879ad9', new_datasource.id) self.assertEqual('SampleDS', new_datasource.name) self.assertEqual('SampleDS', new_datasource.content_url) self.assertEqual('dataengine', new_datasource.datasource_type) self.assertEqual('2016-08-11T21:22:40Z', format_datetime(new_datasource.created_at)) self.assertEqual('2016-08-17T23:37:08Z', format_datetime(new_datasource.updated_at)) self.assertEqual('ee8c6e70-43b6-11e6-af4f-f7b0d8e20760', new_datasource.project_id) self.assertEqual('default', new_datasource.project_name) self.assertEqual('5de011f8-5aa9-4d5b-b991-f462c8dd6bb7', new_datasource.owner_id)
def test_get_by_id(self): response_xml = read_xml_asset(GET_BY_ID_XML) with requests_mock.mock() as m: m.get(self.baseurl + '/9dbd2263-16b5-46e1-9c43-a76bb8ab65fb', text=response_xml) single_datasource = self.server.datasources.get_by_id( '9dbd2263-16b5-46e1-9c43-a76bb8ab65fb') self.assertEqual('9dbd2263-16b5-46e1-9c43-a76bb8ab65fb', single_datasource.id) self.assertEqual('dataengine', single_datasource.datasource_type) self.assertEqual('abc description xyz', single_datasource.description) self.assertEqual('Sampledatasource', single_datasource.content_url) self.assertEqual('2016-08-04T21:31:55Z', format_datetime(single_datasource.created_at)) self.assertEqual('2016-08-04T21:31:55Z', format_datetime(single_datasource.updated_at)) self.assertEqual('default', single_datasource.project_name) self.assertEqual('Sample datasource', single_datasource.name) self.assertEqual('ee8c6e70-43b6-11e6-af4f-f7b0d8e20760', single_datasource.project_id) self.assertEqual('5de011f8-5aa9-4d5b-b991-f462c8dd6bb7', single_datasource.owner_id) self.assertEqual(set(['world', 'indicators', 'sample']), single_datasource.tags) self.assertEqual(TSC.DatasourceItem.AskDataEnablement.SiteDefault, single_datasource.ask_data_enablement)
def test_populate_workbooks(self): with open(POPULATE_WORKBOOKS_XML, 'rb') as f: response_xml = f.read().decode('utf-8') with requests_mock.mock() as m: m.get(self.baseurl + '/dd2239f6-ddf1-4107-981a-4cf94e415794/workbooks', text=response_xml) single_user = TSC.UserItem('test', 'Interactor') single_user._id = 'dd2239f6-ddf1-4107-981a-4cf94e415794' self.server.users.populate_workbooks(single_user) workbook_list = list(single_user.workbooks) self.assertEqual('3cc6cd06-89ce-4fdc-b935-5294135d6d42', workbook_list[0].id) self.assertEqual('SafariSample', workbook_list[0].name) self.assertEqual('SafariSample', workbook_list[0].content_url) self.assertEqual(False, workbook_list[0].show_tabs) self.assertEqual(26, workbook_list[0].size) self.assertEqual('2016-07-26T20:34:56Z', format_datetime(workbook_list[0].created_at)) self.assertEqual('2016-07-26T20:35:05Z', format_datetime(workbook_list[0].updated_at)) self.assertEqual('ee8c6e70-43b6-11e6-af4f-f7b0d8e20760', workbook_list[0].project_id) self.assertEqual('default', workbook_list[0].project_name) self.assertEqual('5de011f8-5aa9-4d5b-b991-f462c8dd6bb7', workbook_list[0].owner_id) self.assertEqual(set(['Safari', 'Sample']), workbook_list[0].tags)
def test_get(self): with open(GET_XML, 'rb') as f: response_xml = f.read().decode('utf-8') with requests_mock.mock() as m: m.get(self.baseurl, text=response_xml) all_datasources, pagination_item = self.server.datasources.get() self.assertEqual(2, pagination_item.total_available) self.assertEqual('e76a1461-3b1d-4588-bf1b-17551a879ad9', all_datasources[0].id) self.assertEqual('dataengine', all_datasources[0].datasource_type) self.assertEqual('SampleDS', all_datasources[0].content_url) self.assertEqual('2016-08-11T21:22:40Z', format_datetime(all_datasources[0].created_at)) self.assertEqual('2016-08-11T21:34:17Z', format_datetime(all_datasources[0].updated_at)) self.assertEqual('default', all_datasources[0].project_name) self.assertEqual('SampleDS', all_datasources[0].name) self.assertEqual('ee8c6e70-43b6-11e6-af4f-f7b0d8e20760', all_datasources[0].project_id) self.assertEqual('5de011f8-5aa9-4d5b-b991-f462c8dd6bb7', all_datasources[0].owner_id) self.assertEqual('9dbd2263-16b5-46e1-9c43-a76bb8ab65fb', all_datasources[1].id) self.assertEqual('dataengine', all_datasources[1].datasource_type) self.assertEqual('Sampledatasource', all_datasources[1].content_url) self.assertEqual('2016-08-04T21:31:55Z', format_datetime(all_datasources[1].created_at)) self.assertEqual('2016-08-04T21:31:55Z', format_datetime(all_datasources[1].updated_at)) self.assertEqual('default', all_datasources[1].project_name) self.assertEqual('Sample datasource', all_datasources[1].name) self.assertEqual('ee8c6e70-43b6-11e6-af4f-f7b0d8e20760', all_datasources[1].project_id) self.assertEqual('5de011f8-5aa9-4d5b-b991-f462c8dd6bb7', all_datasources[1].owner_id) self.assertEqual(set(['world', 'indicators', 'sample']), all_datasources[1].tags)
def test_publish(self): with open(PUBLISH_XML, 'rb') as f: response_xml = f.read().decode('utf-8') with requests_mock.mock() as m: m.post(self.baseurl, text=response_xml) new_workbook = TSC.WorkbookItem(name='Sample', show_tabs=False, project_id='ee8c6e70-43b6-11e6-af4f-f7b0d8e20760') sample_workbook = os.path.join(TEST_ASSET_DIR, 'SampleWB.twbx') publish_mode = self.server.PublishMode.CreateNew new_workbook = self.server.workbooks.publish(new_workbook, sample_workbook, publish_mode) self.assertEqual('a8076ca1-e9d8-495e-bae6-c684dbb55836', new_workbook.id) self.assertEqual('RESTAPISample', new_workbook.name) self.assertEqual('RESTAPISample_0', new_workbook.content_url) self.assertEqual(False, new_workbook.show_tabs) self.assertEqual(1, new_workbook.size) self.assertEqual('2016-08-18T18:33:24Z', format_datetime(new_workbook.created_at)) self.assertEqual('2016-08-18T20:31:34Z', format_datetime(new_workbook.updated_at)) self.assertEqual('ee8c6e70-43b6-11e6-af4f-f7b0d8e20760', new_workbook.project_id) self.assertEqual('default', new_workbook.project_name) self.assertEqual('5de011f8-5aa9-4d5b-b991-f462c8dd6bb7', new_workbook.owner_id) self.assertEqual('fe0b4e89-73f4-435e-952d-3a263fbfa56c', new_workbook.views[0].id) self.assertEqual('GDP per capita', new_workbook.views[0].name) self.assertEqual('RESTAPISample_0/sheets/GDPpercapita', new_workbook.views[0].content_url)
def test_revisions(self) -> None: self.baseurl = self.server.workbooks.baseurl workbook = TSC.WorkbookItem("project", "test") workbook._id = "06b944d2-959d-4604-9305-12323c95e70e" with open(REVISION_XML, "rb") as f: response_xml = f.read().decode("utf-8") with requests_mock.mock() as m: m.get("{0}/{1}/revisions".format(self.baseurl, workbook.id), text=response_xml) self.server.workbooks.populate_revisions(workbook) revisions = workbook.revisions self.assertEqual(len(revisions), 3) self.assertEqual("2016-07-26T20:34:56Z", format_datetime(revisions[0].created_at)) self.assertEqual("2016-07-27T20:34:56Z", format_datetime(revisions[1].created_at)) self.assertEqual("2016-07-28T20:34:56Z", format_datetime(revisions[2].created_at)) self.assertEqual(False, revisions[0].deleted) self.assertEqual(False, revisions[0].current) self.assertEqual(False, revisions[1].deleted) self.assertEqual(False, revisions[1].current) self.assertEqual(False, revisions[2].deleted) self.assertEqual(True, revisions[2].current) self.assertEqual("Cassie", revisions[0].user_name) self.assertEqual("5de011f8-5aa9-4d5b-b991-f462c8dd6bb7", revisions[0].user_id) self.assertIsNone(revisions[1].user_name) self.assertIsNone(revisions[1].user_id) self.assertEqual("Cassie", revisions[2].user_name) self.assertEqual("5de011f8-5aa9-4d5b-b991-f462c8dd6bb7", revisions[2].user_id)
def test_populate_workbooks(self) -> None: with open(POPULATE_WORKBOOKS_XML, "rb") as f: response_xml = f.read().decode("utf-8") with requests_mock.mock() as m: m.get(self.baseurl + "/dd2239f6-ddf1-4107-981a-4cf94e415794/workbooks", text=response_xml) single_user = TSC.UserItem("test", "Interactor") single_user._id = "dd2239f6-ddf1-4107-981a-4cf94e415794" self.server.users.populate_workbooks(single_user) workbook_list = list(single_user.workbooks) self.assertEqual("3cc6cd06-89ce-4fdc-b935-5294135d6d42", workbook_list[0].id) self.assertEqual("SafariSample", workbook_list[0].name) self.assertEqual("SafariSample", workbook_list[0].content_url) self.assertEqual(False, workbook_list[0].show_tabs) self.assertEqual(26, workbook_list[0].size) self.assertEqual("2016-07-26T20:34:56Z", format_datetime(workbook_list[0].created_at)) self.assertEqual("2016-07-26T20:35:05Z", format_datetime(workbook_list[0].updated_at)) self.assertEqual("ee8c6e70-43b6-11e6-af4f-f7b0d8e20760", workbook_list[0].project_id) self.assertEqual("default", workbook_list[0].project_name) self.assertEqual("5de011f8-5aa9-4d5b-b991-f462c8dd6bb7", workbook_list[0].owner_id) self.assertEqual(set(["Safari", "Sample"]), workbook_list[0].tags)
def test_get_by_id(self) -> None: response_xml = read_xml_asset(GET_BY_ID_XML) with requests_mock.mock() as m: m.get(self.baseurl + "/9dbd2263-16b5-46e1-9c43-a76bb8ab65fb", text=response_xml) single_datasource = self.server.datasources.get_by_id( "9dbd2263-16b5-46e1-9c43-a76bb8ab65fb") self.assertEqual("9dbd2263-16b5-46e1-9c43-a76bb8ab65fb", single_datasource.id) self.assertEqual("dataengine", single_datasource.datasource_type) self.assertEqual("abc description xyz", single_datasource.description) self.assertEqual("Sampledatasource", single_datasource.content_url) self.assertEqual("2016-08-04T21:31:55Z", format_datetime(single_datasource.created_at)) self.assertEqual("2016-08-04T21:31:55Z", format_datetime(single_datasource.updated_at)) self.assertEqual("default", single_datasource.project_name) self.assertEqual("Sample datasource", single_datasource.name) self.assertEqual("ee8c6e70-43b6-11e6-af4f-f7b0d8e20760", single_datasource.project_id) self.assertEqual("5de011f8-5aa9-4d5b-b991-f462c8dd6bb7", single_datasource.owner_id) self.assertEqual(set(["world", "indicators", "sample"]), single_datasource.tags) self.assertEqual(TSC.DatasourceItem.AskDataEnablement.SiteDefault, single_datasource.ask_data_enablement)
def test_publish_a_packaged_file_object(self) -> None: response_xml = read_xml_asset(PUBLISH_XML) with requests_mock.mock() as m: m.post(self.baseurl, text=response_xml) new_datasource = TSC.DatasourceItem( "ee8c6e70-43b6-11e6-af4f-f7b0d8e20760", "SampleDS") publish_mode = self.server.PublishMode.CreateNew # Create a dummy tdsx file in memory with BytesIO() as zip_archive: with ZipFile(zip_archive, "w") as zf: zf.write(asset("SampleDS.tds")) zip_archive.seek(0) new_datasource = self.server.datasources.publish( new_datasource, zip_archive, mode=publish_mode) self.assertEqual("e76a1461-3b1d-4588-bf1b-17551a879ad9", new_datasource.id) self.assertEqual("SampleDS", new_datasource.name) self.assertEqual("SampleDS", new_datasource.content_url) self.assertEqual("dataengine", new_datasource.datasource_type) self.assertEqual("2016-08-11T21:22:40Z", format_datetime(new_datasource.created_at)) self.assertEqual("2016-08-17T23:37:08Z", format_datetime(new_datasource.updated_at)) self.assertEqual("ee8c6e70-43b6-11e6-af4f-f7b0d8e20760", new_datasource.project_id) self.assertEqual("default", new_datasource.project_name) self.assertEqual("5de011f8-5aa9-4d5b-b991-f462c8dd6bb7", new_datasource.owner_id)
def test_get(self) -> None: response_xml = read_xml_asset(GET_XML) with requests_mock.mock() as m: m.get(self.baseurl, text=response_xml) all_flow_runs, pagination_item = self.server.flow_runs.get() self.assertEqual(2, pagination_item.total_available) self.assertEqual("cc2e652d-4a9b-4476-8c93-b238c45db968", all_flow_runs[0].id) self.assertEqual("2021-02-11T01:42:55Z", format_datetime(all_flow_runs[0].started_at)) self.assertEqual("2021-02-11T01:57:38Z", format_datetime(all_flow_runs[0].completed_at)) self.assertEqual("Success", all_flow_runs[0].status) self.assertEqual("100", all_flow_runs[0].progress) self.assertEqual("aa23f4ac-906f-11e9-86fb-3f0f71412e77", all_flow_runs[0].background_job_id) self.assertEqual("a3104526-c0c6-4ea5-8362-e03fc7cbd7ee", all_flow_runs[1].id) self.assertEqual("2021-02-13T04:05:30Z", format_datetime(all_flow_runs[1].started_at)) self.assertEqual("2021-02-13T04:05:35Z", format_datetime(all_flow_runs[1].completed_at)) self.assertEqual("Failed", all_flow_runs[1].status) self.assertEqual("100", all_flow_runs[1].progress) self.assertEqual("1ad21a9d-2530-4fbf-9064-efd3c736e023", all_flow_runs[1].background_job_id)
def test_get_by_id(self): with open(GET_BY_ID_XML, 'rb') as f: response_xml = f.read().decode('utf-8') with requests_mock.mock() as m: m.get(self.baseurl + '/3cc6cd06-89ce-4fdc-b935-5294135d6d42', text=response_xml) single_workbook = self.server.workbooks.get_by_id( '3cc6cd06-89ce-4fdc-b935-5294135d6d42') self.assertEqual('3cc6cd06-89ce-4fdc-b935-5294135d6d42', single_workbook.id) self.assertEqual('SafariSample', single_workbook.name) self.assertEqual('SafariSample', single_workbook.content_url) self.assertEqual(False, single_workbook.show_tabs) self.assertEqual(26, single_workbook.size) self.assertEqual('2016-07-26T20:34:56Z', format_datetime(single_workbook.created_at)) self.assertEqual('2016-07-26T20:35:05Z', format_datetime(single_workbook.updated_at)) self.assertEqual('ee8c6e70-43b6-11e6-af4f-f7b0d8e20760', single_workbook.project_id) self.assertEqual('default', single_workbook.project_name) self.assertEqual('5de011f8-5aa9-4d5b-b991-f462c8dd6bb7', single_workbook.owner_id) self.assertEqual(set(['Safari', 'Sample']), single_workbook.tags) self.assertEqual('d79634e1-6063-4ec9-95ff-50acbf609ff5', single_workbook.views[0].id) self.assertEqual('ENDANGERED SAFARI', single_workbook.views[0].name) self.assertEqual('SafariSample/sheets/ENDANGEREDSAFARI', single_workbook.views[0].content_url)
def test_publish(self): with open(PUBLISH_XML, 'rb') as f: response_xml = f.read().decode('utf-8') with requests_mock.mock() as m: m.post(self.baseurl, text=response_xml) new_datasource = TSC.DatasourceItem( 'SampleDS', 'ee8c6e70-43b6-11e6-af4f-f7b0d8e20760') new_datasource = self.server.datasources.publish( new_datasource, os.path.join(TEST_ASSET_DIR, 'SampleDS.tds'), mode=self.server.PublishMode.CreateNew) self.assertEqual('e76a1461-3b1d-4588-bf1b-17551a879ad9', new_datasource.id) self.assertEqual('SampleDS', new_datasource.name) self.assertEqual('SampleDS', new_datasource.content_url) self.assertEqual('dataengine', new_datasource.datasource_type) self.assertEqual('2016-08-11T21:22:40Z', format_datetime(new_datasource.created_at)) self.assertEqual('2016-08-17T23:37:08Z', format_datetime(new_datasource.updated_at)) self.assertEqual('ee8c6e70-43b6-11e6-af4f-f7b0d8e20760', new_datasource.project_id) self.assertEqual('default', new_datasource.project_name) self.assertEqual('5de011f8-5aa9-4d5b-b991-f462c8dd6bb7', new_datasource.owner_id)
def test_get(self): with open(GET_XML, 'rb') as f: response_xml = f.read().decode('utf-8') with requests_mock.mock() as m: m.get(self.baseurl, text=response_xml) all_workbooks, pagination_item = self.server.workbooks.get() self.assertEqual(2, pagination_item.total_available) self.assertEqual('6d13b0ca-043d-4d42-8c9d-3f3313ea3a00', all_workbooks[0].id) self.assertEqual('Superstore', all_workbooks[0].name) self.assertEqual('Superstore', all_workbooks[0].content_url) self.assertEqual(False, all_workbooks[0].show_tabs) self.assertEqual(1, all_workbooks[0].size) self.assertEqual('2016-08-03T20:34:04Z', format_datetime(all_workbooks[0].created_at)) self.assertEqual('2016-08-04T17:56:41Z', format_datetime(all_workbooks[0].updated_at)) self.assertEqual('ee8c6e70-43b6-11e6-af4f-f7b0d8e20760', all_workbooks[0].project_id) self.assertEqual('default', all_workbooks[0].project_name) self.assertEqual('5de011f8-5aa9-4d5b-b991-f462c8dd6bb7', all_workbooks[0].owner_id) self.assertEqual('3cc6cd06-89ce-4fdc-b935-5294135d6d42', all_workbooks[1].id) self.assertEqual('SafariSample', all_workbooks[1].name) self.assertEqual('SafariSample', all_workbooks[1].content_url) self.assertEqual(False, all_workbooks[1].show_tabs) self.assertEqual(26, all_workbooks[1].size) self.assertEqual('2016-07-26T20:34:56Z', format_datetime(all_workbooks[1].created_at)) self.assertEqual('2016-07-26T20:35:05Z', format_datetime(all_workbooks[1].updated_at)) self.assertEqual('ee8c6e70-43b6-11e6-af4f-f7b0d8e20760', all_workbooks[1].project_id) self.assertEqual('default', all_workbooks[1].project_name) self.assertEqual('5de011f8-5aa9-4d5b-b991-f462c8dd6bb7', all_workbooks[1].owner_id) self.assertEqual(set(['Safari', 'Sample']), all_workbooks[1].tags)
def test_metrics_get(self) -> None: with requests_mock.mock() as m: m.get(self.baseurl, text=METRICS_GET.read_text()) all_metrics, pagination_item = self.server.metrics.get() self.assertEqual(len(all_metrics), 2) self.assertEqual(pagination_item.total_available, 27) self.assertEqual(all_metrics[0].id, "6561daa3-20e8-407f-ba09-709b178c0b4a") self.assertEqual(all_metrics[0].name, "Example metric") self.assertEqual(all_metrics[0].description, "Description of my metric.") self.assertEqual(all_metrics[0].webpage_url, "https://test/#/site/site-name/metrics/3") self.assertEqual(format_datetime(all_metrics[0].created_at), "2020-01-02T01:02:03Z") self.assertEqual(format_datetime(all_metrics[0].updated_at), "2020-01-02T01:02:03Z") self.assertEqual(all_metrics[0].suspended, True) self.assertEqual(all_metrics[0].project_id, "32e79edb-6cfd-47dc-ad79-e8ec2fbb1d33") self.assertEqual(all_metrics[0].project_name, "Default") self.assertEqual(all_metrics[0].owner_id, "32e79edb-6cfd-47dc-ad79-e8ec2fbb1d33") self.assertEqual(all_metrics[0].view_id, "29dae0cd-1862-4a20-a638-e2c2dfa682d4") self.assertEqual(len(all_metrics[0].tags), 0) self.assertEqual(all_metrics[1].id, "721760d9-0aa4-4029-87ae-371c956cea07") self.assertEqual(all_metrics[1].name, "Another Example metric") self.assertEqual(all_metrics[1].description, "Description of another metric.") self.assertEqual(all_metrics[1].webpage_url, "https://test/#/site/site-name/metrics/4") self.assertEqual(format_datetime(all_metrics[1].created_at), "2020-01-03T01:02:03Z") self.assertEqual(format_datetime(all_metrics[1].updated_at), "2020-01-04T01:02:03Z") self.assertEqual(all_metrics[1].suspended, False) self.assertEqual(all_metrics[1].project_id, "486e0de0-2258-45bd-99cf-b62013e19f4e") self.assertEqual(all_metrics[1].project_name, "Assets") self.assertEqual(all_metrics[1].owner_id, "1bbbc2b9-847d-443c-9a1f-dbcf112b8814") self.assertEqual(all_metrics[1].view_id, "7dbfdb63-a6ca-4723-93ee-4fefc71992d3") self.assertEqual(len(all_metrics[1].tags), 2) self.assertIn("Test", all_metrics[1].tags) self.assertIn("Asset", all_metrics[1].tags)
def test_update(self): with open(UPDATE_XML, "rb") as f: response_xml = f.read().decode("utf-8") with requests_mock.mock() as m: m.put(self.baseurl + '/7bea1766-1543-4052-9753-9d224bc069b5', text=response_xml) new_interval = TSC.WeeklyInterval(time(7), TSC.IntervalItem.Day.Monday, TSC.IntervalItem.Day.Friday) single_schedule = TSC.ScheduleItem( "weekly-schedule-1", 90, TSC.ScheduleItem.Type.Extract, TSC.ScheduleItem.ExecutionOrder.Parallel, new_interval) single_schedule._id = "7bea1766-1543-4052-9753-9d224bc069b5" single_schedule = self.server.schedules.update(single_schedule) self.assertEqual("7bea1766-1543-4052-9753-9d224bc069b5", single_schedule.id) self.assertEqual("weekly-schedule-1", single_schedule.name) self.assertEqual(90, single_schedule.priority) self.assertEqual("2016-09-15T23:50:02Z", format_datetime(single_schedule.updated_at)) self.assertEqual(TSC.ScheduleItem.Type.Extract, single_schedule.schedule_type) self.assertEqual("2016-09-16T14:00:00Z", format_datetime(single_schedule.next_run_at)) self.assertEqual(TSC.ScheduleItem.ExecutionOrder.Parallel, single_schedule.execution_order) self.assertEqual(time(7), single_schedule.interval_item.start_time) self.assertEqual(("Monday", "Friday"), single_schedule.interval_item.interval)
def test_create_weekly(self): with open(CREATE_WEEKLY_XML, "rb") as f: response_xml = f.read().decode("utf-8") with requests_mock.mock() as m: m.post(self.baseurl, text=response_xml) weekly_interval = TSC.WeeklyInterval( time(9, 15), TSC.IntervalItem.Day.Monday, TSC.IntervalItem.Day.Wednesday, TSC.IntervalItem.Day.Friday) new_schedule = TSC.ScheduleItem( "weekly-schedule-1", 80, TSC.ScheduleItem.Type.Extract, TSC.ScheduleItem.ExecutionOrder.Parallel, weekly_interval) new_schedule = self.server.schedules.create(new_schedule) self.assertEqual("1adff386-6be0-4958-9f81-a35e676932bf", new_schedule.id) self.assertEqual("weekly-schedule-1", new_schedule.name) self.assertEqual("Active", new_schedule.state) self.assertEqual(80, new_schedule.priority) self.assertEqual("2016-09-15T21:12:50Z", format_datetime(new_schedule.created_at)) self.assertEqual("2016-09-15T21:12:50Z", format_datetime(new_schedule.updated_at)) self.assertEqual(TSC.ScheduleItem.Type.Extract, new_schedule.schedule_type) self.assertEqual("2016-09-16T16:15:00Z", format_datetime(new_schedule.next_run_at)) self.assertEqual(TSC.ScheduleItem.ExecutionOrder.Parallel, new_schedule.execution_order) self.assertEqual(time(9, 15), new_schedule.interval_item.start_time) self.assertEqual(("Monday", "Wednesday", "Friday"), new_schedule.interval_item.interval) self.assertEqual(2, len(new_schedule.warnings)) self.assertEqual("warning 1", new_schedule.warnings[0]) self.assertEqual("warning 2", new_schedule.warnings[1])
def test_create_daily(self) -> None: with open(CREATE_DAILY_XML, "rb") as f: response_xml = f.read().decode("utf-8") with requests_mock.mock() as m: m.post(self.baseurl, text=response_xml) daily_interval = TSC.DailyInterval(time(4, 50)) new_schedule = TSC.ScheduleItem( "daily-schedule-1", 90, TSC.ScheduleItem.Type.Subscription, TSC.ScheduleItem.ExecutionOrder.Serial, daily_interval, ) new_schedule = self.server.schedules.create(new_schedule) self.assertEqual("907cae38-72fd-417c-892a-95540c4664cd", new_schedule.id) self.assertEqual("daily-schedule-1", new_schedule.name) self.assertEqual("Active", new_schedule.state) self.assertEqual(90, new_schedule.priority) self.assertEqual("2016-09-15T21:01:09Z", format_datetime(new_schedule.created_at)) self.assertEqual("2016-09-15T21:01:09Z", format_datetime(new_schedule.updated_at)) self.assertEqual(TSC.ScheduleItem.Type.Subscription, new_schedule.schedule_type) self.assertEqual("2016-09-16T11:45:00Z", format_datetime(new_schedule.next_run_at)) self.assertEqual(TSC.ScheduleItem.ExecutionOrder.Serial, new_schedule.execution_order) self.assertEqual(time(4, 45), new_schedule.interval_item.start_time)
def test_create_monthly(self) -> None: with open(CREATE_MONTHLY_XML, "rb") as f: response_xml = f.read().decode("utf-8") with requests_mock.mock() as m: m.post(self.baseurl, text=response_xml) monthly_interval = TSC.MonthlyInterval(time(7), 12) new_schedule = TSC.ScheduleItem( "monthly-schedule-1", 20, TSC.ScheduleItem.Type.Extract, TSC.ScheduleItem.ExecutionOrder.Serial, monthly_interval, ) new_schedule = self.server.schedules.create(new_schedule) self.assertEqual("e06a7c75-5576-4f68-882d-8909d0219326", new_schedule.id) self.assertEqual("monthly-schedule-1", new_schedule.name) self.assertEqual("Active", new_schedule.state) self.assertEqual(20, new_schedule.priority) self.assertEqual("2016-09-15T21:16:56Z", format_datetime(new_schedule.created_at)) self.assertEqual("2016-09-15T21:16:56Z", format_datetime(new_schedule.updated_at)) self.assertEqual(TSC.ScheduleItem.Type.Extract, new_schedule.schedule_type) self.assertEqual("2016-10-12T14:00:00Z", format_datetime(new_schedule.next_run_at)) self.assertEqual(TSC.ScheduleItem.ExecutionOrder.Serial, new_schedule.execution_order) self.assertEqual(time(7), new_schedule.interval_item.start_time) self.assertEqual( "12", new_schedule.interval_item.interval) # type: ignore[union-attr]
def test_get(self): with open(GET_XML, 'rb') as f: response_xml = f.read().decode('utf-8') with requests_mock.mock() as m: m.get(self.baseurl, text=response_xml) all_workbooks, pagination_item = self.server.workbooks.get() self.assertEqual(2, pagination_item.total_available) self.assertEqual('6d13b0ca-043d-4d42-8c9d-3f3313ea3a00', all_workbooks[0].id) self.assertEqual('Superstore', all_workbooks[0].name) self.assertEqual('Superstore', all_workbooks[0].content_url) self.assertEqual(False, all_workbooks[0].show_tabs) self.assertEqual(1, all_workbooks[0].size) self.assertEqual('2016-08-03T20:34:04Z', format_datetime(all_workbooks[0].created_at)) self.assertEqual('2016-08-04T17:56:41Z', format_datetime(all_workbooks[0].updated_at)) self.assertEqual('ee8c6e70-43b6-11e6-af4f-f7b0d8e20760', all_workbooks[0].project_id) self.assertEqual('default', all_workbooks[0].project_name) self.assertEqual('5de011f8-5aa9-4d5b-b991-f462c8dd6bb7', all_workbooks[0].owner_id) self.assertEqual('3cc6cd06-89ce-4fdc-b935-5294135d6d42', all_workbooks[1].id) self.assertEqual('SafariSample', all_workbooks[1].name) self.assertEqual('SafariSample', all_workbooks[1].content_url) self.assertEqual(False, all_workbooks[1].show_tabs) self.assertEqual(26, all_workbooks[1].size) self.assertEqual('2016-07-26T20:34:56Z', format_datetime(all_workbooks[1].created_at)) self.assertEqual('2016-07-26T20:35:05Z', format_datetime(all_workbooks[1].updated_at)) self.assertEqual('ee8c6e70-43b6-11e6-af4f-f7b0d8e20760', all_workbooks[1].project_id) self.assertEqual('default', all_workbooks[1].project_name) self.assertEqual('5de011f8-5aa9-4d5b-b991-f462c8dd6bb7', all_workbooks[1].owner_id) self.assertEqual(set(['Safari', 'Sample']), all_workbooks[1].tags)
def test_revisions(self) -> None: datasource = TSC.DatasourceItem("project", "test") datasource._id = "06b944d2-959d-4604-9305-12323c95e70e" response_xml = read_xml_asset(REVISION_XML) with requests_mock.mock() as m: m.get("{0}/{1}/revisions".format(self.baseurl, datasource.id), text=response_xml) self.server.datasources.populate_revisions(datasource) revisions = datasource.revisions self.assertEqual(len(revisions), 3) self.assertEqual("2016-07-26T20:34:56Z", format_datetime(revisions[0].created_at)) self.assertEqual("2016-07-27T20:34:56Z", format_datetime(revisions[1].created_at)) self.assertEqual("2016-07-28T20:34:56Z", format_datetime(revisions[2].created_at)) self.assertEqual(False, revisions[0].deleted) self.assertEqual(False, revisions[0].current) self.assertEqual(False, revisions[1].deleted) self.assertEqual(False, revisions[1].current) self.assertEqual(False, revisions[2].deleted) self.assertEqual(True, revisions[2].current) self.assertEqual("Cassie", revisions[0].user_name) self.assertEqual("5de011f8-5aa9-4d5b-b991-f462c8dd6bb7", revisions[0].user_id) self.assertIsNone(revisions[1].user_name) self.assertIsNone(revisions[1].user_id) self.assertEqual("Cassie", revisions[2].user_name) self.assertEqual("5de011f8-5aa9-4d5b-b991-f462c8dd6bb7", revisions[2].user_id)
def test_create_hourly(self): with open(CREATE_HOURLY_XML, "rb") as f: response_xml = f.read().decode("utf-8") with requests_mock.mock() as m: m.post(self.baseurl, text=response_xml) hourly_interval = TSC.HourlyInterval(start_time=time(2, 30), end_time=time(23, 0), interval_value=2) new_schedule = TSC.ScheduleItem( "hourly-schedule-1", 50, TSC.ScheduleItem.Type.Extract, TSC.ScheduleItem.ExecutionOrder.Parallel, hourly_interval) new_schedule = self.server.schedules.create(new_schedule) self.assertEqual("5f42be25-8a43-47ba-971a-63f2d4e7029c", new_schedule.id) self.assertEqual("hourly-schedule-1", new_schedule.name) self.assertEqual("Active", new_schedule.state) self.assertEqual(50, new_schedule.priority) self.assertEqual("2016-09-15T20:47:33Z", format_datetime(new_schedule.created_at)) self.assertEqual("2016-09-15T20:47:33Z", format_datetime(new_schedule.updated_at)) self.assertEqual(TSC.ScheduleItem.Type.Extract, new_schedule.schedule_type) self.assertEqual("2016-09-16T01:30:00Z", format_datetime(new_schedule.next_run_at)) self.assertEqual(TSC.ScheduleItem.ExecutionOrder.Parallel, new_schedule.execution_order) self.assertEqual(time(2, 30), new_schedule.interval_item.start_time) self.assertEqual(time(23), new_schedule.interval_item.end_time) self.assertEqual("8", new_schedule.interval_item.interval)
def test_get_ignore_invalid_date(self) -> None: with open(GET_INVALID_DATE_XML, "rb") as f: response_xml = f.read().decode("utf-8") with requests_mock.mock() as m: m.get(self.baseurl, text=response_xml) all_workbooks, pagination_item = self.server.workbooks.get() self.assertEqual(None, format_datetime(all_workbooks[0].created_at)) self.assertEqual("2016-08-04T17:56:41Z", format_datetime(all_workbooks[0].updated_at))
def test_get_by_id(self): response_xml = read_xml_asset(GET_BY_ID_XML) with requests_mock.mock() as m: m.get(self.baseurl + "/cc2e652d-4a9b-4476-8c93-b238c45db968", text=response_xml) flow_run = self.server.flow_runs.get_by_id("cc2e652d-4a9b-4476-8c93-b238c45db968") self.assertEqual('cc2e652d-4a9b-4476-8c93-b238c45db968', flow_run.id) self.assertEqual('2021-02-11T01:42:55Z', format_datetime(flow_run.started_at)) self.assertEqual('2021-02-11T01:57:38Z', format_datetime(flow_run.completed_at)) self.assertEqual('Success', flow_run.status) self.assertEqual('100', flow_run.progress) self.assertEqual('1ad21a9d-2530-4fbf-9064-efd3c736e023', flow_run.background_job_id)
def test_get(self) -> None: response_xml = read_xml_asset(GET_XML) with requests_mock.mock() as m: m.get(self.baseurl, text=response_xml) all_datasources, pagination_item = self.server.datasources.get() self.assertEqual(2, pagination_item.total_available) self.assertEqual("e76a1461-3b1d-4588-bf1b-17551a879ad9", all_datasources[0].id) self.assertEqual("dataengine", all_datasources[0].datasource_type) self.assertEqual("SampleDsDescription", all_datasources[0].description) self.assertEqual("SampleDS", all_datasources[0].content_url) self.assertEqual("2016-08-11T21:22:40Z", format_datetime(all_datasources[0].created_at)) self.assertEqual("2016-08-11T21:34:17Z", format_datetime(all_datasources[0].updated_at)) self.assertEqual("default", all_datasources[0].project_name) self.assertEqual("SampleDS", all_datasources[0].name) self.assertEqual("ee8c6e70-43b6-11e6-af4f-f7b0d8e20760", all_datasources[0].project_id) self.assertEqual("5de011f8-5aa9-4d5b-b991-f462c8dd6bb7", all_datasources[0].owner_id) self.assertEqual("https://web.com", all_datasources[0].webpage_url) self.assertFalse(all_datasources[0].encrypt_extracts) self.assertTrue(all_datasources[0].has_extracts) self.assertFalse(all_datasources[0].use_remote_query_agent) self.assertEqual("9dbd2263-16b5-46e1-9c43-a76bb8ab65fb", all_datasources[1].id) self.assertEqual("dataengine", all_datasources[1].datasource_type) self.assertEqual("description Sample", all_datasources[1].description) self.assertEqual("Sampledatasource", all_datasources[1].content_url) self.assertEqual("2016-08-04T21:31:55Z", format_datetime(all_datasources[1].created_at)) self.assertEqual("2016-08-04T21:31:55Z", format_datetime(all_datasources[1].updated_at)) self.assertEqual("default", all_datasources[1].project_name) self.assertEqual("Sample datasource", all_datasources[1].name) self.assertEqual("ee8c6e70-43b6-11e6-af4f-f7b0d8e20760", all_datasources[1].project_id) self.assertEqual("5de011f8-5aa9-4d5b-b991-f462c8dd6bb7", all_datasources[1].owner_id) self.assertEqual(set(["world", "indicators", "sample"]), all_datasources[1].tags) self.assertEqual("https://page.com", all_datasources[1].webpage_url) self.assertTrue(all_datasources[1].encrypt_extracts) self.assertFalse(all_datasources[1].has_extracts) self.assertTrue(all_datasources[1].use_remote_query_agent)
def test_get(self) -> None: with open(GET_XML, "rb") as f: response_xml = f.read().decode("utf-8") with requests_mock.mock() as m: m.get(self.baseurl + "?fields=_all_", text=response_xml) all_users, pagination_item = self.server.users.get() self.assertEqual(2, pagination_item.total_available) self.assertEqual(2, len(all_users)) self.assertTrue( any(user.id == "dd2239f6-ddf1-4107-981a-4cf94e415794" for user in all_users)) single_user = next( user for user in all_users if user.id == "dd2239f6-ddf1-4107-981a-4cf94e415794") self.assertEqual("alice", single_user.name) self.assertEqual("Publisher", single_user.site_role) self.assertEqual("2016-08-16T23:17:06Z", format_datetime(single_user.last_login)) self.assertEqual("alice cook", single_user.fullname) self.assertEqual("*****@*****.**", single_user.email) self.assertTrue( any(user.id == "2a47bbf8-8900-4ebb-b0a4-2723bd7c46c3" for user in all_users)) single_user = next( user for user in all_users if user.id == "2a47bbf8-8900-4ebb-b0a4-2723bd7c46c3") self.assertEqual("Bob", single_user.name) self.assertEqual("Interactor", single_user.site_role) self.assertEqual("Bob Smith", single_user.fullname) self.assertEqual("*****@*****.**", single_user.email)
def test_publish_async(self): self.server.version = '3.0' baseurl = self.server.workbooks.baseurl with open(PUBLISH_ASYNC_XML, 'rb') as f: response_xml = f.read().decode('utf-8') with requests_mock.mock() as m: m.post(baseurl, text=response_xml) new_workbook = TSC.WorkbookItem( name='Sample', show_tabs=False, project_id='ee8c6e70-43b6-11e6-af4f-f7b0d8e20760') sample_workbook = os.path.join(TEST_ASSET_DIR, 'SampleWB.twbx') publish_mode = self.server.PublishMode.CreateNew new_job = self.server.workbooks.publish(new_workbook, sample_workbook, publish_mode, as_job=True) self.assertEqual('7c3d599e-949f-44c3-94a1-f30ba85757e4', new_job.id) self.assertEqual('PublishWorkbook', new_job.type) self.assertEqual('0', new_job.progress) self.assertEqual('2018-06-29T23:22:32Z', format_datetime(new_job.created_at)) self.assertEqual('1', new_job.finish_code)
def test_get(self): with open(GET_XML, 'rb') as f: response_xml = f.read().decode('utf-8') with requests_mock.mock() as m: m.get(self.baseurl, text=response_xml) all_users, pagination_item = self.server.users.get() self.assertEqual(2, pagination_item.total_available) self.assertEqual(2, len(all_users)) self.assertTrue( any(user.id == 'dd2239f6-ddf1-4107-981a-4cf94e415794' for user in all_users)) single_user = next( user for user in all_users if user.id == 'dd2239f6-ddf1-4107-981a-4cf94e415794') self.assertEqual('alice', single_user.name) self.assertEqual('Publisher', single_user.site_role) self.assertEqual('2016-08-16T23:17:06Z', format_datetime(single_user.last_login)) self.assertTrue( any(user.id == '2a47bbf8-8900-4ebb-b0a4-2723bd7c46c3' for user in all_users)) single_user = next( user for user in all_users if user.id == '2a47bbf8-8900-4ebb-b0a4-2723bd7c46c3') self.assertEqual('Bob', single_user.name) self.assertEqual('Interactor', single_user.site_role)
def test_get_by_id(self): response_xml = read_xml_asset(GET_BY_ID_XML) with requests_mock.mock() as m: m.get(self.baseurl + '/9dbd2263-16b5-46e1-9c43-a76bb8ab65fb', text=response_xml) single_datasource = self.server.datasources.get_by_id('9dbd2263-16b5-46e1-9c43-a76bb8ab65fb') self.assertEqual('9dbd2263-16b5-46e1-9c43-a76bb8ab65fb', single_datasource.id) self.assertEqual('dataengine', single_datasource.datasource_type) self.assertEqual('Sampledatasource', single_datasource.content_url) self.assertEqual('2016-08-04T21:31:55Z', format_datetime(single_datasource.created_at)) self.assertEqual('2016-08-04T21:31:55Z', format_datetime(single_datasource.updated_at)) self.assertEqual('default', single_datasource.project_name) self.assertEqual('Sample datasource', single_datasource.name) self.assertEqual('ee8c6e70-43b6-11e6-af4f-f7b0d8e20760', single_datasource.project_id) self.assertEqual('5de011f8-5aa9-4d5b-b991-f462c8dd6bb7', single_datasource.owner_id) self.assertEqual(set(['world', 'indicators', 'sample']), single_datasource.tags)
def test_publish(self): response_xml = read_xml_asset(PUBLISH_XML) with requests_mock.mock() as m: m.post(self.baseurl, text=response_xml) new_datasource = TSC.DatasourceItem('SampleDS', 'ee8c6e70-43b6-11e6-af4f-f7b0d8e20760') new_datasource = self.server.datasources.publish(new_datasource, asset('SampleDS.tds'), mode=self.server.PublishMode.CreateNew) self.assertEqual('e76a1461-3b1d-4588-bf1b-17551a879ad9', new_datasource.id) self.assertEqual('SampleDS', new_datasource.name) self.assertEqual('SampleDS', new_datasource.content_url) self.assertEqual('dataengine', new_datasource.datasource_type) self.assertEqual('2016-08-11T21:22:40Z', format_datetime(new_datasource.created_at)) self.assertEqual('2016-08-17T23:37:08Z', format_datetime(new_datasource.updated_at)) self.assertEqual('ee8c6e70-43b6-11e6-af4f-f7b0d8e20760', new_datasource.project_id) self.assertEqual('default', new_datasource.project_name) self.assertEqual('5de011f8-5aa9-4d5b-b991-f462c8dd6bb7', new_datasource.owner_id)
def test_get_by_id(self): with open(GET_BY_ID_XML, 'rb') as f: response_xml = f.read().decode('utf-8') with requests_mock.mock() as m: m.get(self.baseurl + '/3cc6cd06-89ce-4fdc-b935-5294135d6d42', text=response_xml) single_workbook = self.server.workbooks.get_by_id('3cc6cd06-89ce-4fdc-b935-5294135d6d42') self.assertEqual('3cc6cd06-89ce-4fdc-b935-5294135d6d42', single_workbook.id) self.assertEqual('SafariSample', single_workbook.name) self.assertEqual('SafariSample', single_workbook.content_url) self.assertEqual(False, single_workbook.show_tabs) self.assertEqual(26, single_workbook.size) self.assertEqual('2016-07-26T20:34:56Z', format_datetime(single_workbook.created_at)) self.assertEqual('2016-07-26T20:35:05Z', format_datetime(single_workbook.updated_at)) self.assertEqual('ee8c6e70-43b6-11e6-af4f-f7b0d8e20760', single_workbook.project_id) self.assertEqual('default', single_workbook.project_name) self.assertEqual('5de011f8-5aa9-4d5b-b991-f462c8dd6bb7', single_workbook.owner_id) self.assertEqual(set(['Safari', 'Sample']), single_workbook.tags) self.assertEqual('d79634e1-6063-4ec9-95ff-50acbf609ff5', single_workbook.views[0].id) self.assertEqual('ENDANGERED SAFARI', single_workbook.views[0].name) self.assertEqual('SafariSample/sheets/ENDANGEREDSAFARI', single_workbook.views[0].content_url)
def test_populate_workbooks(self): with open(POPULATE_WORKBOOKS_XML, 'rb') as f: response_xml = f.read().decode('utf-8') with requests_mock.mock() as m: m.get(self.baseurl + '/dd2239f6-ddf1-4107-981a-4cf94e415794/workbooks', text=response_xml) single_user = TSC.UserItem('test', 'Interactor') single_user._id = 'dd2239f6-ddf1-4107-981a-4cf94e415794' self.server.users.populate_workbooks(single_user) workbook_list = list(single_user.workbooks) self.assertEqual('3cc6cd06-89ce-4fdc-b935-5294135d6d42', workbook_list[0].id) self.assertEqual('SafariSample', workbook_list[0].name) self.assertEqual('SafariSample', workbook_list[0].content_url) self.assertEqual(False, workbook_list[0].show_tabs) self.assertEqual(26, workbook_list[0].size) self.assertEqual('2016-07-26T20:34:56Z', format_datetime(workbook_list[0].created_at)) self.assertEqual('2016-07-26T20:35:05Z', format_datetime(workbook_list[0].updated_at)) self.assertEqual('ee8c6e70-43b6-11e6-af4f-f7b0d8e20760', workbook_list[0].project_id) self.assertEqual('default', workbook_list[0].project_name) self.assertEqual('5de011f8-5aa9-4d5b-b991-f462c8dd6bb7', workbook_list[0].owner_id) self.assertEqual(set(['Safari', 'Sample']), workbook_list[0].tags)
def test_publish(self): with open(PUBLISH_XML, 'rb') as f: response_xml = f.read().decode('utf-8') with requests_mock.mock() as m: m.post(self.baseurl, text=response_xml) new_workbook = TSC.WorkbookItem(name='Sample', show_tabs=False, project_id='ee8c6e70-43b6-11e6-af4f-f7b0d8e20760') new_workbook = self.server.workbooks.publish(new_workbook, os.path.join(TEST_ASSET_DIR, 'SampleWB.twbx'), self.server.PublishMode.CreateNew) self.assertEqual('a8076ca1-e9d8-495e-bae6-c684dbb55836', new_workbook.id) self.assertEqual('RESTAPISample', new_workbook.name) self.assertEqual('RESTAPISample_0', new_workbook.content_url) self.assertEqual(False, new_workbook.show_tabs) self.assertEqual(1, new_workbook.size) self.assertEqual('2016-08-18T18:33:24Z', format_datetime(new_workbook.created_at)) self.assertEqual('2016-08-18T20:31:34Z', format_datetime(new_workbook.updated_at)) self.assertEqual('ee8c6e70-43b6-11e6-af4f-f7b0d8e20760', new_workbook.project_id) self.assertEqual('default', new_workbook.project_name) self.assertEqual('5de011f8-5aa9-4d5b-b991-f462c8dd6bb7', new_workbook.owner_id) self.assertEqual('fe0b4e89-73f4-435e-952d-3a263fbfa56c', new_workbook.views[0].id) self.assertEqual('GDP per capita', new_workbook.views[0].name) self.assertEqual('RESTAPISample_0/sheets/GDPpercapita', new_workbook.views[0].content_url)
def test_get_by_id(self): with open(GET_BY_ID_XML, 'rb') as f: response_xml = f.read().decode('utf-8') with requests_mock.mock() as m: m.get(self.baseurl + '/dd2239f6-ddf1-4107-981a-4cf94e415794', text=response_xml) single_user = self.server.users.get_by_id('dd2239f6-ddf1-4107-981a-4cf94e415794') self.assertEqual('dd2239f6-ddf1-4107-981a-4cf94e415794', single_user.id) self.assertEqual('alice', single_user.name) self.assertEqual('Alice', single_user.fullname) self.assertEqual('Publisher', single_user.site_role) self.assertEqual('ServerDefault', single_user.auth_setting) self.assertEqual('2016-08-16T23:17:06Z', format_datetime(single_user.last_login)) self.assertEqual('local', single_user.domain_name)
def test_populate_users(self): with open(POPULATE_USERS, 'rb') as f: response_xml = f.read().decode('utf-8') with requests_mock.mock() as m: m.get(self.baseurl + '/e7833b48-c6f7-47b5-a2a7-36e7dd232758/users?pageNumber=1&pageSize=100', text=response_xml, complete_qs=True) single_group = TSC.GroupItem(name='Test Group') single_group._id = 'e7833b48-c6f7-47b5-a2a7-36e7dd232758' self.server.groups.populate_users(single_group) self.assertEqual(1, len(list(single_group.users))) user = list(single_group.users).pop() self.assertEqual('dd2239f6-ddf1-4107-981a-4cf94e415794', user.id) self.assertEqual('alice', user.name) self.assertEqual('Publisher', user.site_role) self.assertEqual('2016-08-16T23:17:06Z', format_datetime(user.last_login))
def test_get(self): with open(GET_XML, 'rb') as f: response_xml = f.read().decode('utf-8') with requests_mock.mock() as m: m.get(self.baseurl, text=response_xml) all_users, pagination_item = self.server.users.get() self.assertEqual(2, pagination_item.total_available) self.assertEqual(2, len(all_users)) self.assertTrue(any(user.id == 'dd2239f6-ddf1-4107-981a-4cf94e415794' for user in all_users)) single_user = next(user for user in all_users if user.id == 'dd2239f6-ddf1-4107-981a-4cf94e415794') self.assertEqual('alice', single_user.name) self.assertEqual('Publisher', single_user.site_role) self.assertEqual('2016-08-16T23:17:06Z', format_datetime(single_user.last_login)) self.assertTrue(any(user.id == '2a47bbf8-8900-4ebb-b0a4-2723bd7c46c3' for user in all_users)) single_user = next(user for user in all_users if user.id == '2a47bbf8-8900-4ebb-b0a4-2723bd7c46c3') self.assertEqual('Bob', single_user.name) self.assertEqual('Interactor', single_user.site_role)