Skip to content

Commit 4becca6

Browse files
authored
chore: pytestify test_dataalert (#1654)
Co-authored-by: Jordan Woods <13803242+jorwoods@users.noreply.github.com>
1 parent 388d5eb commit 4becca6

File tree

1 file changed

+115
-107
lines changed

1 file changed

+115
-107
lines changed

test/test_dataalert.py

Lines changed: 115 additions & 107 deletions
Original file line numberDiff line numberDiff line change
@@ -1,112 +1,120 @@
1-
import unittest
1+
from pathlib import Path
22

3+
import pytest
34
import requests_mock
45

56
import tableauserverclient as TSC
6-
from ._utils import read_xml_asset
7-
8-
GET_XML = "data_alerts_get.xml"
9-
GET_BY_ID_XML = "data_alerts_get_by_id.xml"
10-
ADD_USER_TO_ALERT = "data_alerts_add_user.xml"
11-
UPDATE_XML = "data_alerts_update.xml"
12-
13-
14-
class DataAlertTests(unittest.TestCase):
15-
def setUp(self) -> None:
16-
self.server = TSC.Server("http://test", False)
17-
18-
# Fake signin
19-
self.server._site_id = "dad65087-b08b-4603-af4e-2887b8aafc67"
20-
self.server._auth_token = "j80k54ll2lfMZ0tv97mlPvvSCRyD0DOM"
21-
self.server.version = "3.2"
22-
23-
self.baseurl = self.server.data_alerts.baseurl
24-
25-
def test_get(self) -> None:
26-
response_xml = read_xml_asset(GET_XML)
27-
with requests_mock.mock() as m:
28-
m.get(self.baseurl, text=response_xml)
29-
all_alerts, pagination_item = self.server.data_alerts.get()
30-
31-
self.assertEqual(1, pagination_item.total_available)
32-
self.assertEqual("5ea59b45-e497-5673-8809-bfe213236f75", all_alerts[0].id)
33-
self.assertEqual("Data Alert test", all_alerts[0].subject)
34-
self.assertEqual("5de011f8-5aa9-4d5b-b991-f462c8dd6bb7", all_alerts[0].creatorId)
35-
self.assertEqual("2020-08-10T23:17:06Z", all_alerts[0].createdAt)
36-
self.assertEqual("2020-08-10T23:17:06Z", all_alerts[0].updatedAt)
37-
self.assertEqual("Daily", all_alerts[0].frequency)
38-
self.assertEqual("true", all_alerts[0].public)
39-
self.assertEqual("5de011f8-5aa9-4d5b-b991-f462c8dd6bb7", all_alerts[0].owner_id)
40-
self.assertEqual("Bob", all_alerts[0].owner_name)
41-
self.assertEqual("d79634e1-6063-4ec9-95ff-50acbf609ff5", all_alerts[0].view_id)
42-
self.assertEqual("ENDANGERED SAFARI", all_alerts[0].view_name)
43-
self.assertEqual("6d13b0ca-043d-4d42-8c9d-3f3313ea3a00", all_alerts[0].workbook_id)
44-
self.assertEqual("Safari stats", all_alerts[0].workbook_name)
45-
self.assertEqual("5241e88d-d384-4fd7-9c2f-648b5247efc5", all_alerts[0].project_id)
46-
self.assertEqual("Default", all_alerts[0].project_name)
47-
48-
def test_get_by_id(self) -> None:
49-
response_xml = read_xml_asset(GET_BY_ID_XML)
50-
with requests_mock.mock() as m:
51-
m.get(self.baseurl + "/5ea59b45-e497-5673-8809-bfe213236f75", text=response_xml)
52-
alert = self.server.data_alerts.get_by_id("5ea59b45-e497-5673-8809-bfe213236f75")
53-
54-
self.assertTrue(isinstance(alert.recipients, list))
55-
self.assertEqual(len(alert.recipients), 1)
56-
self.assertEqual(alert.recipients[0], "dd2239f6-ddf1-4107-981a-4cf94e415794")
57-
58-
def test_update(self) -> None:
59-
response_xml = read_xml_asset(UPDATE_XML)
60-
with requests_mock.mock() as m:
61-
m.put(self.baseurl + "/5ea59b45-e497-5673-8809-bfe213236f75", text=response_xml)
62-
single_alert = TSC.DataAlertItem()
63-
single_alert._id = "5ea59b45-e497-5673-8809-bfe213236f75"
64-
single_alert._subject = "Data Alert test"
65-
single_alert._frequency = "Daily"
66-
single_alert._public = True
67-
single_alert._owner_id = "5de011f8-5aa9-4d5b-b991-f462c8dd6bb7"
68-
single_alert = self.server.data_alerts.update(single_alert)
69-
70-
self.assertEqual("5ea59b45-e497-5673-8809-bfe213236f75", single_alert.id)
71-
self.assertEqual("Data Alert test", single_alert.subject)
72-
self.assertEqual("5de011f8-5aa9-4d5b-b991-f462c8dd6bb7", single_alert.creatorId)
73-
self.assertEqual("2020-08-10T23:17:06Z", single_alert.createdAt)
74-
self.assertEqual("2020-08-10T23:17:06Z", single_alert.updatedAt)
75-
self.assertEqual("Daily", single_alert.frequency)
76-
self.assertEqual("true", single_alert.public)
77-
self.assertEqual("5de011f8-5aa9-4d5b-b991-f462c8dd6bb7", single_alert.owner_id)
78-
self.assertEqual("Bob", single_alert.owner_name)
79-
self.assertEqual("d79634e1-6063-4ec9-95ff-50acbf609ff5", single_alert.view_id)
80-
self.assertEqual("ENDANGERED SAFARI", single_alert.view_name)
81-
self.assertEqual("6d13b0ca-043d-4d42-8c9d-3f3313ea3a00", single_alert.workbook_id)
82-
self.assertEqual("Safari stats", single_alert.workbook_name)
83-
self.assertEqual("5241e88d-d384-4fd7-9c2f-648b5247efc5", single_alert.project_id)
84-
self.assertEqual("Default", single_alert.project_name)
85-
86-
def test_add_user_to_alert(self) -> None:
87-
response_xml = read_xml_asset(ADD_USER_TO_ALERT)
7+
8+
TEST_ASSET_DIR = Path(__file__).parent / "assets"
9+
10+
GET_XML = TEST_ASSET_DIR / "data_alerts_get.xml"
11+
GET_BY_ID_XML = TEST_ASSET_DIR / "data_alerts_get_by_id.xml"
12+
ADD_USER_TO_ALERT = TEST_ASSET_DIR / "data_alerts_add_user.xml"
13+
UPDATE_XML = TEST_ASSET_DIR / "data_alerts_update.xml"
14+
15+
16+
@pytest.fixture(scope="function")
17+
def server():
18+
server = TSC.Server("http://test", False)
19+
20+
# Fake signin
21+
server._site_id = "dad65087-b08b-4603-af4e-2887b8aafc67"
22+
server._auth_token = "j80k54ll2lfMZ0tv97mlPvvSCRyD0DOM"
23+
server.version = "3.2"
24+
25+
return server
26+
27+
28+
def test_get(server) -> None:
29+
response_xml = GET_XML.read_text()
30+
with requests_mock.mock() as m:
31+
m.get(server.data_alerts.baseurl, text=response_xml)
32+
all_alerts, pagination_item = server.data_alerts.get()
33+
34+
assert 1 == pagination_item.total_available
35+
assert "5ea59b45-e497-5673-8809-bfe213236f75" == all_alerts[0].id
36+
assert "Data Alert test" == all_alerts[0].subject
37+
assert "5de011f8-5aa9-4d5b-b991-f462c8dd6bb7" == all_alerts[0].creatorId
38+
assert "2020-08-10T23:17:06Z" == all_alerts[0].createdAt
39+
assert "2020-08-10T23:17:06Z" == all_alerts[0].updatedAt
40+
assert "Daily" == all_alerts[0].frequency
41+
assert "true" == all_alerts[0].public
42+
assert "5de011f8-5aa9-4d5b-b991-f462c8dd6bb7" == all_alerts[0].owner_id
43+
assert "Bob" == all_alerts[0].owner_name
44+
assert "d79634e1-6063-4ec9-95ff-50acbf609ff5" == all_alerts[0].view_id
45+
assert "ENDANGERED SAFARI" == all_alerts[0].view_name
46+
assert "6d13b0ca-043d-4d42-8c9d-3f3313ea3a00" == all_alerts[0].workbook_id
47+
assert "Safari stats" == all_alerts[0].workbook_name
48+
assert "5241e88d-d384-4fd7-9c2f-648b5247efc5" == all_alerts[0].project_id
49+
assert "Default" == all_alerts[0].project_name
50+
51+
52+
def test_get_by_id(server) -> None:
53+
response_xml = GET_BY_ID_XML.read_text()
54+
with requests_mock.mock() as m:
55+
m.get(server.data_alerts.baseurl + "/5ea59b45-e497-5673-8809-bfe213236f75", text=response_xml)
56+
alert = server.data_alerts.get_by_id("5ea59b45-e497-5673-8809-bfe213236f75")
57+
58+
assert isinstance(alert.recipients, list)
59+
assert len(alert.recipients) == 1
60+
assert alert.recipients[0] == "dd2239f6-ddf1-4107-981a-4cf94e415794"
61+
62+
63+
def test_update(server) -> None:
64+
response_xml = UPDATE_XML.read_text()
65+
with requests_mock.mock() as m:
66+
m.put(server.data_alerts.baseurl + "/5ea59b45-e497-5673-8809-bfe213236f75", text=response_xml)
8867
single_alert = TSC.DataAlertItem()
89-
single_alert._id = "0448d2ed-590d-4fa0-b272-a2a8a24555b5"
90-
in_user = TSC.UserItem("Bob", TSC.UserItem.Roles.Explorer)
91-
in_user._id = "5de011f8-5aa9-4d5b-b991-f462c8dd6bb7"
92-
93-
with requests_mock.mock() as m:
94-
m.post(self.baseurl + "/0448d2ed-590d-4fa0-b272-a2a8a24555b5/users", text=response_xml)
95-
96-
out_user = self.server.data_alerts.add_user_to_alert(single_alert, in_user)
97-
98-
self.assertEqual(out_user.id, in_user.id)
99-
self.assertEqual(out_user.name, in_user.name)
100-
self.assertEqual(out_user.site_role, in_user.site_role)
101-
102-
def test_delete(self) -> None:
103-
with requests_mock.mock() as m:
104-
m.delete(self.baseurl + "/0448d2ed-590d-4fa0-b272-a2a8a24555b5", status_code=204)
105-
self.server.data_alerts.delete("0448d2ed-590d-4fa0-b272-a2a8a24555b5")
106-
107-
def test_delete_user_from_alert(self) -> None:
108-
alert_id = "5ea59b45-e497-5673-8809-bfe213236f75"
109-
user_id = "5de011f8-5aa9-4d5b-b991-f462c8dd6bb7"
110-
with requests_mock.mock() as m:
111-
m.delete(self.baseurl + f"/{alert_id}/users/{user_id}", status_code=204)
112-
self.server.data_alerts.delete_user_from_alert(alert_id, user_id)
68+
single_alert._id = "5ea59b45-e497-5673-8809-bfe213236f75"
69+
single_alert._subject = "Data Alert test"
70+
single_alert._frequency = "Daily"
71+
single_alert._public = True
72+
single_alert._owner_id = "5de011f8-5aa9-4d5b-b991-f462c8dd6bb7"
73+
single_alert = server.data_alerts.update(single_alert)
74+
75+
assert "5ea59b45-e497-5673-8809-bfe213236f75" == single_alert.id
76+
assert "Data Alert test" == single_alert.subject
77+
assert "5de011f8-5aa9-4d5b-b991-f462c8dd6bb7" == single_alert.creatorId
78+
assert "2020-08-10T23:17:06Z" == single_alert.createdAt
79+
assert "2020-08-10T23:17:06Z" == single_alert.updatedAt
80+
assert "Daily" == single_alert.frequency
81+
assert "true" == single_alert.public
82+
assert "5de011f8-5aa9-4d5b-b991-f462c8dd6bb7" == single_alert.owner_id
83+
assert "Bob" == single_alert.owner_name
84+
assert "d79634e1-6063-4ec9-95ff-50acbf609ff5" == single_alert.view_id
85+
assert "ENDANGERED SAFARI" == single_alert.view_name
86+
assert "6d13b0ca-043d-4d42-8c9d-3f3313ea3a00" == single_alert.workbook_id
87+
assert "Safari stats" == single_alert.workbook_name
88+
assert "5241e88d-d384-4fd7-9c2f-648b5247efc5" == single_alert.project_id
89+
assert "Default" == single_alert.project_name
90+
91+
92+
def test_add_user_to_alert(server) -> None:
93+
response_xml = ADD_USER_TO_ALERT.read_text()
94+
single_alert = TSC.DataAlertItem()
95+
single_alert._id = "0448d2ed-590d-4fa0-b272-a2a8a24555b5"
96+
in_user = TSC.UserItem("Bob", TSC.UserItem.Roles.Explorer)
97+
in_user._id = "5de011f8-5aa9-4d5b-b991-f462c8dd6bb7"
98+
99+
with requests_mock.mock() as m:
100+
m.post(server.data_alerts.baseurl + "/0448d2ed-590d-4fa0-b272-a2a8a24555b5/users", text=response_xml)
101+
102+
out_user = server.data_alerts.add_user_to_alert(single_alert, in_user)
103+
104+
assert out_user.id == in_user.id
105+
assert out_user.name == in_user.name
106+
assert out_user.site_role == in_user.site_role
107+
108+
109+
def test_delete(server) -> None:
110+
with requests_mock.mock() as m:
111+
m.delete(server.data_alerts.baseurl + "/0448d2ed-590d-4fa0-b272-a2a8a24555b5", status_code=204)
112+
server.data_alerts.delete("0448d2ed-590d-4fa0-b272-a2a8a24555b5")
113+
114+
115+
def test_delete_user_from_alert(server) -> None:
116+
alert_id = "5ea59b45-e497-5673-8809-bfe213236f75"
117+
user_id = "5de011f8-5aa9-4d5b-b991-f462c8dd6bb7"
118+
with requests_mock.mock() as m:
119+
m.delete(server.data_alerts.baseurl + f"/{alert_id}/users/{user_id}", status_code=204)
120+
server.data_alerts.delete_user_from_alert(alert_id, user_id)

0 commit comments

Comments
 (0)