Skip to content

Commit 561548e

Browse files
anand2312joel@joellee.orgsourcery-ai[bot]
authored
chore: bump httpx to 0.24.1 (#277)
* fix: use new httpx parameter encoding in tests httpx changed how it formats query parameters in 0.24.0 - see here https://github.com/encode/httpx/blob/master/CHANGELOG.md#0240-6th-april-2023 * chore: bump version * 'Refactored by Sourcery' (#280) Co-authored-by: Sourcery AI <> --------- Co-authored-by: [email protected] <[email protected]> Co-authored-by: sourcery-ai[bot] <58596630+sourcery-ai[bot]@users.noreply.github.com>
1 parent abb074f commit 561548e

7 files changed

+48
-34
lines changed

poetry.lock

+14-17
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

postgrest/__init__.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
from __future__ import annotations
22

3-
__version__ = "0.10.7"
3+
__version__ = "0.10.8"
44

55
from httpx import Timeout
66

pyproject.toml

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
[tool.poetry]
22
name = "postgrest"
3-
version = "0.10.7"
3+
version = "0.10.8"
44
description = "PostgREST client for Python. This library provides an ORM interface to PostgREST."
55
authors = ["Lương Quang Mạnh <[email protected]>", "Joel Lee <[email protected]>", "Anand"]
66
homepage = "https://github.com/supabase-community/postgrest-py"
@@ -19,7 +19,7 @@ packages = [
1919

2020
[tool.poetry.dependencies]
2121
python = "^3.8"
22-
httpx = "^0.23.0"
22+
httpx = "^0.24.0"
2323
deprecation = "^2.1.0"
2424
pydantic = ">=2.1.0,<3.0"
2525
strenum = "^0.4.9"

tests/_async/test_filter_request_builder.py

+6-6
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,7 @@ def test_filter_special_characters(
4848
):
4949
builder = filter_request_builder.filter(col_name, "eq", "val")
5050

51-
assert str(builder.params) == expected_query_prefix + "=eq.val"
51+
assert str(builder.params) == f"{expected_query_prefix}=eq.val"
5252

5353

5454
def test_multivalued_param(filter_request_builder):
@@ -78,7 +78,7 @@ def test_contains_dictionary(filter_request_builder):
7878
builder = filter_request_builder.contains("x", {"a": "b"})
7979

8080
# {"a":"b"}
81-
assert str(builder.params) == "x=cs.%7B%22a%22%3A+%22b%22%7D"
81+
assert str(builder.params) == "x=cs.%7B%22a%22%3A%20%22b%22%7D"
8282

8383

8484
def test_contains_any_item(filter_request_builder):
@@ -91,12 +91,12 @@ def test_contains_any_item(filter_request_builder):
9191
def test_contains_in_list(filter_request_builder):
9292
builder = filter_request_builder.contains("x", '[{"a": "b"}]')
9393

94-
# [{"a":+"b"}] (the + represents the space)
95-
assert str(builder.params) == "x=cs.%5B%7B%22a%22%3A+%22b%22%7D%5D"
94+
# [{"a":%20"b"}] (the %20 represents the space)
95+
assert str(builder.params) == "x=cs.%5B%7B%22a%22%3A%20%22b%22%7D%5D"
9696

9797

9898
def test_contained_by_mixed_items(filter_request_builder):
9999
builder = filter_request_builder.contained_by("x", ["a", '["b", "c"]'])
100100

101-
# {a,["b",+"c"]}
102-
assert str(builder.params) == "x=cd.%7Ba%2C%5B%22b%22%2C+%22c%22%5D%7D"
101+
# {a,["b",%20"c"]}
102+
assert str(builder.params) == "x=cd.%7Ba%2C%5B%22b%22%2C%20%22c%22%5D%7D"

tests/_async/test_request_builder.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -124,7 +124,7 @@ def test_text_search(self, request_builder: AsyncRequestBuilder):
124124
"config": "english",
125125
},
126126
)
127-
assert "catchphrase=plfts%28english%29.%27fat%27+%26+%27cat%27" in str(
127+
assert "catchphrase=plfts%28english%29.%27fat%27%20%26%20%27cat%27" in str(
128128
builder.params
129129
)
130130

tests/_sync/test_filter_request_builder.py

+6-6
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,7 @@ def test_filter_special_characters(
4848
):
4949
builder = filter_request_builder.filter(col_name, "eq", "val")
5050

51-
assert str(builder.params) == expected_query_prefix + "=eq.val"
51+
assert str(builder.params) == f"{expected_query_prefix}=eq.val"
5252

5353

5454
def test_multivalued_param(filter_request_builder):
@@ -78,7 +78,7 @@ def test_contains_dictionary(filter_request_builder):
7878
builder = filter_request_builder.contains("x", {"a": "b"})
7979

8080
# {"a":"b"}
81-
assert str(builder.params) == "x=cs.%7B%22a%22%3A+%22b%22%7D"
81+
assert str(builder.params) == "x=cs.%7B%22a%22%3A%20%22b%22%7D"
8282

8383

8484
def test_contains_any_item(filter_request_builder):
@@ -91,12 +91,12 @@ def test_contains_any_item(filter_request_builder):
9191
def test_contains_in_list(filter_request_builder):
9292
builder = filter_request_builder.contains("x", '[{"a": "b"}]')
9393

94-
# [{"a":+"b"}] (the + represents the space)
95-
assert str(builder.params) == "x=cs.%5B%7B%22a%22%3A+%22b%22%7D%5D"
94+
# [{"a":%20"b"}] (the %20 represents the space)
95+
assert str(builder.params) == "x=cs.%5B%7B%22a%22%3A%20%22b%22%7D%5D"
9696

9797

9898
def test_contained_by_mixed_items(filter_request_builder):
9999
builder = filter_request_builder.contained_by("x", ["a", '["b", "c"]'])
100100

101-
# {a,["b",+"c"]}
102-
assert str(builder.params) == "x=cd.%7Ba%2C%5B%22b%22%2C+%22c%22%5D%7D"
101+
# {a,["b",%20"c"]}
102+
assert str(builder.params) == "x=cd.%7Ba%2C%5B%22b%22%2C%20%22c%22%5D%7D"

tests/_sync/test_request_builder.py

+18-1
Original file line numberDiff line numberDiff line change
@@ -124,11 +124,28 @@ def test_text_search(self, request_builder: SyncRequestBuilder):
124124
"config": "english",
125125
},
126126
)
127-
assert "catchphrase=plfts%28english%29.%27fat%27+%26+%27cat%27" in str(
127+
assert "catchphrase=plfts%28english%29.%27fat%27%20%26%20%27cat%27" in str(
128128
builder.params
129129
)
130130

131131

132+
class TestExplain:
133+
def test_explain_plain(self, request_builder: SyncRequestBuilder):
134+
builder = request_builder.select("*").explain()
135+
assert builder.params["select"] == "*"
136+
assert "application/vnd.pgrst.plan+" in str(builder.headers.get("accept"))
137+
138+
def test_explain_options(self, request_builder: SyncRequestBuilder):
139+
builder = request_builder.select("*").explain(
140+
format="json", analyze=True, verbose=True, buffers=True, wal=True
141+
)
142+
assert builder.params["select"] == "*"
143+
assert "application/vnd.pgrst.plan+json" in str(builder.headers.get("accept"))
144+
assert 'options="analyze|verbose|buffers|wal;' in str(
145+
builder.headers.get("accept")
146+
)
147+
148+
132149
@pytest.fixture
133150
def api_response_with_error() -> Dict[str, Any]:
134151
return {

0 commit comments

Comments
 (0)