-
Notifications
You must be signed in to change notification settings - Fork 426
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Loading status checks…
Add unit tests and raise errors on missing params
1 parent
334d098
commit 0f5349b
Showing
12 changed files
with
464 additions
and
21 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,19 @@ | ||
<?xml version='1.0' encoding='UTF-8'?> | ||
<tsResponse xmlns="http://tableau.com/api" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://tableau.com/api http://tableau.com/api/ts-api-2.3.xsd"> | ||
<workbook id="3cc6cd06-89ce-4fdc-b935-5294135d6d42" name="SafariSample" description="description for SafariSample" contentUrl="SafariSample" webpageUrl="http://tableauserver/#/workbooks/2/views" showTabs="false" size="26" createdAt="2016-07-26T20:34:56Z" updatedAt="2016-07-26T20:35:05Z"> | ||
<project id="ee8c6e70-43b6-11e6-af4f-f7b0d8e20760" name="default" /> | ||
<owner id="5de011f8-5aa9-4d5b-b991-f462c8dd6bb7" /> | ||
<tags> | ||
<tag label="Safari" /> | ||
<tag label="Sample" /> | ||
</tags> | ||
<views> | ||
<view id="d79634e1-6063-4ec9-95ff-50acbf609ff5" name="ENDANGERED SAFARI" contentUrl="SafariSample/sheets/ENDANGEREDSAFARI" > | ||
<dataAccelerationConfig accelerationEnabled="true" accelerationStatus="Enabled" /> | ||
</view> | ||
<view id="d79634e1-6063-4ec9-95ff-50acbf609ff9" name="ENDANGERED SAFARI 2" contentUrl="SafariSample/sheets/ENDANGEREDSAFARI2" > | ||
<dataAccelerationConfig accelerationEnabled="false" accelerationStatus="Suspended" /> | ||
</view> | ||
</views> | ||
</workbook> | ||
</tsResponse> |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,16 @@ | ||
<?xml version='1.0' encoding='UTF-8'?> | ||
<tsResponse xmlns="http://tableau.com/api" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://tableau.com/api http://tableau.com/api/ts-api-2.3.xsd"> | ||
<workbook id="1f951daf-4061-451a-9df1-69a8062664f2" name="renamedWorkbook2" contentUrl="RESTAPISample" showTabs="true" size="1" createdAt="2016-08-18T18:25:36Z" updatedAt="2016-08-18T18:29:36Z"> | ||
<project id="1d0304cd-3796-429f-b815-7258370b9b74" name="Tableau" /> | ||
<owner id="dd2239f6-ddf1-4107-981a-4cf94e415794" /> | ||
<tags /> | ||
<views> | ||
<view id="d79634e1-6063-4ec9-95ff-50acbf609ff5" name="ENDANGERED SAFARI" contentUrl="SafariSample/sheets/ENDANGEREDSAFARI" > | ||
<dataAccelerationConfig accelerationEnabled="true" accelerationStatus="Pending" /> | ||
</view> | ||
<view id="d79634e1-6063-4ec9-95ff-50acbf609ff9" name="ENDANGERED SAFARI 2" contentUrl="SafariSample/sheets/ENDANGEREDSAFARI2" > | ||
<dataAccelerationConfig accelerationEnabled="true" accelerationStatus="Pending" /> | ||
</view> | ||
</views> | ||
</workbook> | ||
</tsResponse> |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,9 @@ | ||
<?xml version='1.0' encoding='UTF-8'?> | ||
<tsResponse xmlns="http://tableau.com/api" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://tableau.com/api http://tableau.com/api/ts-api-2.3.xsd"> | ||
<workbook id="1f951daf-4061-451a-9df1-69a8062664f2" name="renamedWorkbook" contentUrl="RESTAPISample" showTabs="true" size="1" createdAt="2016-08-18T18:25:36Z" updatedAt="2016-08-18T18:29:36Z"> | ||
<project id="1d0304cd-3796-429f-b815-7258370b9b74" name="Tableau" /> | ||
<owner id="dd2239f6-ddf1-4107-981a-4cf94e415794" /> | ||
<tags /> | ||
<dataFreshnessPolicy option="AlwaysLive" /> | ||
</workbook> | ||
</tsResponse> |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,9 @@ | ||
<?xml version='1.0' encoding='UTF-8'?> | ||
<tsResponse xmlns="http://tableau.com/api" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://tableau.com/api http://tableau.com/api/ts-api-2.3.xsd"> | ||
<workbook id="1f951daf-4061-451a-9df1-69a8062664f2" name="renamedWorkbook" contentUrl="RESTAPISample" showTabs="true" size="1" createdAt="2016-08-18T18:25:36Z" updatedAt="2016-08-18T18:29:36Z"> | ||
<project id="1d0304cd-3796-429f-b815-7258370b9b74" name="Tableau" /> | ||
<owner id="dd2239f6-ddf1-4107-981a-4cf94e415794" /> | ||
<tags /> | ||
<dataFreshnessPolicy option="SiteDefault" /> | ||
</workbook> | ||
</tsResponse> |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,11 @@ | ||
<?xml version='1.0' encoding='UTF-8'?> | ||
<tsResponse xmlns="http://tableau.com/api" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://tableau.com/api http://tableau.com/api/ts-api-2.3.xsd"> | ||
<workbook id="1f951daf-4061-451a-9df1-69a8062664f2" name="renamedWorkbook" contentUrl="RESTAPISample" showTabs="true" size="1" createdAt="2016-08-18T18:25:36Z" updatedAt="2016-08-18T18:29:36Z"> | ||
<project id="1d0304cd-3796-429f-b815-7258370b9b74" name="Tableau" /> | ||
<owner id="dd2239f6-ddf1-4107-981a-4cf94e415794" /> | ||
<tags /> | ||
<dataFreshnessPolicy option="FreshEvery"> | ||
<freshEverySchedule frequency="Hours" value="10" /> | ||
</dataFreshnessPolicy> | ||
</workbook> | ||
</tsResponse> |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,12 @@ | ||
<?xml version='1.0' encoding='UTF-8'?> | ||
<tsResponse xmlns="http://tableau.com/api" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://tableau.com/api http://tableau.com/api/ts-api-2.3.xsd"> | ||
<workbook id="1f951daf-4061-451a-9df1-69a8062664f2" name="renamedWorkbook" contentUrl="RESTAPISample" showTabs="true" size="1" createdAt="2016-08-18T18:25:36Z" updatedAt="2016-08-18T18:29:36Z"> | ||
<project id="1d0304cd-3796-429f-b815-7258370b9b74" name="Tableau" /> | ||
<owner id="dd2239f6-ddf1-4107-981a-4cf94e415794" /> | ||
<tags /> | ||
<dataFreshnessPolicy option="FreshAt"> | ||
<freshAtSchedule time="22:00:00" frequency="Day" timezone="Asia/Singapore"> | ||
</freshAtSchedule> | ||
</dataFreshnessPolicy> | ||
</workbook> | ||
</tsResponse> |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,16 @@ | ||
<?xml version='1.0' encoding='UTF-8'?> | ||
<tsResponse xmlns="http://tableau.com/api" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://tableau.com/api http://tableau.com/api/ts-api-2.3.xsd"> | ||
<workbook id="1f951daf-4061-451a-9df1-69a8062664f2" name="renamedWorkbook" contentUrl="RESTAPISample" showTabs="true" size="1" createdAt="2016-08-18T18:25:36Z" updatedAt="2016-08-18T18:29:36Z"> | ||
<project id="1d0304cd-3796-429f-b815-7258370b9b74" name="Tableau" /> | ||
<owner id="dd2239f6-ddf1-4107-981a-4cf94e415794" /> | ||
<tags /> | ||
<dataFreshnessPolicy option="FreshAt"> | ||
<freshAtSchedule time="10:00:00" frequency="Week" timezone="America/Los_Angeles"> | ||
<intervals> | ||
<interval weekDay="WEDNESDAY"/> | ||
<interval weekDay="MONDAY"/> | ||
</intervals> | ||
</freshAtSchedule> | ||
</dataFreshnessPolicy> | ||
</workbook> | ||
</tsResponse> |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,15 @@ | ||
<?xml version='1.0' encoding='UTF-8'?> | ||
<tsResponse xmlns="http://tableau.com/api" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://tableau.com/api http://tableau.com/api/ts-api-2.3.xsd"> | ||
<workbook id="1f951daf-4061-451a-9df1-69a8062664f2" name="renamedWorkbook" contentUrl="RESTAPISample" showTabs="true" size="1" createdAt="2016-08-18T18:25:36Z" updatedAt="2016-08-18T18:29:36Z"> | ||
<project id="1d0304cd-3796-429f-b815-7258370b9b74" name="Tableau" /> | ||
<owner id="dd2239f6-ddf1-4107-981a-4cf94e415794" /> | ||
<tags /> | ||
<dataFreshnessPolicy option="FreshAt"> | ||
<freshAtSchedule time="00:00:00" frequency="Month" timezone="America/Los_Angeles"> | ||
<intervals> | ||
<interval monthDay="LastDay"/> | ||
</intervals> | ||
</freshAtSchedule> | ||
</dataFreshnessPolicy> | ||
</workbook> | ||
</tsResponse> |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,19 @@ | ||
<?xml version='1.0' encoding='UTF-8'?> | ||
<tsResponse xmlns="http://tableau.com/api" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://tableau.com/api http://tableau.com/api/ts-api-2.3.xsd"> | ||
<workbook id="1f951daf-4061-451a-9df1-69a8062664f2" name="renamedWorkbook2" contentUrl="RESTAPISample" showTabs="true" size="1" createdAt="2016-08-18T18:25:36Z" updatedAt="2016-08-18T18:29:36Z"> | ||
<project id="1d0304cd-3796-429f-b815-7258370b9b74" name="Tableau" /> | ||
<owner id="dd2239f6-ddf1-4107-981a-4cf94e415794" /> | ||
<tags /> | ||
<views> | ||
<view id="097dbe13-de89-445f-b2c3-02f28bd010c1" name="GDP per capita" contentUrl="RESTAPISample/sheets/GDPpercapita"> | ||
<dataAccelerationConfig accelerationEnabled="false" accelerationStatus="Disabled" /> | ||
</view> | ||
<view id="2c1ab9d7-8d64-4cc6-b495-52e40c60c330" name="Country ranks" contentUrl="RESTAPISample/sheets/Countryranks"> | ||
<dataAccelerationConfig accelerationEnabled="true" accelerationStatus="Pending" /> | ||
</view> | ||
<view id="0599c28c-6d82-457e-a453-e52c1bdb00f5" name="Interest rates" contentUrl="RESTAPISample/sheets/Interestrates"> | ||
<dataAccelerationConfig accelerationEnabled="true" accelerationStatus="Pending" /> | ||
</view> | ||
</views> | ||
</workbook> | ||
</tsResponse> |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,187 @@ | ||
import os | ||
import requests_mock | ||
import unittest | ||
|
||
import tableauserverclient as TSC | ||
|
||
TEST_ASSET_DIR = os.path.join(os.path.dirname(__file__), "assets") | ||
|
||
UPDATE_DFP_ALWAYS_LIVE_XML = os.path.join(TEST_ASSET_DIR, "workbook_update_data_freshness_policy.xml") | ||
UPDATE_DFP_SITE_DEFAULT_XML = os.path.join(TEST_ASSET_DIR, "workbook_update_data_freshness_policy2.xml") | ||
UPDATE_DFP_FRESH_EVERY_XML = os.path.join(TEST_ASSET_DIR, "workbook_update_data_freshness_policy3.xml") | ||
UPDATE_DFP_FRESH_AT_DAILY_XML = os.path.join(TEST_ASSET_DIR, "workbook_update_data_freshness_policy4.xml") | ||
UPDATE_DFP_FRESH_AT_WEEKLY_XML = os.path.join(TEST_ASSET_DIR, "workbook_update_data_freshness_policy5.xml") | ||
UPDATE_DFP_FRESH_AT_MONTHLY_XML = os.path.join(TEST_ASSET_DIR, "workbook_update_data_freshness_policy6.xml") | ||
|
||
class WorkbookTests(unittest.TestCase): | ||
def setUp(self) -> None: | ||
self.server = TSC.Server("http://test", False) | ||
|
||
# Fake sign in | ||
self.server._site_id = "dad65087-b08b-4603-af4e-2887b8aafc67" | ||
self.server._auth_token = "j80k54ll2lfMZ0tv97mlPvvSCRyD0DOM" | ||
|
||
self.baseurl = self.server.workbooks.baseurl | ||
|
||
def test_update_DFP_always_live(self) -> None: | ||
with open(UPDATE_DFP_ALWAYS_LIVE_XML, "rb") as f: | ||
response_xml = f.read().decode("utf-8") | ||
with requests_mock.mock() as m: | ||
m.put(self.baseurl + "/1f951daf-4061-451a-9df1-69a8062664f2", text=response_xml) | ||
single_workbook = TSC.WorkbookItem("1d0304cd-3796-429f-b815-7258370b9b74", show_tabs=True) | ||
single_workbook._id = "1f951daf-4061-451a-9df1-69a8062664f2" | ||
single_workbook.data_freshness_policy = TSC.DataFreshnessPolicyItem( | ||
TSC.DataFreshnessPolicyItem.Option.AlwaysLive) | ||
single_workbook = self.server.workbooks.update(single_workbook) | ||
|
||
self.assertEqual("1f951daf-4061-451a-9df1-69a8062664f2", single_workbook.id) | ||
self.assertEqual("AlwaysLive", single_workbook.data_freshness_policy.option) | ||
|
||
def test_update_DFP_site_default(self) -> None: | ||
with open(UPDATE_DFP_SITE_DEFAULT_XML, "rb") as f: | ||
response_xml = f.read().decode("utf-8") | ||
with requests_mock.mock() as m: | ||
m.put(self.baseurl + "/1f951daf-4061-451a-9df1-69a8062664f2", text=response_xml) | ||
single_workbook = TSC.WorkbookItem("1d0304cd-3796-429f-b815-7258370b9b74", show_tabs=True) | ||
single_workbook._id = "1f951daf-4061-451a-9df1-69a8062664f2" | ||
single_workbook.data_freshness_policy = TSC.DataFreshnessPolicyItem( | ||
TSC.DataFreshnessPolicyItem.Option.SiteDefault) | ||
single_workbook = self.server.workbooks.update(single_workbook) | ||
|
||
self.assertEqual("1f951daf-4061-451a-9df1-69a8062664f2", single_workbook.id) | ||
self.assertEqual("SiteDefault", single_workbook.data_freshness_policy.option) | ||
|
||
def test_update_DFP_fresh_every(self) -> None: | ||
with open(UPDATE_DFP_FRESH_EVERY_XML, "rb") as f: | ||
response_xml = f.read().decode("utf-8") | ||
with requests_mock.mock() as m: | ||
m.put(self.baseurl + "/1f951daf-4061-451a-9df1-69a8062664f2", text=response_xml) | ||
single_workbook = TSC.WorkbookItem("1d0304cd-3796-429f-b815-7258370b9b74", show_tabs=True) | ||
single_workbook._id = "1f951daf-4061-451a-9df1-69a8062664f2" | ||
single_workbook.data_freshness_policy = TSC.DataFreshnessPolicyItem( | ||
TSC.DataFreshnessPolicyItem.Option.FreshEvery) | ||
fresh_every_ten_hours = TSC.DataFreshnessPolicyItem.FreshEvery( | ||
TSC.DataFreshnessPolicyItem.FreshEvery.Frequency.Hours, | ||
10 | ||
) | ||
single_workbook.data_freshness_policy.fresh_every_schedule = fresh_every_ten_hours | ||
single_workbook = self.server.workbooks.update(single_workbook) | ||
|
||
self.assertEqual("1f951daf-4061-451a-9df1-69a8062664f2", single_workbook.id) | ||
self.assertEqual("FreshEvery", single_workbook.data_freshness_policy.option) | ||
self.assertEqual("Hours", single_workbook.data_freshness_policy.fresh_every_schedule.frequency) | ||
self.assertEqual(10, single_workbook.data_freshness_policy.fresh_every_schedule.value) | ||
|
||
def test_update_DFP_fresh_every_missing_attributes(self) -> None: | ||
with open(UPDATE_DFP_FRESH_EVERY_XML, "rb") as f: | ||
response_xml = f.read().decode("utf-8") | ||
with requests_mock.mock() as m: | ||
m.put(self.baseurl + "/1f951daf-4061-451a-9df1-69a8062664f2", text=response_xml) | ||
single_workbook = TSC.WorkbookItem("1d0304cd-3796-429f-b815-7258370b9b74", show_tabs=True) | ||
single_workbook._id = "1f951daf-4061-451a-9df1-69a8062664f2" | ||
single_workbook.data_freshness_policy = TSC.DataFreshnessPolicyItem( | ||
TSC.DataFreshnessPolicyItem.Option.FreshEvery) | ||
|
||
self.assertRaises(ValueError, self.server.workbooks.update, single_workbook) | ||
|
||
def test_update_DFP_fresh_at_day(self) -> None: | ||
with open(UPDATE_DFP_FRESH_AT_DAILY_XML, "rb") as f: | ||
response_xml = f.read().decode("utf-8") | ||
with requests_mock.mock() as m: | ||
m.put(self.baseurl + "/1f951daf-4061-451a-9df1-69a8062664f2", text=response_xml) | ||
single_workbook = TSC.WorkbookItem("1d0304cd-3796-429f-b815-7258370b9b74", show_tabs=True) | ||
single_workbook._id = "1f951daf-4061-451a-9df1-69a8062664f2" | ||
single_workbook.data_freshness_policy = TSC.DataFreshnessPolicyItem( | ||
TSC.DataFreshnessPolicyItem.Option.FreshAt) | ||
fresh_at_10pm_daily = TSC.DataFreshnessPolicyItem.FreshAt( | ||
TSC.DataFreshnessPolicyItem.FreshAt.Frequency.Day, | ||
"22:00:00", | ||
" Asia/Singapore" | ||
) | ||
single_workbook.data_freshness_policy.fresh_at_schedule = fresh_at_10pm_daily | ||
single_workbook = self.server.workbooks.update(single_workbook) | ||
|
||
self.assertEqual("1f951daf-4061-451a-9df1-69a8062664f2", single_workbook.id) | ||
self.assertEqual("FreshAt", single_workbook.data_freshness_policy.option) | ||
self.assertEqual("Day", single_workbook.data_freshness_policy.fresh_at_schedule.frequency) | ||
self.assertEqual("22:00:00", single_workbook.data_freshness_policy.fresh_at_schedule.time) | ||
self.assertEqual("Asia/Singapore", single_workbook.data_freshness_policy.fresh_at_schedule.timezone) | ||
|
||
def test_update_DFP_fresh_at_week(self) -> None: | ||
with open(UPDATE_DFP_FRESH_AT_WEEKLY_XML, "rb") as f: | ||
response_xml = f.read().decode("utf-8") | ||
with requests_mock.mock() as m: | ||
m.put(self.baseurl + "/1f951daf-4061-451a-9df1-69a8062664f2", text=response_xml) | ||
single_workbook = TSC.WorkbookItem("1d0304cd-3796-429f-b815-7258370b9b74", show_tabs=True) | ||
single_workbook._id = "1f951daf-4061-451a-9df1-69a8062664f2" | ||
single_workbook.data_freshness_policy = TSC.DataFreshnessPolicyItem( | ||
TSC.DataFreshnessPolicyItem.Option.FreshAt) | ||
fresh_at_10am_mon_wed = TSC.DataFreshnessPolicyItem.FreshAt( | ||
TSC.DataFreshnessPolicyItem.FreshAt.Frequency.Week, | ||
"10:00:00", | ||
"America/Los_Angeles", | ||
["Monday", "Wednesday"] | ||
) | ||
single_workbook.data_freshness_policy.fresh_at_schedule = fresh_at_10am_mon_wed | ||
single_workbook = self.server.workbooks.update(single_workbook) | ||
|
||
self.assertEqual("1f951daf-4061-451a-9df1-69a8062664f2", single_workbook.id) | ||
self.assertEqual("FreshAt", single_workbook.data_freshness_policy.option) | ||
self.assertEqual("Week", single_workbook.data_freshness_policy.fresh_at_schedule.frequency) | ||
self.assertEqual("10:00:00", single_workbook.data_freshness_policy.fresh_at_schedule.time) | ||
self.assertEqual("Wednesday", single_workbook.data_freshness_policy.fresh_at_schedule.interval_item[0]) | ||
self.assertEqual("Monday", single_workbook.data_freshness_policy.fresh_at_schedule.interval_item[1]) | ||
|
||
def test_update_DFP_fresh_at_month(self) -> None: | ||
with open(UPDATE_DFP_FRESH_AT_MONTHLY_XML, "rb") as f: | ||
response_xml = f.read().decode("utf-8") | ||
with requests_mock.mock() as m: | ||
m.put(self.baseurl + "/1f951daf-4061-451a-9df1-69a8062664f2", text=response_xml) | ||
single_workbook = TSC.WorkbookItem("1d0304cd-3796-429f-b815-7258370b9b74", show_tabs=True) | ||
single_workbook._id = "1f951daf-4061-451a-9df1-69a8062664f2" | ||
single_workbook.data_freshness_policy = TSC.DataFreshnessPolicyItem( | ||
TSC.DataFreshnessPolicyItem.Option.FreshAt) | ||
fresh_at_00am_lastDayOfMonth = TSC.DataFreshnessPolicyItem.FreshAt( | ||
TSC.DataFreshnessPolicyItem.FreshAt.Frequency.Month, | ||
"00:00:00", | ||
"America/Los_Angeles", | ||
["LastDay"] | ||
) | ||
single_workbook.data_freshness_policy.fresh_at_schedule = fresh_at_00am_lastDayOfMonth | ||
single_workbook = self.server.workbooks.update(single_workbook) | ||
|
||
self.assertEqual("1f951daf-4061-451a-9df1-69a8062664f2", single_workbook.id) | ||
self.assertEqual("FreshAt", single_workbook.data_freshness_policy.option) | ||
self.assertEqual("Month", single_workbook.data_freshness_policy.fresh_at_schedule.frequency) | ||
self.assertEqual("00:00:00", single_workbook.data_freshness_policy.fresh_at_schedule.time) | ||
self.assertEqual("LastDay", single_workbook.data_freshness_policy.fresh_at_schedule.interval_item[0]) | ||
|
||
def test_update_DFP_fresh_at_missing_params(self) -> None: | ||
with open(UPDATE_DFP_FRESH_AT_DAILY_XML, "rb") as f: | ||
response_xml = f.read().decode("utf-8") | ||
with requests_mock.mock() as m: | ||
m.put(self.baseurl + "/1f951daf-4061-451a-9df1-69a8062664f2", text=response_xml) | ||
single_workbook = TSC.WorkbookItem("1d0304cd-3796-429f-b815-7258370b9b74", show_tabs=True) | ||
single_workbook._id = "1f951daf-4061-451a-9df1-69a8062664f2" | ||
single_workbook.data_freshness_policy = TSC.DataFreshnessPolicyItem( | ||
TSC.DataFreshnessPolicyItem.Option.FreshAt) | ||
|
||
self.assertRaises(ValueError, self.server.workbooks.update, single_workbook) | ||
|
||
def test_update_DFP_fresh_at_missing_interval(self) -> None: | ||
with open(UPDATE_DFP_FRESH_AT_DAILY_XML, "rb") as f: | ||
response_xml = f.read().decode("utf-8") | ||
with requests_mock.mock() as m: | ||
m.put(self.baseurl + "/1f951daf-4061-451a-9df1-69a8062664f2", text=response_xml) | ||
single_workbook = TSC.WorkbookItem("1d0304cd-3796-429f-b815-7258370b9b74", show_tabs=True) | ||
single_workbook._id = "1f951daf-4061-451a-9df1-69a8062664f2" | ||
single_workbook.data_freshness_policy = TSC.DataFreshnessPolicyItem( | ||
TSC.DataFreshnessPolicyItem.Option.FreshAt) | ||
fresh_at_month_no_interval = TSC.DataFreshnessPolicyItem.FreshAt( | ||
TSC.DataFreshnessPolicyItem.FreshAt.Frequency.Month, | ||
"00:00:00", | ||
"America/Los_Angeles" | ||
) | ||
single_workbook.data_freshness_policy.fresh_at_schedule = fresh_at_month_no_interval | ||
|
||
self.assertRaises(ValueError, self.server.workbooks.update, single_workbook) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,118 @@ | ||
import os | ||
import requests_mock | ||
import unittest | ||
|
||
import tableauserverclient as TSC | ||
from tableauserverclient.datetime_helpers import format_datetime | ||
|
||
TEST_ASSET_DIR = os.path.join(os.path.dirname(__file__), "assets") | ||
|
||
GET_BY_ID_ACCELERATION_STATUS_XML = os.path.join(TEST_ASSET_DIR, "workbook_get_by_id_acceleration_status.xml") | ||
POPULATE_VIEWS_XML = os.path.join(TEST_ASSET_DIR, "workbook_populate_views.xml") | ||
UPDATE_VIEWS_ACCELERATION_STATUS_XML = os.path.join(TEST_ASSET_DIR, "workbook_update_views_acceleration_status.xml") | ||
UPDATE_WORKBOOK_ACCELERATION_STATUS_XML = os.path.join(TEST_ASSET_DIR,"workbook_update_acceleration_status.xml") | ||
|
||
class WorkbookTests(unittest.TestCase): | ||
def setUp(self) -> None: | ||
self.server = TSC.Server("http://test", False) | ||
|
||
# Fake sign in | ||
self.server._site_id = "dad65087-b08b-4603-af4e-2887b8aafc67" | ||
self.server._auth_token = "j80k54ll2lfMZ0tv97mlPvvSCRyD0DOM" | ||
|
||
self.baseurl = self.server.workbooks.baseurl | ||
|
||
def test_get_by_id(self) -> None: | ||
with open(GET_BY_ID_ACCELERATION_STATUS_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("http://tableauserver/#/workbooks/2/views", single_workbook.webpage_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("description for SafariSample", single_workbook.description) | ||
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) | ||
self.assertEqual(True, single_workbook.views[0].data_acceleration_config['acceleration_enabled']) | ||
self.assertEqual("Enabled", single_workbook.views[0].data_acceleration_config['acceleration_status']) | ||
self.assertEqual("d79634e1-6063-4ec9-95ff-50acbf609ff9", single_workbook.views[1].id) | ||
self.assertEqual("ENDANGERED SAFARI 2", single_workbook.views[1].name) | ||
self.assertEqual("SafariSample/sheets/ENDANGEREDSAFARI2", single_workbook.views[1].content_url) | ||
self.assertEqual(False, single_workbook.views[1].data_acceleration_config['acceleration_enabled']) | ||
self.assertEqual("Suspended", single_workbook.views[1].data_acceleration_config['acceleration_status']) | ||
|
||
def test_update_workbook_acceleration(self) -> None: | ||
with open(UPDATE_WORKBOOK_ACCELERATION_STATUS_XML, "rb") as f: | ||
response_xml = f.read().decode("utf-8") | ||
with requests_mock.mock() as m: | ||
m.put(self.baseurl + "/1f951daf-4061-451a-9df1-69a8062664f2", text=response_xml) | ||
single_workbook = TSC.WorkbookItem("1d0304cd-3796-429f-b815-7258370b9b74", show_tabs=True) | ||
single_workbook._id = "1f951daf-4061-451a-9df1-69a8062664f2" | ||
single_workbook.data_acceleration_config = { | ||
"acceleration_enabled": True, | ||
"accelerate_now": False, | ||
"last_updated_at": None, | ||
"acceleration_status": None, | ||
} | ||
# update with parameter includeViewAccelerationStatus=True | ||
single_workbook = self.server.workbooks.update(single_workbook, True) | ||
|
||
self.assertEqual("1f951daf-4061-451a-9df1-69a8062664f2", single_workbook.id) | ||
self.assertEqual("1d0304cd-3796-429f-b815-7258370b9b74", single_workbook.project_id) | ||
self.assertEqual("SafariSample/sheets/ENDANGEREDSAFARI", single_workbook.views[0].content_url) | ||
self.assertEqual(True, single_workbook.views[0].data_acceleration_config['acceleration_enabled']) | ||
self.assertEqual("Pending", single_workbook.views[0].data_acceleration_config['acceleration_status']) | ||
self.assertEqual("d79634e1-6063-4ec9-95ff-50acbf609ff9", single_workbook.views[1].id) | ||
self.assertEqual("ENDANGERED SAFARI 2", single_workbook.views[1].name) | ||
self.assertEqual("SafariSample/sheets/ENDANGEREDSAFARI2", single_workbook.views[1].content_url) | ||
self.assertEqual(True, single_workbook.views[1].data_acceleration_config['acceleration_enabled']) | ||
self.assertEqual("Pending", single_workbook.views[1].data_acceleration_config['acceleration_status']) | ||
|
||
def test_update_views_acceleration(self) -> None: | ||
with open(POPULATE_VIEWS_XML, "rb") as f: | ||
views_xml = f.read().decode("utf-8") | ||
with open(UPDATE_VIEWS_ACCELERATION_STATUS_XML, "rb") as f: | ||
response_xml = f.read().decode("utf-8") | ||
with requests_mock.mock() as m: | ||
m.get(self.baseurl + "/1f951daf-4061-451a-9df1-69a8062664f2/views", text=views_xml) | ||
m.put(self.baseurl + "/1f951daf-4061-451a-9df1-69a8062664f2", text=response_xml) | ||
single_workbook = TSC.WorkbookItem("1d0304cd-3796-429f-b815-7258370b9b74", show_tabs=True) | ||
single_workbook._id = "1f951daf-4061-451a-9df1-69a8062664f2" | ||
single_workbook.data_acceleration_config = { | ||
"acceleration_enabled": False, | ||
"accelerate_now": False, | ||
"last_updated_at": None, | ||
"acceleration_status": None, | ||
} | ||
self.server.workbooks.populate_views(single_workbook) | ||
single_workbook.views = [single_workbook.views[1],single_workbook.views[2]] | ||
# update with parameter includeViewAccelerationStatus=True | ||
single_workbook = self.server.workbooks.update(single_workbook, True) | ||
|
||
views_list = single_workbook.views | ||
self.assertEqual("097dbe13-de89-445f-b2c3-02f28bd010c1", views_list[0].id) | ||
self.assertEqual("GDP per capita", views_list[0].name) | ||
self.assertEqual(False, views_list[0].data_acceleration_config['acceleration_enabled']) | ||
self.assertEqual("Disabled", views_list[0].data_acceleration_config['acceleration_status']) | ||
|
||
self.assertEqual("2c1ab9d7-8d64-4cc6-b495-52e40c60c330", views_list[1].id) | ||
self.assertEqual("Country ranks", views_list[1].name) | ||
self.assertEqual(True, views_list[1].data_acceleration_config['acceleration_enabled']) | ||
self.assertEqual("Pending", views_list[1].data_acceleration_config['acceleration_status']) | ||
|
||
self.assertEqual("0599c28c-6d82-457e-a453-e52c1bdb00f5", views_list[2].id) | ||
self.assertEqual("Interest rates", views_list[2].name) | ||
self.assertEqual(True, views_list[2].data_acceleration_config['acceleration_enabled']) | ||
self.assertEqual("Pending", views_list[2].data_acceleration_config['acceleration_status']) |