8000 Add tests for datasource revisions · tableau/server-client-python@d046491 · GitHub
[go: up one dir, main page]

Skip to content

Commit d046491

Browse files
committed
Add tests for datasource revisions
1 parent 24fa4a5 commit d046491

File tree

2 files changed

+44
-2
lines changed

2 files changed

+44
-2
lines changed

tableauserverclient/server/endpoint/datasources_endpoint.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -470,8 +470,8 @@ def download_revision(
470470
def delete_revision(self, datasource_id: str, revision_number: str) -> None:
471471
if datasource_id is None or revision_number is None:
472472
raise ValueError
473-
url = "/".join([self.baseurl, datasource_id, "revision", revision_number])
473+
url = "/".join([self.baseurl, datasource_id, "revisions", revision_number])
474474

475475
self.delete_request(url)
476-
logger.info("Deleted single workbook revsision (ID: {0}) (Revision: {1})".format(datasource_id, revision_number))
476+
logger.info("Deleted single datasource revsision (ID: {0}) (Revision: {1})".format(datasource_id, revision_number))
477477

test/test_datasource.py

Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@
2222
PUBLISH_XML = 'datasource_publish.xml'
2323
PUBLISH_XML_ASYNC = 'datasource_publish_async.xml'
2424
REFRESH_XML = 'datasource_refresh.xml'
25+
REVISION_XML = 'datasource_revision.xml'
2526
UPDATE_XML = 'datasource_update.xml'
2627
UPDATE_HYPER_DATA_XML = 'datasource_data_update.xml'
2728
UPDATE_CONNECTION_XML = 'datasource_connection_update.xml'
@@ -600,3 +601,44 @@ def test_create_extracts_encrypted(self) -> None:
600601
m.post(self.baseurl + '/3cc6cd06-89ce-4fdc-b935-5294135d6d42/createExtract',
601602
status_code=200, text=response_xml)
602603
self.server.datasources.create_extract('3cc6cd06-89ce-4fdc-b935-5294135d6d42', True)
604+
605+
def test_revisions(self) -> None:
606+
self.baseurl = self.server.datasources.baseurl
607+
datasource = TSC.DatasourceItem('project', 'test')
608+
datasource._id = '06b944d2-959d-4604-9305-12323c95e70e'
609+
610+
response_xml = read_xml_asset(REVISION_XML)
611+
with requests_mock.mock() as m:
612+
m.get("{0}/{1}/revisions".format(self.baseurl, datasource.id), text=response_xml)
613+
self.server.datasources.populate_revisions(datasource)
614+
revisions = datasource.revisions
615+
616+
self.assertEqual(len(revisions), 3)
617+
self.assertEqual("2016-07-26T20:34:56Z", format_datetime(revisions[0].created_at))
618+
self.assertEqual("2016-07-27T20:34:56Z", format_datetime(revisions[1].created_at))
619+
self.assertEqual("2016-07-28T20:34:56Z", format_datetime(revisions[2].created_at))
620+
621+
self.assertEqual(False, revisions[0].deleted)
622+
self.assertEqual(False, revisions[0].current)
623+
self.assertEqual(False, revisions[1].deleted)
624+
self.assertEqual(False, revisions[1].current)
625+
self.assertEqual(False, revisions[2].deleted)
626+
self.assertEqual(True, revisions[2].current)
627+
628+
self.assertEqual("Cassie", revisions[0].user_name)
629+
self.assertEqual("5de011f8-5aa9-4d5b-b991-f462c8dd6bb7", revisions[0].user_id)
630+
self.assertIsNone(revisions[1].user_name)
631+
self.assertIsNone(revisions[1].user_id)
632+
self.assertEqual("Cassie", revisions[2].user_name)
633+
self.assertEqual("5de011f8-5aa9-4d5b-b991-f462c8dd6bb7", revisions[2].user_id)
634+
635+
def test_delete_revision(self):
636+
self.baseurl = self.server.datasources.baseurl
637+
datasource = TSC.DatasourceItem('project', 'test')
638+
datasource._id = '06b944d2-959d-4604-9305-12323c95e70e'
639+
640+
with requests_mock.mock() as m:
641+
m.delete("{0}/{1}/revisions/3".format(self.baseurl, datasource.id))
642+
self.server.datasources.delete_revision(datasource.id, "3")
643+
644+

0 commit comments

Comments
 (0)
0