Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Appearance settings
9 changes: 8 additions & 1 deletion 9 tableauserverclient/server/request_options.py
Original file line number Diff line number Diff line change
Expand Up @@ -387,7 +387,14 @@ def parameter(self, name: str, value: str) -> Self:
Self
The current object
"""
self.view_parameters.append((name, value))
prefix = "vf_Parameters."
jorwoods marked this conversation as resolved.
Show resolved Hide resolved
if name.startswith(prefix):
proper_name = name
elif name.startswith("Parameters."):
proper_name = f"vf_{name}"
jorwoods marked this conversation as resolved.
Show resolved Hide resolved
else:
proper_name = f"{prefix}{name}"
self.view_parameters.append((proper_name, value))
return self

def _append_view_filters(self, params) -> None:
Expand Down
22 changes: 18 additions & 4 deletions 22 test/test_request_option.py
Original file line number Diff line number Diff line change
Expand Up @@ -339,14 +339,25 @@ def test_filtering_parameters(server: TSC.Server) -> None:
opts = TSC.PDFRequestOptions()
opts.parameter("name1@", "value1")
opts.parameter("name2$", "value2")
opts.parameter("Parameters.name3", "value3")
opts.parameter("vf_Parameters.name4", "value4")
opts.page_type = TSC.PDFRequestOptions.PageType.Tabloid

# While Tableau Server side IS case sensitive with the query string,
# requiring the prefix to be "vf_Parameters", requests does not end
# up preserving the case sensitivity with the Response.Request
# object. It also shows up lowercased in the requests_mock request
# history.
resp = server.workbooks.get_request(url, request_object=opts)
query_params = parse_qs(resp.request.query)
assert "name1@" in query_params
assert "value1" in query_params["name1@"]
assert "name2$" in query_params
assert "value2" in query_params["name2$"]
assert "vf_parameters.name1@" in query_params
assert "value1" in query_params["vf_parameters.name1@"]
assert "vf_parameters.name2$" in query_params
assert "value2" in query_params["vf_parameters.name2$"]
assert "vf_parameters.name3" in query_params
assert "value3" in query_params["vf_parameters.name3"]
assert "vf_parameters.name4" in query_params
assert "value4" in query_params["vf_parameters.name4"]
assert "type" in query_params
assert "tabloid" in query_params["type"]

Expand All @@ -369,6 +380,9 @@ def test_queryset_endpoint_pagesize_filter(server: TSC.Server, page_size: int) -
_ = list(queryset)


44


@pytest.mark.parametrize("page_size", [1, 10, 100, 1_000])
def test_queryset_pagesize_filter(server: TSC.Server, page_size: int) -> None:
with requests_mock.mock() as m:
Expand Down
Loading
Morty Proxy This is a proxified and sanitized view of the page, visit original site.