|
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
|
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")
|
@@ -933,3 +934,106 @@ def test_odata_connection(self) -> None:
|
933 | 934 |
|
934 | 935 | assert xml_connection is not None
|
935 | 936 | self.assertEqual(xml_connection.get("serverAddress"), url)
|
| 937 | + |
| 938 | + def test_get_workbook_all_fields(self) -> None: |
| 939 | + self.server.version = "3.21" |
| 940 | + baseurl = self.server.workbooks.baseurl |
| 941 | + |
| 942 | + with open(GET_XML_ALL_FIELDS) as f: |
| 943 | + response = f.read() |
| 944 | + |
| 945 | + ro = TSC.RequestOptions() |
| 946 | + ro.all_fields = True |
| 947 | + |
| 948 | + with requests_mock.mock() as m: |
| 949 | + m.get(f"{baseurl}?fields=_all_", text=response) |
| 950 | + workbooks, _ = self.server.workbooks.get(req_options=ro) |
| 951 | + |
| 952 | + assert workbooks[0].id == "9df3e2d1-070e-497a-9578-8cc557ced9df" |
| 953 | + assert workbooks[0].name == "Superstore" |
| 954 | + assert workbooks[0].content_url == "Superstore" |
| 955 | + assert workbooks[0].webpage_url == "https://10ax.online.tableau.com/#/site/exampledev/workbooks/265605" |
| 956 | + assert workbooks[0].show_tabs |
| 957 | + assert workbooks[0].size == 2 |
| 958 | + assert workbooks[0].created_at == parse_datetime("2024-02-14T04:42:09Z") |
| 959 | + assert workbooks[0].updated_at == parse_datetime("2024-02-14T04:42:10Z") |
| 960 | + assert workbooks[0].sheet_count == 9 |
| 961 | + assert not workbooks[0].has_extracts |
| 962 | + assert not workbooks[0].encrypt_extracts |
| 963 | + assert workbooks[0].default_view_id == "2bdcd787-dcc6-4a5d-bc61-2846f1ef4534" |
| 964 | + assert workbooks[0].share_description == "Superstore" |
| 965 | + assert workbooks[0].last_published_at == parse_datetime("2024-02-14T04:42:09Z") |
| 966 | + assert isinstance(workbooks[0].project, TSC.ProjectItem) |
| 967 | + assert workbooks[0].project.id == "669ca36b-492e-4ccf-bca1-3614fe6a9d7a" |
| 968 | + assert workbooks[0].project.name == "Samples" |
| 969 | + assert workbooks[0].project.description == "This project includes automatically uploaded samples." |
| 970 | + assert isinstance(workbooks[0].location, TSC.LocationItem) |
| 971 | + assert workbooks[0].location.id == "669ca36b-492e-4ccf-bca1-3614fe6a9d7a" |
| 972 | + assert workbooks[0].location.type == "Project" |
| 973 | + assert workbooks[0].location.name == "Samples" |
| 974 | + assert isinstance(workbooks[0].owner, TSC.UserItem) |
| 975 | + assert workbooks[ 0]. owner. email == "[email protected]" |
| 976 | + assert workbooks[0].owner.fullname == "Bob Smith" |
| 977 | + assert workbooks[0].owner.id == "ee8bc9ca-77fe-4ae0-8093-cf77f0ee67a9" |
| 978 | + assert workbooks[0].owner.last_login == parse_datetime("2025-02-04T06:39:20Z") |
| 979 | + assert workbooks[ 0]. owner. name == "[email protected]" |
| 980 | + assert workbooks[0].owner.site_role == "SiteAdministratorCreator" |
| 981 | + assert workbooks[1].id == "6693cb26-9507-4174-ad3e-9de81a18c971" |
| 982 | + assert workbooks[1].name == "World Indicators" |
| 983 | + assert workbooks[1].content_url == "WorldIndicators" |
| 984 | + assert workbooks[1].webpage_url == "https://10ax.online.tableau.com/#/site/exampledev/workbooks/265606" |
| 985 | + assert workbooks[1].show_tabs |
| 986 | + assert workbooks[1].size == 1 |
| 987 | + assert workbooks[1].created_at == parse_datetime("2024-02-14T04:42:11Z") |
| 988 | + assert workbooks[1].updated_at == parse_datetime("2024-02-14T04:42:12Z") |
| 989 | + assert workbooks[1].sheet_count == 8 |
| 990 | + assert not workbooks[1].has_extracts |
| 991 | + assert not workbooks[1].encrypt_extracts |
| 992 | + assert workbooks[1].default_view_id == "3d10dbcf-a206-47c7-91ba-ebab3ab33d7c" |
| 993 | + assert workbooks[1].share_description == "World Indicators" |
| 994 | + assert workbooks[1].last_published_at == parse_datetime("2024-02-14T04:42:11Z") |
| 995 | + assert isinstance(workbooks[1].project, TSC.ProjectItem) |
| 996 | + assert workbooks[1].project.id == "669ca36b-492e-4ccf-bca1-3614fe6a9d7a" |
| 997 | + assert workbooks[1].project.name == "Samples" |
| 998 | + assert workbooks[1].project.description == "This project includes automatically uploaded samples." |
| 999 | + assert isinstance(workbooks[1].location, TSC.LocationItem) |
| 1000 | + assert workbooks[1].location.id == "669ca36b-492e-4ccf-bca1-3614fe6a9d7a" |
| 1001 | + assert workbooks[1].location.type == "Project" |
| 1002 | + assert workbooks[1].location.name == "Samples" |
| 1003 | + assert isinstance(workbooks[1].owner, TSC.UserItem) |
| 1004 | + assert workbooks[ 1]. owner. email == "[email protected]" |
| 1005 | + assert workbooks[1].owner.fullname == "Bob Smith" |
| 1006 | + assert workbooks[1].owner.id == "ee8bc9ca-77fe-4ae0-8093-cf77f0ee67a9" |
| 1007 | + assert workbooks[1].owner.last_login == parse_datetime("2025-02-04T06:39:20Z") |
| 1008 | + assert workbooks[ 1]. owner. name == "[email protected]" |
| 1009 | + assert workbooks[1].owner.site_role == "SiteAdministratorCreator" |
| 1010 | + assert workbooks[2].id == "dbc0f162-909f-4edf-8392-0d12a80af955" |
| 1011 | + assert workbooks[2].name == "Superstore" |
| 1012 | + assert workbooks[2].description == "This is a superstore workbook" |
| 1013 | + assert workbooks[2].content_url == "Superstore_17078880698360" |
| 1014 | + assert workbooks[2].webpage_url == "https://10ax.online.tableau.com/#/site/exampledev/workbooks/265621" |
| 1015 | + assert not workbooks[2].show_tabs |
| 1016 | + assert workbooks[2].size == 1 |
| 1017 | + assert workbooks[2].created_at == parse_datetime("2024-02-14T05:21:09Z") |
| 1018 | + assert workbooks[2].updated_at == parse_datetime("2024-07-02T02:19:59Z") |
| 1019 | + assert workbooks[2].sheet_count == 7 |
| 1020 | + assert workbooks[2].has_extracts |
| 1021 | + assert not workbooks[2].encrypt_extracts |
| 1022 | + assert workbooks[2].default_view_id == "8c4b1d3e-3f31-4d2a-8b9f-492b92f27987" |
| 1023 | + assert workbooks[2].share_description == "Superstore" |
| 1024 | + assert workbooks[2].last_published_at == parse_datetime("2024-07-02T02:19:58Z") |
| 1025 | + assert isinstance(workbooks[2].project, TSC.ProjectItem) |
| 1026 | + assert workbooks[2].project.id == "9836791c-9468-40f0-b7f3-d10b9562a046" |
| 1027 | + assert workbooks[2].project.name == "default" |
| 1028 | + assert workbooks[2].project.description == "The default project that was automatically created by Tableau." |
| 1029 | + assert isinstance(workbooks[2].location, TSC.LocationItem) |
| 1030 | + assert workbooks[2].location.id == "9836791c-9468-40f0-b7f3-d10b9562a046" |
| 1031 | + assert workbooks[2].location.type == "Project" |
| 1032 | + assert workbooks[2].location.name == "default" |
| 1033 | + assert isinstance(workbooks[2].owner, TSC.UserItem) |
| 1034 | + assert workbooks[ 2]. owner. email == "[email protected]" |
| 1035 | + assert workbooks[2].owner.fullname == "Bob Smith" |
| 1036 | + assert workbooks[2].owner.id == "ee8bc9ca-77fe-4ae0-8093-cf77f0ee67a9" |
| 1037 | + assert workbooks[2].owner.last_login == parse_datetime("2025-02-04T06:39:20Z") |
| 1038 | + assert workbooks[ 2]. owner. name == "[email protected]" |
| 1039 | + assert workbooks[2].owner.site_role == "SiteAdministratorCreator" |
0 commit comments