8000 101 unit test coverage sort.py (#130) · williamlang/server-client-python@4700dda · GitHub
[go: up one dir, main page]

Skip to content

Commit 4700dda

Browse files
talvalint8y8
authored andcommitted
101 unit test coverage sort.py (tableau#130)
Brings sort.py coverage up to 100% * Adding test_sort.py with initial tests * Updated based on pycodestyle tests
1 parent 2f66a6d commit 4700dda

File tree

1 file changed

+107
-0
lines changed

1 file changed

+107
-0
lines changed

test/test_sort.py

Lines changed: 107 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,107 @@
1+
import unittest
2+
import os
3+
import requests
4+
import requests_mock
5+
import tableauserverclient as TSC
6+
7+
8+
class SortTests(unittest.TestCase):
9+
def setUp(self):
10+
self.server = TSC.Server('http://test')
11+
self.server._site_id = 'dad65087-b08b-4603-af4e-2887b8aafc67'
12+
self.server._auth_token = 'j80k54ll2lfMZ0tv97mlPvvSCRyD0DOM'
13+
self.baseurl = self.server.workbooks.baseurl
14+
15+
def test_empty_filter(self):
16+
self.assertRaises(TypeError, TSC.Filter, "")
17+
18+
def test_filter_equals(self):
19+
with requests_mock.mock() as m:
20+
m.get(requests_mock.ANY)
21+
url = "http://test/api/2.3/sites/dad65087-b08b-4603-af4e-2887b8aafc67/workbooks"
22+
opts = TSC.RequestOptions(pagesize=13, pagenumber=13)
23+
opts.filter.add(TSC.Filter(TSC.RequestOptions.Field.Name,
24+
TSC.RequestOptions.Operator.Equals,
25+
'Superstore'))
26+
27+
resp = self.server.workbooks._make_request(requests.get,
28+
url,
29+
content=None,
30+
request_object=opts,
31+
auth_token='j80k54ll2lfMZ0tv97mlPvvSCRyD0DOM',
32+
content_type='text/xml')
33+
34+
self.assertEqual(resp.request.query, 'pagenumber=13&pagesize=13&filter=name:eq:superstore')
35+
36+
def test_filter_equals_list(self):
37+
with self.assertRaises(ValueError) as cm:
38+
TSC.Filter(TSC.RequestOptions.Field.Tags,
39+
TSC.RequestOptions.Operator.Equals,
40+
['foo', 'bar'])
41+
42+
self.assertEqual("Filter values can only be a list if the operator is 'in'.", str(cm.exception)),
43+
44+
def test_filter_in(self):
45+
with requests_mock.mock() as m:
46+
m.get(requests_mock.ANY)
47+
url = "http://test/api/2.3/sites/dad65087-b08b-4603-af4e-2887b8aafc67/workbooks"
48+
opts = TSC.RequestOptions(pagesize=13, pagenumber=13)
49+
50+
opts.filter.add(TSC.Filter(TSC.RequestOptions.Field.Tags,
51+
TSC.RequestOptions.Operator.In,
52+
['stocks', 'market']))
53+
54+
resp = self.server.workbooks._make_request(requests.get,
55+
url,
56+
content=None,
57+
request_object=opts,
58+
auth_token='j80k54ll2lfMZ0tv97mlPvvSCRyD0DOM',
59+
content_type='text/xml')
60+
61+
self.assertEqual(resp.request.query, 'pagenumber=13&pagesize=13&filter=tags:in:[stocks,market]')
62+
63+
def test_sort_asc(self):
64+
with requests_mock.mock() as m:
65+
m.get(requests_mock.ANY)
66+
url = "http://test/api/2.3/sites/dad65087-b08b-4603-af4e-2887b8aafc67/workbooks"
67+
opts = TSC.RequestOptions(pagesize=13, pagenumber=13)
68+
opts.sort.add(TSC.Sort(TSC.RequestOptions.Field.Name,
69+
TSC.RequestOptions.Direction.Asc))
70+
71+
resp = self.server.workbooks._make_request(requests.get,
72+
url,
73+
content=None,
74+
request_object=opts,
75+
auth_token='j80k54ll2lfMZ0tv97mlPvvSCRyD0DOM',
76+
content_type='text/xml')
77+
78+
self.assertEqual(resp.request.query, 'pagenumber=13&pagesize=13&sort=name:asc')
79+
80+
def test_filter_combo(self):
81+
with requests_mock.mock() as m:
82+
m.get(requests_mock.ANY)
83+
url = "http://test/api/2.3/sites/dad65087-b08b-4603-af4e-2887b8aafc67/users"
84+
opts = TSC.RequestOptions(pagesize=13, pagenumber=13)
85+
86+
opts.filter.add(TSC.Filter(TSC.RequestOptions.Field.LastLogin,
87+
TSC.RequestOptions.Operator.GreaterThanOrEqual,
88+
'2017-01-15T00:00:00:00Z'))
89+
90+
opts.filter.add(TSC.Filter(TSC.RequestOptions.Field.SiteRole,
91+
TSC.RequestOptions.Operator.Equals,
92+
'Publisher'))
93+
94+
resp = self.server.workbooks._make_request(requests.get,
95+
url,
96+
content=None,
97+
request_object=opts,
98+
auth_token='j80k54ll2lfMZ0tv97mlPvvSCRyD0DOM',
99+
content_type='text/xml')
100+
101+
expected = 'pagenumber=13&pagesize=13&filter=lastlogin:gte:2017-01-15t00:00:00:00z,siterole:eq:publisher'
102+
103+
self.assertEqual(resp.request.query, expected)
104+
105+
106+
if __name__ == '__main__':
107+
unittest.main()

0 commit comments

Comments
 (0)
0