예제 #1
0
    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)
예제 #2
0
    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)
예제 #4
0
    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)
예제 #5
0
    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)
예제 #8
0
    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)
예제 #9
0
    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)
예제 #10
0
    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)
예제 #11
0
    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)
예제 #12
0
    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)
예제 #15
0
    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)
예제 #17
0
    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)
예제 #18
0
    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)
예제 #19
0
    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)
예제 #20
0
    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)
예제 #21
0
    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])
예제 #22
0
    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)
예제 #23
0
    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)
예제 #26
0
    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)
예제 #27
0
 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))
예제 #28
0
 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)
예제 #30
0
    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)
예제 #31
0
    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)
예제 #32
0
    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)