8000 Fixing import of TSC.Target to client access (#377) · SnarkyPapi/server-client-python@a6c249b · GitHub
[go: up one dir, main page]

Skip to content

Commit a6c249b

Browse files
authored
Fixing import of TSC.Target to client access (tableau#377)
* fixing import of TSC.Target to client access
1 parent c50e080 commit a6c249b

File tree

4 files changed

+34
-1
lines changed

4 files changed

+34
-1
lines changed

tableauserverclient/__init__.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
GroupItem, JobItem, BackgroundJobItem, PaginationItem, ProjectItem, ScheduleItem, \
44
SiteItem, TableauAuth, UserItem, ViewItem, WorkbookItem, UnpopulatedPropertyError, \
55
HourlyInterval, DailyInterval, WeeklyInterval, MonthlyInterval, IntervalItem, TaskItem, \
6-
SubscriptionItem
6+
SubscriptionItem, Target
77
from .server import RequestOptions, CSVRequestOptions, ImageRequestOptions, PDFRequestOptions, Filter, Sort, \
88
Server, ServerResponseError, MissingRequiredFieldError, NotSignedInError, Pager
99
from ._version import get_versions

tableauserverclient/models/__init__.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@
1111
from .server_info_item import ServerInfoItem
1212
from .site_item import SiteItem
1313
from .tableau_auth import TableauAuth
14+
from .target import Target
1415
from .task_item import TaskItem
1516
from .user_item import UserItem
1617
from .view_item import ViewItem

test/assets/subscription_create.xml

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
<?xml version='1.0' encoding='UTF-8'?>
2+
<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-3.3.xsd">
3+
<subscription id="78e9318d-2d29-4d67-b60f-3f2f5fd89ecc" subject="sub_name">
4+
<content id="960e61f2-1838-40b2-bba2-340c9492f943" type="Workbook"/>
5+
<schedule id="4906c453-d5ec-4972-9ff4-789b629bdfa2" name="Monday morning"/>
6+
<user id="8d30c8de-0a5f-4bee-b266-c621b4f3eed0" name="user1"/>
7+
</subscription>
8+
</tsResponse>

test/test_subscription.py

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55

66
TEST_ASSET_DIR = os.path.join(os.path.dirname(__file__), "assets")
77

8+
CREATE_XML = os.path.join(TEST_ASSET_DIR, "subscription_create.xml")
89
GET_XML = os.path.join(TEST_ASSET_DIR, "subscription_get.xml")
910
GET_XML_BY_ID = os.path.join(TEST_ASSET_DIR, "subscription_get_by_id.xml")
1011

@@ -48,3 +49,26 @@ def test_get_subscription_by_id(self):
4849
self.assertEqual('c0d5fc44-ad8c-4957-bec0-b70ed0f8df1e', subscription.user_id)
4950
self.assertEqual('Not Found Alert', subscription.subject)
5051
self.assertEqual('7617c389-cdca-4940-a66e-69956fcebf3e', subscription.schedule_id)
52+
53+
def test_create_subscription(self):
54+
with open(CREATE_XML, 'rb') as f:
55+
response_xml = f.read().decode('utf-8')
56+
with requests_mock.mock() as m:
57+
m.post(self.baseurl, text=response_xml)
58+
59+
target_item = TSC.Target("960e61f2-1838-40b2-bba2-340c9492f943", "workbook")
60+
new_subscription = TSC.SubscriptionItem("subject", "4906c453-d5ec-4972-9ff4-789b629bdfa2",
61+
"8d30c8de-0a5f-4bee-b266-c621b4f3eed0", target_item)
62+
new_subscription = self.server.subscriptions.create(new_subscription)
63+
64+
self.assertEqual("78e9318d-2d29-4d67-b60f-3f2f5fd89ecc", new_subscription.id)
65+
self.assertEqual("sub_name", new_subscription.subject)
66+
self.assertEqual("960e61f2-1838-40b2-bba2-340c9492f943", new_subscription.target.id)
67+
self.assertEqual("Workbook", new_subscription.target.type)
68+
self.assertEqual("4906c453-d5ec-4972-9ff4-789b629bdfa2", new_subscription.schedule_id)
69+
self.assertEqual("8d30c8de-0a5f-4bee-b266-c621b4f3eed0", new_subscription.user_id)
70+
71+
def test_delete_subscription(self):
72+
with requests_mock.mock() as m:
73+
m.delete(self.baseurl + '/78e9318d-2d29-4d67-b60f-3f2f5fd89ecc', status_code=204)
74+
self.server.subscriptions.delete('78e9318d-2d29-4d67-b60f-3f2f5fd89ecc')

0 commit comments

Comments
 (0)
0