forked from tableau/server-client-python
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathtest_dataalert.py
More file actions
115 lines (98 loc) · 5.8 KB
/
test_dataalert.py
File metadata and controls
115 lines (98 loc) · 5.8 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
import unittest
import os
import requests_mock
import xml.etree.ElementTree as ET
import tableauserverclient as TSC
from tableauserverclient.datetime_helpers import format_datetime
from tableauserverclient.server.endpoint.exceptions import InternalServerError
from tableauserverclient.server.request_factory import RequestFactory
from ._utils import read_xml_asset, read_xml_assets, asset
GET_XML = 'data_alerts_get.xml'
GET_BY_ID_XML = 'data_alerts_get_by_id.xml'
ADD_USER_TO_ALERT = 'data_alerts_add_user.xml'
UPDATE_XML = 'data_alerts_update.xml'
class DataAlertTests(unittest.TestCase):
def setUp(self):
self.server = TSC.Server('http://test')
# Fake signin
self.server._site_id = 'dad65087-b08b-4603-af4e-2887b8aafc67'
self.server._auth_token = 'j80k54ll2lfMZ0tv97mlPvvSCRyD0DOM'
self.server.version = "3.2"
self.baseurl = self.server.data_alerts.baseurl
def test_get(self):
response_xml = read_xml_asset(GET_XML)
with requests_mock.mock() as m:
m.get(self.baseurl, text=response_xml)
all_alerts, pagination_item = self.server.data_alerts.get()
self.assertEqual(1, pagination_item.total_available)
self.assertEqual('5ea59b45-e497-5673-8809-bfe213236f75', all_alerts[0].id)
self.assertEqual('Data Alert test', all_alerts[0].subject)
self.assertEqual('5de011f8-5aa9-4d5b-b991-f462c8dd6bb7', all_alerts[0].creatorId)
self.assertEqual('2020-08-10T23:17:06Z', all_alerts[0].createdAt)
self.assertEqual('2020-08-10T23:17:06Z', all_alerts[0].updatedAt)
self.assertEqual('Daily', all_alerts[0].frequency)
self.assertEqual('true', all_alerts[0].public)
self.assertEqual('5de011f8-5aa9-4d5b-b991-f462c8dd6bb7', all_alerts[0].owner_id)
self.assertEqual('Bob', all_alerts[0].owner_name)
self.assertEqual('d79634e1-6063-4ec9-95ff-50acbf609ff5', all_alerts[0].view_id)
self.assertEqual('ENDANGERED SAFARI', all_alerts[0].view_name)
self.assertEqual('6d13b0ca-043d-4d42-8c9d-3f3313ea3a00', all_alerts[0].workbook_id)
self.assertEqual('Safari stats', all_alerts[0].workbook_name)
self.assertEqual('5241e88d-d384-4fd7-9c2f-648b5247efc5', all_alerts[0].project_id)
self.assertEqual('Default', all_alerts[0].project_name)
def test_get_by_id(self):
response_xml = read_xml_asset(GET_BY_ID_XML)
with requests_mock.mock() as m:
m.get(self.baseurl + '/5ea59b45-e497-5673-8809-bfe213236f75', text=response_xml)
alert = self.server.data_alerts.get_by_id('5ea59b45-e497-5673-8809-bfe213236f75')
self.assertTrue(isinstance(alert.recipients, list))
self.assertEqual(len(alert.recipients), 1)
self.assertEqual(alert.recipients[0], 'dd2239f6-ddf1-4107-981a-4cf94e415794')
def test_update(self):
response_xml = read_xml_asset(UPDATE_XML)
with requests_mock.mock() as m:
m.put(self.baseurl + '/5ea59b45-e497-5673-8809-bfe213236f75', text=response_xml)
single_alert = TSC.DataAlertItem()
single_alert._id = '5ea59b45-e497-5673-8809-bfe213236f75'
single_alert._subject = 'Data Alert test'
single_alert._frequency = 'Daily'
single_alert._public = "true"
single_alert._owner_id = "5de011f8-5aa9-4d5b-b991-f462c8dd6bb7"
single_alert = self.server.data_alerts.update(single_alert)
self.assertEqual('5ea59b45-e497-5673-8809-bfe213236f75', single_alert.id)
self.assertEqual('Data Alert test', single_alert.subject)
self.assertEqual('5de011f8-5aa9-4d5b-b991-f462c8dd6bb7', single_alert.creatorId)
self.assertEqual('2020-08-10T23:17:06Z', single_alert.createdAt)
self.assertEqual('2020-08-10T23:17:06Z', single_alert.updatedAt)
self.assertEqual('Daily', single_alert.frequency)
self.assertEqual('true', single_alert.public)
self.assertEqual('5de011f8-5aa9-4d5b-b991-f462c8dd6bb7', single_alert.owner_id)
self.assertEqual('Bob', single_alert.owner_name)
self.assertEqual('d79634e1-6063-4ec9-95ff-50acbf609ff5', single_alert.view_id)
self.assertEqual('ENDANGERED SAFARI', single_alert.view_name)
self.assertEqual('6d13b0ca-043d-4d42-8c9d-3f3313ea3a00', single_alert.workbook_id)
self.assertEqual('Safari stats', single_alert.workbook_name)
self.assertEqual('5241e88d-d384-4fd7-9c2f-648b5247efc5', single_alert.project_id)
self.assertEqual('Default', single_alert.project_name)
def test_add_user_to_alert(self):
response_xml = read_xml_asset(ADD_USER_TO_ALERT)
single_alert = TSC.DataAlertItem()
single_alert._id = '0448d2ed-590d-4fa0-b272-a2a8a24555b5'
in_user = TSC.UserItem('Bob', TSC.UserItem.Roles.Explorer)
in_user._id = '5de011f8-5aa9-4d5b-b991-f462c8dd6bb7'
with requests_mock.mock() as m:
m.post(self.baseurl + '/0448d2ed-590d-4fa0-b272-a2a8a24555b5/users', text=response_xml)
out_user = self.server.data_alerts.add_user_to_alert(single_alert, in_user)
self.assertEqual(out_user.id, in_user.id)
self.assertEqual(out_user.name, in_user.name)
self.assertEqual(out_user.site_role, in_user.site_role)
def test_delete(self):
with requests_mock.mock() as m:
m.delete(self.baseurl + '/0448d2ed-590d-4fa0-b272-a2a8a24555b5', status_code=204)
self.server.data_alerts.delete('0448d2ed-590d-4fa0-b272-a2a8a24555b5')
def test_delete_user_from_alert(self):
alert_id = '5ea59b45-e497-5673-8809-bfe213236f75'
user_id = '5de011f8-5aa9-4d5b-b991-f462c8dd6bb7'
with requests_mock.mock() as m:
m.delete(self.baseurl + '/{0}/users/{1}'.format(alert_id, user_id), status_code=204)
self.server.data_alerts.delete_user_from_alert(alert_id, user_id)