From 70b34043d5d0fc1b3d32567c460415a10c6eef9a Mon Sep 17 00:00:00 2001 From: Jac Fitzgerald Date: Fri, 15 Apr 2022 01:36:26 -0700 Subject: [PATCH 1/5] Update request_factory.py This was throwing an error up to tabcmd --- tableauserverclient/server/request_factory.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tableauserverclient/server/request_factory.py b/tableauserverclient/server/request_factory.py index 7e4038979..9da492687 100644 --- a/tableauserverclient/server/request_factory.py +++ b/tableauserverclient/server/request_factory.py @@ -950,7 +950,7 @@ def embedded_extract_req(self, xml_request, include_all=True, datasources=None): list_element = ET.SubElement(xml_request, "datasources") if include_all: list_element.attrib["includeAll"] = "true" - else: + elif datasources: for datasource_item in datasources: datasource_element = list_element.SubElement(xml_request, "datasource") datasource_element.attrib["id"] = datasource_item.id From a60698dbebdc65ce4b433c0c91394295a23abce3 Mon Sep 17 00:00:00 2001 From: Jac Fitzgerald Date: Fri, 15 Apr 2022 18:02:08 -0700 Subject: [PATCH 2/5] fix xml generation also add test cases to catch both bugs --- tableauserverclient/server/request_factory.py | 3 +-- test/request_factory/__init__.py | 0 .../test_datasource_requests.py | 16 ++++++++++++++++ test/request_factory/test_workbook_requests.py | 18 ++++++++++++++++++ 4 files changed, 35 insertions(+), 2 deletions(-) create mode 100644 test/request_factory/__init__.py create mode 100644 test/request_factory/test_datasource_requests.py create mode 100644 test/request_factory/test_workbook_requests.py diff --git a/tableauserverclient/server/request_factory.py b/tableauserverclient/server/request_factory.py index 9da492687..7313124af 100644 --- a/tableauserverclient/server/request_factory.py +++ b/tableauserverclient/server/request_factory.py @@ -877,7 +877,6 @@ def _generate_xml( views_element = ET.SubElement(workbook_element, "views") for view_name in workbook_item.hidden_views: _add_hiddenview_element(views_element, view_name) - return ET.tostring(xml_request) def update_req(self, workbook_item): @@ -952,7 +951,7 @@ def embedded_extract_req(self, xml_request, include_all=True, datasources=None): list_element.attrib["includeAll"] = "true" elif datasources: for datasource_item in datasources: - datasource_element = list_element.SubElement(xml_request, "datasource") + datasource_element = ET.SubElement(list_element, "datasource") datasource_element.attrib["id"] = datasource_item.id diff --git a/test/request_factory/__init__.py b/test/request_factory/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/test/request_factory/test_datasource_requests.py b/test/request_factory/test_datasource_requests.py new file mode 100644 index 000000000..9927da422 --- /dev/null +++ b/test/request_factory/test_datasource_requests.py @@ -0,0 +1,16 @@ +import unittest +import tableauserverclient as TSC +import tableauserverclient.server.request_factory as TSC_RF +from tableauserverclient import DatasourceItem + + +class DatasourceRequestTests(unittest.TestCase): + + def test_generate_xml(self): + datasource_item: TSC.DatasourceItem = TSC.DatasourceItem('name') + datasource_item.name = "a ds" + datasource_item.description = "described" + datasource_item.use_remote_query_agent = False + datasource_item.ask_data_enablement = DatasourceItem.AskDataEnablement.Enabled + datasource_item.project_id = "testval" + TSC_RF.RequestFactory.Datasource._generate_xml(datasource_item) diff --git a/test/request_factory/test_workbook_requests.py b/test/request_factory/test_workbook_requests.py new file mode 100644 index 000000000..498098bd8 --- /dev/null +++ b/test/request_factory/test_workbook_requests.py @@ -0,0 +1,18 @@ +import unittest +import tableauserverclient as TSC +import tableauserverclient.server.request_factory as TSC_RF + + +class WorkbookRequestTests(unittest.TestCase): + + def test_embedded_extract_req(self): + include_all = True + embedded_datasources = None + xml_result = TSC_RF.RequestFactory.Workbook.embedded_extract_req(include_all, + embedded_datasources) + + def test_generate_xml(self): + workbook_item: TSC.WorkbookItem = TSC.WorkbookItem('name') + workbook_item.project_id = "testval" + workbook_item.show_tabs = False + TSC_RF.RequestFactory.Workbook._generate_xml(workbook_item) From f548117fb424c3d525228aed9008801bdb7bfc0b Mon Sep 17 00:00:00 2001 From: Jac Fitzgerald Date: Fri, 15 Apr 2022 18:06:55 -0700 Subject: [PATCH 3/5] black --- test/request_factory/test_datasource_requests.py | 3 +-- test/request_factory/test_workbook_requests.py | 6 ++---- 2 files changed, 3 insertions(+), 6 deletions(-) diff --git a/test/request_factory/test_datasource_requests.py b/test/request_factory/test_datasource_requests.py index 9927da422..75bb535d5 100644 --- a/test/request_factory/test_datasource_requests.py +++ b/test/request_factory/test_datasource_requests.py @@ -5,9 +5,8 @@ class DatasourceRequestTests(unittest.TestCase): - def test_generate_xml(self): - datasource_item: TSC.DatasourceItem = TSC.DatasourceItem('name') + datasource_item: TSC.DatasourceItem = TSC.DatasourceItem("name") datasource_item.name = "a ds" datasource_item.description = "described" datasource_item.use_remote_query_agent = False diff --git a/test/request_factory/test_workbook_requests.py b/test/request_factory/test_workbook_requests.py index 498098bd8..066667cd7 100644 --- a/test/request_factory/test_workbook_requests.py +++ b/test/request_factory/test_workbook_requests.py @@ -4,15 +4,13 @@ class WorkbookRequestTests(unittest.TestCase): - def test_embedded_extract_req(self): include_all = True embedded_datasources = None - xml_result = TSC_RF.RequestFactory.Workbook.embedded_extract_req(include_all, - embedded_datasources) + xml_result = TSC_RF.RequestFactory.Workbook.embedded_extract_req(include_all, embedded_datasources) def test_generate_xml(self): - workbook_item: TSC.WorkbookItem = TSC.WorkbookItem('name') + workbook_item: TSC.WorkbookItem = TSC.WorkbookItem("name") workbook_item.project_id = "testval" workbook_item.show_tabs = False TSC_RF.RequestFactory.Workbook._generate_xml(workbook_item) From d86cb4b31edeeb44dab621439b350750db658a8e Mon Sep 17 00:00:00 2001 From: Jac Fitzgerald Date: Fri, 15 Apr 2022 18:27:15 -0700 Subject: [PATCH 4/5] fix workbook item creation --- test/request_factory/test_workbook_requests.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/test/request_factory/test_workbook_requests.py b/test/request_factory/test_workbook_requests.py index 066667cd7..90d7b07b8 100644 --- a/test/request_factory/test_workbook_requests.py +++ b/test/request_factory/test_workbook_requests.py @@ -10,7 +10,7 @@ def test_embedded_extract_req(self): xml_result = TSC_RF.RequestFactory.Workbook.embedded_extract_req(include_all, embedded_datasources) def test_generate_xml(self): - workbook_item: TSC.WorkbookItem = TSC.WorkbookItem("name") - workbook_item.project_id = "testval" - workbook_item.show_tabs = False + workbook_item: TSC.WorkbookItem = TSC.WorkbookItem("name", "project_id") TSC_RF.RequestFactory.Workbook._generate_xml(workbook_item) + + From 9bdfe09227c473eaadab86ab80df97e88ed5b4a2 Mon Sep 17 00:00:00 2001 From: Jac Fitzgerald Date: Wed, 4 May 2022 16:38:53 +1000 Subject: [PATCH 5/5] format --- test/request_factory/test_workbook_requests.py | 2 -- 1 file changed, 2 deletions(-) diff --git a/test/request_factory/test_workbook_requests.py b/test/request_factory/test_workbook_requests.py index 90d7b07b8..797913614 100644 --- a/test/request_factory/test_workbook_requests.py +++ b/test/request_factory/test_workbook_requests.py @@ -12,5 +12,3 @@ def test_embedded_extract_req(self): def test_generate_xml(self): workbook_item: TSC.WorkbookItem = TSC.WorkbookItem("name", "project_id") TSC_RF.RequestFactory.Workbook._generate_xml(workbook_item) - -