Skip to content

Commit bb894db

Browse files
jorwoodsjacalata
authored andcommitted
chore: pytestify sort (#1701)
* fix: black ci errors * chore: pytestify sort --------- Co-authored-by: Jordan Woods <13803242+jorwoods@users.noreply.github.com>
1 parent d7f5600 commit bb894db

File tree

1 file changed

+65
-30
lines changed

1 file changed

+65
-30
lines changed

test/test_sort.py

Lines changed: 65 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
1+
import re
2+
import unittest
13
from urllib.parse import parse_qs
24

35
import pytest
@@ -11,33 +13,30 @@ def server():
1113
"""Fixture to create a TSC.Server instance for testing."""
1214
server = TSC.Server("http://test", False)
1315

14-
# Fake signin
15-
server._site_id = "dad65087-b08b-4603-af4e-2887b8aafc67"
16-
server._auth_token = "j80k54ll2lfMZ0tv97mlPvvSCRyD0DOM"
16+
def test_empty_filter(self):
17+
with pytest.raises(TypeError):
18+
TSC.Filter("")
1719

1820
return server
1921

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"]
2030

21-
def test_empty_filter() -> None:
22-
with pytest.raises(TypeError):
23-
TSC.Filter("") # type: ignore
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"])
2434

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"]
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)
4140

4241

4342
def test_filter_equals_list() -> None:
@@ -94,14 +93,50 @@ def test_filter_combo(server: TSC.Server) -> None:
9493
)
9594
)
9695

97-
opts.filter.add(TSC.Filter(TSC.RequestOptions.Field.SiteRole, TSC.RequestOptions.Operator.Equals, "Publisher"))
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]"]
98104

99105
resp = server.workbooks.get_request(url, request_object=opts)
100106

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"]
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"]

0 commit comments

Comments
 (0)