|
10 | 10 | import pytest |
11 | 11 |
|
12 | 12 | import tableauserverclient as TSC |
13 | | -from tableauserverclient.datetime_helpers import format_datetime |
| 13 | +from tableauserverclient.datetime_helpers import format_datetime, parse_datetime |
14 | 14 | from tableauserverclient.models import UserItem, GroupItem, PermissionsRule |
15 | 15 | from tableauserverclient.server.endpoint.exceptions import InternalServerError, UnsupportedAttributeError |
16 | 16 | from tableauserverclient.server.request_factory import RequestFactory |
|
24 | 24 | GET_EMPTY_XML = os.path.join(TEST_ASSET_DIR, "workbook_get_empty.xml") |
25 | 25 | GET_INVALID_DATE_XML = os.path.join(TEST_ASSET_DIR, "workbook_get_invalid_date.xml") |
26 | 26 | GET_XML = os.path.join(TEST_ASSET_DIR, "workbook_get.xml") |
| 27 | +GET_XML_ALL_FIELDS = os.path.join(TEST_ASSET_DIR, "workbook_get_all_fields.xml") |
27 | 28 | ODATA_XML = os.path.join(TEST_ASSET_DIR, "odata_connection.xml") |
28 | 29 | POPULATE_CONNECTIONS_XML = os.path.join(TEST_ASSET_DIR, "workbook_populate_connections.xml") |
29 | 30 | POPULATE_PDF = os.path.join(TEST_ASSET_DIR, "populate_pdf.pdf") |
@@ -978,3 +979,106 @@ def test_odata_connection(self) -> None: |
978 | 979 |
|
979 | 980 | assert xml_connection is not None |
980 | 981 | self.assertEqual(xml_connection.get("serverAddress"), url) |
| 982 | + |
| 983 | + def test_get_workbook_all_fields(self) -> None: |
| 984 | + self.server.version = "3.21" |
| 985 | + baseurl = self.server.workbooks.baseurl |
| 986 | + |
| 987 | + with open(GET_XML_ALL_FIELDS) as f: |
| 988 | + response = f.read() |
| 989 | + |
| 990 | + ro = TSC.RequestOptions() |
| 991 | + ro.all_fields = True |
| 992 | + |
| 993 | + with requests_mock.mock() as m: |
| 994 | + m.get(f"{baseurl}?fields=_all_", text=response) |
| 995 | + workbooks, _ = self.server.workbooks.get(req_options=ro) |
| 996 | + |
| 997 | + assert workbooks[0].id == "9df3e2d1-070e-497a-9578-8cc557ced9df" |
| 998 | + assert workbooks[0].name == "Superstore" |
| 999 | + assert workbooks[0].content_url == "Superstore" |
| 1000 | + assert workbooks[0].webpage_url == "https://10ax.online.tableau.com/#/site/exampledev/workbooks/265605" |
| 1001 | + assert workbooks[0].show_tabs |
| 1002 | + assert workbooks[0].size == 2 |
| 1003 | + assert workbooks[0].created_at == parse_datetime("2024-02-14T04:42:09Z") |
| 1004 | + assert workbooks[0].updated_at == parse_datetime("2024-02-14T04:42:10Z") |
| 1005 | + assert workbooks[0].sheet_count == 9 |
| 1006 | + assert not workbooks[0].has_extracts |
| 1007 | + assert not workbooks[0].encrypt_extracts |
| 1008 | + assert workbooks[0].default_view_id == "2bdcd787-dcc6-4a5d-bc61-2846f1ef4534" |
| 1009 | + assert workbooks[0].share_description == "Superstore" |
| 1010 | + assert workbooks[0].last_published_at == parse_datetime("2024-02-14T04:42:09Z") |
| 1011 | + assert isinstance(workbooks[0].project, TSC.ProjectItem) |
| 1012 | + assert workbooks[0].project.id == "669ca36b-492e-4ccf-bca1-3614fe6a9d7a" |
| 1013 | + assert workbooks[0].project.name == "Samples" |
| 1014 | + assert workbooks[0].project.description == "This project includes automatically uploaded samples." |
| 1015 | + assert isinstance(workbooks[0].location, TSC.LocationItem) |
| 1016 | + assert workbooks[0].location.id == "669ca36b-492e-4ccf-bca1-3614fe6a9d7a" |
| 1017 | + assert workbooks[0].location.type == "Project" |
| 1018 | + assert workbooks[0].location.name == "Samples" |
| 1019 | + assert isinstance(workbooks[0].owner, TSC.UserItem) |
| 1020 | + assert workbooks[ 0]. owner. email == "[email protected]" |
| 1021 | + assert workbooks[0].owner.fullname == "Bob Smith" |
| 1022 | + assert workbooks[0].owner.id == "ee8bc9ca-77fe-4ae0-8093-cf77f0ee67a9" |
| 1023 | + assert workbooks[0].owner.last_login == parse_datetime("2025-02-04T06:39:20Z") |
| 1024 | + assert workbooks[ 0]. owner. name == "[email protected]" |
| 1025 | + assert workbooks[0].owner.site_role == "SiteAdministratorCreator" |
| 1026 | + assert workbooks[1].id == "6693cb26-9507-4174-ad3e-9de81a18c971" |
| 1027 | + assert workbooks[1].name == "World Indicators" |
| 1028 | + assert workbooks[1].content_url == "WorldIndicators" |
| 1029 | + assert workbooks[1].webpage_url == "https://10ax.online.tableau.com/#/site/exampledev/workbooks/265606" |
| 1030 | + assert workbooks[1].show_tabs |
| 1031 | + assert workbooks[1].size == 1 |
| 1032 | + assert workbooks[1].created_at == parse_datetime("2024-02-14T04:42:11Z") |
| 1033 | + assert workbooks[1].updated_at == parse_datetime("2024-02-14T04:42:12Z") |
| 1034 | + assert workbooks[1].sheet_count == 8 |
| 1035 | + assert not workbooks[1].has_extracts |
| 1036 | + assert not workbooks[1].encrypt_extracts |
| 1037 | + assert workbooks[1].default_view_id == "3d10dbcf-a206-47c7-91ba-ebab3ab33d7c" |
| 1038 | + assert workbooks[1].share_description == "World Indicators" |
| 1039 | + assert workbooks[1].last_published_at == parse_datetime("2024-02-14T04:42:11Z") |
| 1040 | + assert isinstance(workbooks[1].project, TSC.ProjectItem) |
| 1041 | + assert workbooks[1].project.id == "669ca36b-492e-4ccf-bca1-3614fe6a9d7a" |
| 1042 | + assert workbooks[1].project.name == "Samples" |
| 1043 | + assert workbooks[1].project.description == "This project includes automatically uploaded samples." |
| 1044 | + assert isinstance(workbooks[1].location, TSC.LocationItem) |
| 1045 | + assert workbooks[1].location.id == "669ca36b-492e-4ccf-bca1-3614fe6a9d7a" |
| 1046 | + assert workbooks[1].location.type == "Project" |
| 1047 | + assert workbooks[1].location.name == "Samples" |
| 1048 | + assert isinstance(workbooks[1].owner, TSC.UserItem) |
| 1049 | + assert workbooks[ 1]. owner. email == "[email protected]" |
| 1050 | + assert workbooks[1].owner.fullname == "Bob Smith" |
| 1051 | + assert workbooks[1].owner.id == "ee8bc9ca-77fe-4ae0-8093-cf77f0ee67a9" |
| 1052 | + assert workbooks[1].owner.last_login == parse_datetime("2025-02-04T06:39:20Z") |
| 1053 | + assert workbooks[ 1]. owner. name == "[email protected]" |
| 1054 | + assert workbooks[1].owner.site_role == "SiteAdministratorCreator" |
| 1055 | + assert workbooks[2].id == "dbc0f162-909f-4edf-8392-0d12a80af955" |
| 1056 | + assert workbooks[2].name == "Superstore" |
| 1057 | + assert workbooks[2].description == "This is a superstore workbook" |
| 1058 | + assert workbooks[2].content_url == "Superstore_17078880698360" |
| 1059 | + assert workbooks[2].webpage_url == "https://10ax.online.tableau.com/#/site/exampledev/workbooks/265621" |
| 1060 | + assert not workbooks[2].show_tabs |
| 1061 | + assert workbooks[2].size == 1 |
| 1062 | + assert workbooks[2].created_at == parse_datetime("2024-02-14T05:21:09Z") |
| 1063 | + assert workbooks[2].updated_at == parse_datetime("2024-07-02T02:19:59Z") |
| 1064 | + assert workbooks[2].sheet_count == 7 |
| 1065 | + assert workbooks[2].has_extracts |
| 1066 | + assert not workbooks[2].encrypt_extracts |
| 1067 | + assert workbooks[2].default_view_id == "8c4b1d3e-3f31-4d2a-8b9f-492b92f27987" |
| 1068 | + assert workbooks[2].share_description == "Superstore" |
| 1069 | + assert workbooks[2].last_published_at == parse_datetime("2024-07-02T02:19:58Z") |
| 1070 | + assert isinstance(workbooks[2].project, TSC.ProjectItem) |
| 1071 | + assert workbooks[2].project.id == "9836791c-9468-40f0-b7f3-d10b9562a046" |
| 1072 | + assert workbooks[2].project.name == "default" |
| 1073 | + assert workbooks[2].project.description == "The default project that was automatically created by Tableau." |
| 1074 | + assert isinstance(workbooks[2].location, TSC.LocationItem) |
| 1075 | + assert workbooks[2].location.id == "9836791c-9468-40f0-b7f3-d10b9562a046" |
| 1076 | + assert workbooks[2].location.type == "Project" |
| 1077 | + assert workbooks[2].location.name == "default" |
| 1078 | + assert isinstance(workbooks[2].owner, TSC.UserItem) |
| 1079 | + assert workbooks[ 2]. owner. email == "[email protected]" |
| 1080 | + assert workbooks[2].owner.fullname == "Bob Smith" |
| 1081 | + assert workbooks[2].owner.id == "ee8bc9ca-77fe-4ae0-8093-cf77f0ee67a9" |
| 1082 | + assert workbooks[2].owner.last_login == parse_datetime("2025-02-04T06:39:20Z") |
| 1083 | + assert workbooks[ 2]. owner. name == "[email protected]" |
| 1084 | + assert workbooks[2].owner.site_role == "SiteAdministratorCreator" |
0 commit comments