Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 2 additions & 1 deletion test/test_datasource.py
Original file line number Diff line number Diff line change
Expand Up @@ -895,7 +895,8 @@ def test_publish_description(server: TSC.Server) -> None:
ds_elem = body.find(".//datasource")
assert ds_elem is not None
assert ds_elem.attrib["description"] == "Sample description"



def test_get_datasource_no_owner(server: TSC.Server) -> None:
with requests_mock.mock() as m:
m.get(server.datasources.baseurl, text=GET_NO_OWNER.read_text())
Expand Down
65 changes: 33 additions & 32 deletions test/test_sort.py
Original file line number Diff line number Diff line change
@@ -1,6 +1,8 @@
import re
import unittest
from urllib.parse import parse_qs

import pytest
import requests_mock

import tableauserverclient as TSC
Expand All @@ -15,7 +17,8 @@ def setUp(self):
self.baseurl = self.server.workbooks.baseurl

def test_empty_filter(self):
self.assertRaises(TypeError, TSC.Filter, "")
with pytest.raises(TypeError):
TSC.Filter("")

def test_filter_equals(self):
with requests_mock.mock() as m:
Expand All @@ -25,17 +28,18 @@ def test_filter_equals(self):
opts.filter.add(TSC.Filter(TSC.RequestOptions.Field.Name, TSC.RequestOptions.Operator.Equals, "Superstore"))

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

self.assertTrue(re.search("pagenumber=13", resp.request.query))
self.assertTrue(re.search("pagesize=13", resp.request.query))
self.assertTrue(re.search("filter=name%3aeq%3asuperstore", resp.request.query))
query = parse_qs(resp.request.query)
assert "pagenumber" in query
assert query["pagenumber"] == ["13"]
assert "pagesize" in query
assert query["pagesize"] == ["13"]
assert "filter" in query
assert query["filter"] == ["name:eq:superstore"]

def test_filter_equals_list(self):
with self.assertRaises(ValueError) as cm:
with pytest.raises(ValueError, match="Filter values can only be a list if the operator is 'in'.") as cm:
TSC.Filter(TSC.RequestOptions.Field.Tags, TSC.RequestOptions.Operator.Equals, ["foo", "bar"])

self.assertEqual("Filter values can only be a list if the operator is 'in'.", str(cm.exception)),

def test_filter_in(self):
with requests_mock.mock() as m:
m.get(requests_mock.ANY)
Expand All @@ -47,9 +51,13 @@ def test_filter_in(self):
)

resp = self.server.workbooks.get_request(url, request_object=opts)
self.assertTrue(re.search("pagenumber=13", resp.request.query))
self.assertTrue(re.search("pagesize=13", resp.request.query))
self.assertTrue(re.search("filter=tags%3ain%3a%5bstocks%2cmarket%5d", resp.request.query))
query = parse_qs(resp.request.query)
assert "pagenumber" in query
assert query["pagenumber"] == ["13"]
assert "pagesize" in query
assert query["pagesize"] == ["13"]
assert "filter" in query
assert query["filter"] == ["tags:in:[stocks,market]"]

def test_sort_asc(self):
with requests_mock.mock() as m:
Expand All @@ -59,10 +67,13 @@ def test_sort_asc(self):
opts.sort.add(TSC.Sort(TSC.RequestOptions.Field.Name, TSC.RequestOptions.Direction.Asc))

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

self.assertTrue(re.search("pagenumber=13", resp.request.query))
self.assertTrue(re.search("pagesize=13", resp.request.query))
self.assertTrue(re.search("sort=name%3aasc", resp.request.query))
query = parse_qs(resp.request.query)
assert "pagenumber" in query
assert query["pagenumber"] == ["13"]
assert "pagesize" in query
assert query["pagesize"] == ["13"]
assert "sort" in query
assert query["sort"] == ["name:asc"]

def test_filter_combo(self):
with requests_mock.mock() as m:
Expand All @@ -84,20 +95,10 @@ def test_filter_combo(self):

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

expected = (
"pagenumber=13&pagesize=13&filter=lastlogin%3agte%3a"
"2017-01-15t00%3a00%3a00%3a00z%2csiterole%3aeq%3apublisher"
)

self.assertTrue(re.search("pagenumber=13", resp.request.query))
self.assertTrue(re.search("pagesize=13", resp.request.query))
self.assertTrue(
re.search(
"filter=lastlogin%3agte%3a2017-01-15t00%3a00%3a00%3a00z%2csiterole%3aeq%3apublisher",
resp.request.query,
)
)


if __name__ == "__main__":
unittest.main()
query = parse_qs(resp.request.query)
assert "pagenumber" in query
assert query["pagenumber"] == ["13"]
assert "pagesize" in query
assert query["pagesize"] == ["13"]
assert "filter" in query
assert query["filter"] == ["lastlogin:gte:2017-01-15t00:00:00:00z,siterole:eq:publisher"]
Loading