11import re
22import unittest
3+ from urllib .parse import parse_qs
34
5+ import pytest
46import requests_mock
57
68import tableauserverclient as TSC
@@ -15,7 +17,8 @@ def setUp(self):
1517 self .baseurl = self .server .workbooks .baseurl
1618
1719 def test_empty_filter (self ):
18- self .assertRaises (TypeError , TSC .Filter , "" )
20+ with pytest .raises (TypeError ):
21+ TSC .Filter ("" )
1922
2023 def test_filter_equals (self ):
2124 with requests_mock .mock () as m :
@@ -25,17 +28,18 @@ def test_filter_equals(self):
2528 opts .filter .add (TSC .Filter (TSC .RequestOptions .Field .Name , TSC .RequestOptions .Operator .Equals , "Superstore" ))
2629
2730 resp = self .server .workbooks .get_request (url , request_object = opts )
28-
29- self .assertTrue (re .search ("pagenumber=13" , resp .request .query ))
30- self .assertTrue (re .search ("pagesize=13" , resp .request .query ))
31- self .assertTrue (re .search ("filter=name%3aeq%3asuperstore" , resp .request .query ))
31+ query = parse_qs (resp .request .query )
32+ assert "pagenumber" in query
33+ assert query ["pagenumber" ] == ["13" ]
34+ assert "pagesize" in query
35+ assert query ["pagesize" ] == ["13" ]
36+ assert "filter" in query
37+ assert query ["filter" ] == ["name:eq:superstore" ]
3238
3339 def test_filter_equals_list (self ):
34- with self . assertRaises (ValueError ) as cm :
40+ with pytest . raises (ValueError , match = "Filter values can only be a list if the operator is 'in'." ) as cm :
3541 TSC .Filter (TSC .RequestOptions .Field .Tags , TSC .RequestOptions .Operator .Equals , ["foo" , "bar" ])
3642
37- self .assertEqual ("Filter values can only be a list if the operator is 'in'." , str (cm .exception )),
38-
3943 def test_filter_in (self ):
4044 with requests_mock .mock () as m :
4145 m .get (requests_mock .ANY )
@@ -47,9 +51,13 @@ def test_filter_in(self):
4751 )
4852
4953 resp = self .server .workbooks .get_request (url , request_object = opts )
50- self .assertTrue (re .search ("pagenumber=13" , resp .request .query ))
51- self .assertTrue (re .search ("pagesize=13" , resp .request .query ))
52- self .assertTrue (re .search ("filter=tags%3ain%3a%5bstocks%2cmarket%5d" , resp .request .query ))
54+ query = parse_qs (resp .request .query )
55+ assert "pagenumber" in query
56+ assert query ["pagenumber" ] == ["13" ]
57+ assert "pagesize" in query
58+ assert query ["pagesize" ] == ["13" ]
59+ assert "filter" in query
60+ assert query ["filter" ] == ["tags:in:[stocks,market]" ]
5361
5462 def test_sort_asc (self ):
5563 with requests_mock .mock () as m :
@@ -59,10 +67,13 @@ def test_sort_asc(self):
5967 opts .sort .add (TSC .Sort (TSC .RequestOptions .Field .Name , TSC .RequestOptions .Direction .Asc ))
6068
6169 resp = self .server .workbooks .get_request (url , request_object = opts )
62-
63- self .assertTrue (re .search ("pagenumber=13" , resp .request .query ))
64- self .assertTrue (re .search ("pagesize=13" , resp .request .query ))
65- self .assertTrue (re .search ("sort=name%3aasc" , resp .request .query ))
70+ query = parse_qs (resp .request .query )
71+ assert "pagenumber" in query
72+ assert query ["pagenumber" ] == ["13" ]
73+ assert "pagesize" in query
74+ assert query ["pagesize" ] == ["13" ]
75+ assert "sort" in query
76+ assert query ["sort" ] == ["name:asc" ]
6677
6778 def test_filter_combo (self ):
6879 with requests_mock .mock () as m :
@@ -84,20 +95,10 @@ def test_filter_combo(self):
8495
8596 resp = self .server .workbooks .get_request (url , request_object = opts )
8697
87- expected = (
88- "pagenumber=13&pagesize=13&filter=lastlogin%3agte%3a"
89- "2017-01-15t00%3a00%3a00%3a00z%2csiterole%3aeq%3apublisher"
90- )
91-
92- self .assertTrue (re .search ("pagenumber=13" , resp .request .query ))
93- self .assertTrue (re .search ("pagesize=13" , resp .request .query ))
94- self .assertTrue (
95- re .search (
96- "filter=lastlogin%3agte%3a2017-01-15t00%3a00%3a00%3a00z%2csiterole%3aeq%3apublisher" ,
97- resp .request .query ,
98- )
99- )
100-
101-
102- if __name__ == "__main__" :
103- unittest .main ()
98+ query = parse_qs (resp .request .query )
99+ assert "pagenumber" in query
100+ assert query ["pagenumber" ] == ["13" ]
101+ assert "pagesize" in query
102+ assert query ["pagesize" ] == ["13" ]
103+ assert "filter" in query
104+ assert query ["filter" ] == ["lastlogin:gte:2017-01-15t00:00:00:00z,siterole:eq:publisher" ]
0 commit comments