1- import re
2- import unittest
31from urllib .parse import parse_qs
42
53import pytest
@@ -13,30 +11,33 @@ def server():
1311 """Fixture to create a TSC.Server instance for testing."""
1412 server = TSC .Server ("http://test" , False )
1513
16- def test_empty_filter ( self ):
17- with pytest . raises ( TypeError ):
18- TSC . Filter ( "" )
14+ # Fake signin
15+ server . _site_id = "dad65087-b08b-4603-af4e-2887b8aafc67"
16+ server . _auth_token = "j80k54ll2lfMZ0tv97mlPvvSCRyD0DOM"
1917
2018 return server
2119
22- resp = self .server .workbooks .get_request (url , request_object = opts )
23- query = parse_qs (resp .request .query )
24- assert "pagenumber" in query
25- assert query ["pagenumber" ] == ["13" ]
26- assert "pagesize" in query
27- assert query ["pagesize" ] == ["13" ]
28- assert "filter" in query
29- assert query ["filter" ] == ["name:eq:superstore" ]
3020
31- def test_filter_equals_list ( self ) :
32- with pytest .raises (ValueError , match = "Filter values can only be a list if the operator is 'in'." ) as cm :
33- TSC .Filter (TSC . RequestOptions . Field . Tags , TSC . RequestOptions . Operator . Equals , [ "foo" , "bar" ])
21+ def test_empty_filter () -> None :
22+ with pytest .raises (TypeError ) :
23+ TSC .Filter ("" ) # type: ignore
3424
35- def test_filter_in (self ):
36- with requests_mock .mock () as m :
37- m .get (requests_mock .ANY )
38- url = "http://test/api/2.3/sites/dad65087-b08b-4603-af4e-2887b8aafc67/workbooks"
39- opts = TSC .RequestOptions (pagesize = 13 , pagenumber = 13 )
25+
26+ def test_filter_equals (server : TSC .Server ) -> None :
27+ with requests_mock .mock () as m :
28+ m .get (requests_mock .ANY )
29+ url = "http://test/api/2.3/sites/dad65087-b08b-4603-af4e-2887b8aafc67/workbooks"
30+ opts = TSC .RequestOptions (pagesize = 13 , pagenumber = 13 )
31+ opts .filter .add (TSC .Filter (TSC .RequestOptions .Field .Name , TSC .RequestOptions .Operator .Equals , "Superstore" ))
32+
33+ resp = server .workbooks .get_request (url , request_object = opts )
34+ query = parse_qs (resp .request .query )
35+ assert "pagenumber" in query
36+ assert query ["pagenumber" ] == ["13" ]
37+ assert "pagesize" in query
38+ assert query ["pagesize" ] == ["13" ]
39+ assert "filter" in query
40+ assert query ["filter" ] == ["name:eq:superstore" ]
4041
4142
4243def test_filter_equals_list () -> None :
@@ -93,50 +94,14 @@ def test_filter_combo(server: TSC.Server) -> None:
9394 )
9495 )
9596
96- resp = self .server .workbooks .get_request (url , request_object = opts )
97- query = parse_qs (resp .request .query )
98- assert "pagenumber" in query
99- assert query ["pagenumber" ] == ["13" ]
100- assert "pagesize" in query
101- assert query ["pagesize" ] == ["13" ]
102- assert "filter" in query
103- assert query ["filter" ] == ["tags:in:[stocks,market]" ]
97+ opts .filter .add (TSC .Filter (TSC .RequestOptions .Field .SiteRole , TSC .RequestOptions .Operator .Equals , "Publisher" ))
10498
10599 resp = server .workbooks .get_request (url , request_object = opts )
106100
107- resp = self .server .workbooks .get_request (url , request_object = opts )
108- query = parse_qs (resp .request .query )
109- assert "pagenumber" in query
110- assert query ["pagenumber" ] == ["13" ]
111- assert "pagesize" in query
112- assert query ["pagesize" ] == ["13" ]
113- assert "sort" in query
114- assert query ["sort" ] == ["name:asc" ]
115-
116- def test_filter_combo (self ):
117- with requests_mock .mock () as m :
118- m .get (requests_mock .ANY )
119- url = "http://test/api/2.3/sites/dad65087-b08b-4603-af4e-2887b8aafc67/users"
120- opts = TSC .RequestOptions (pagesize = 13 , pagenumber = 13 )
121-
122- opts .filter .add (
123- TSC .Filter (
124- TSC .RequestOptions .Field .LastLogin ,
125- TSC .RequestOptions .Operator .GreaterThanOrEqual ,
126- "2017-01-15T00:00:00:00Z" ,
127- )
128- )
129-
130- opts .filter .add (
131- TSC .Filter (TSC .RequestOptions .Field .SiteRole , TSC .RequestOptions .Operator .Equals , "Publisher" )
132- )
133-
134- resp = self .server .workbooks .get_request (url , request_object = opts )
135-
136- query = parse_qs (resp .request .query )
137- assert "pagenumber" in query
138- assert query ["pagenumber" ] == ["13" ]
139- assert "pagesize" in query
140- assert query ["pagesize" ] == ["13" ]
141- assert "filter" in query
142- assert query ["filter" ] == ["lastlogin:gte:2017-01-15t00:00:00:00z,siterole:eq:publisher" ]
101+ query = parse_qs (resp .request .query )
102+ assert "pagenumber" in query
103+ assert query ["pagenumber" ] == ["13" ]
104+ assert "pagesize" in query
105+ assert query ["pagesize" ] == ["13" ]
106+ assert "filter" in query
107+ assert query ["filter" ] == ["lastlogin:gte:2017-01-15t00:00:00:00z,siterole:eq:publisher" ]
0 commit comments