Skip to content

Commit 6947a53

Browse files
fix: client is sending a body in a GET and HEAD requests (#562)
1 parent 9e7cca4 commit 6947a53

File tree

9 files changed

+14
-12
lines changed

9 files changed

+14
-12
lines changed

.github/workflows/ci.yml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -33,9 +33,11 @@ jobs:
3333
run: make run_tests
3434

3535
- name: Upload coverage to Coveralls
36+
if: ${{ matrix.python-version }} == "3.12"
3637
uses: coverallsapp/github-action@v2
3738
with:
3839
github-token: ${{ secrets.GITHUB_TOKEN }}
40+
fail-on-error: false
3941

4042
release-please:
4143
needs: test

postgrest/_async/request_builder.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,7 @@ def __init__(
4141
self.http_method = http_method
4242
self.headers = headers
4343
self.params = params
44-
self.json = json
44+
self.json = None if http_method in {"GET", "HEAD"} else json
4545

4646
async def execute(self) -> APIResponse[_ReturnT]:
4747
"""Execute the query.

postgrest/_sync/request_builder.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,7 @@ def __init__(
4141
self.http_method = http_method
4242
self.headers = headers
4343
self.params = params
44-
self.json = json
44+
self.json = None if http_method in {"GET", "HEAD"} else json
4545

4646
def execute(self) -> APIResponse[_ReturnT]:
4747
"""Execute the query.

tests/_async/test_filter_request_builder.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ def test_constructor(filter_request_builder: AsyncFilterRequestBuilder):
2020
assert len(builder.headers) == 0
2121
assert len(builder.params) == 0
2222
assert builder.http_method == "GET"
23-
assert builder.json == {}
23+
assert builder.json == None
2424
assert not builder.negate_next
2525

2626

tests/_async/test_query_request_builder.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,4 +20,4 @@ def test_constructor(query_request_builder: AsyncQueryRequestBuilder):
2020
assert len(builder.headers) == 0
2121
assert len(builder.params) == 0
2222
assert builder.http_method == "GET"
23-
assert builder.json == {}
23+
assert builder.json == None

tests/_async/test_request_builder.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -26,23 +26,23 @@ def test_select(self, request_builder: AsyncRequestBuilder):
2626
assert builder.params["select"] == "col1,col2"
2727
assert builder.headers.get("prefer") is None
2828
assert builder.http_method == "GET"
29-
assert builder.json == {}
29+
assert builder.json == None
3030

3131
def test_select_with_count(self, request_builder: AsyncRequestBuilder):
3232
builder = request_builder.select(count=CountMethod.exact)
3333

3434
assert builder.params["select"] == "*"
3535
assert builder.headers["prefer"] == "count=exact"
3636
assert builder.http_method == "GET"
37-
assert builder.json == {}
37+
assert builder.json == None
3838

3939
def test_select_with_head(self, request_builder: AsyncRequestBuilder):
4040
builder = request_builder.select("col1", "col2", head=True)
4141

4242
assert builder.params.get("select") == "col1,col2"
4343
assert builder.headers.get("prefer") is None
4444
assert builder.http_method == "HEAD"
45-
assert builder.json == {}
45+
assert builder.json == None
4646

4747
def test_select_as_csv(self, request_builder: AsyncRequestBuilder):
4848
builder = request_builder.select("*").csv()

tests/_sync/test_filter_request_builder.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ def test_constructor(filter_request_builder: SyncFilterRequestBuilder):
2020
assert len(builder.headers) == 0
2121
assert len(builder.params) == 0
2222
assert builder.http_method == "GET"
23-
assert builder.json == {}
23+
assert builder.json == None
2424
assert not builder.negate_next
2525

2626

tests/_sync/test_query_request_builder.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,4 +20,4 @@ def test_constructor(query_request_builder: SyncQueryRequestBuilder):
2020
assert len(builder.headers) == 0
2121
assert len(builder.params) == 0
2222
assert builder.http_method == "GET"
23-
assert builder.json == {}
23+
assert builder.json == None

tests/_sync/test_request_builder.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -26,23 +26,23 @@ def test_select(self, request_builder: SyncRequestBuilder):
2626
assert builder.params["select"] == "col1,col2"
2727
assert builder.headers.get("prefer") is None
2828
assert builder.http_method == "GET"
29-
assert builder.json == {}
29+
assert builder.json == None
3030

3131
def test_select_with_count(self, request_builder: SyncRequestBuilder):
3232
builder = request_builder.select(count=CountMethod.exact)
3333

3434
assert builder.params["select"] == "*"
3535
assert builder.headers["prefer"] == "count=exact"
3636
assert builder.http_method == "GET"
37-
assert builder.json == {}
37+
assert builder.json == None
3838

3939
def test_select_with_head(self, request_builder: SyncRequestBuilder):
4040
builder = request_builder.select("col1", "col2", head=True)
4141

4242
assert builder.params.get("select") == "col1,col2"
4343
assert builder.headers.get("prefer") is None
4444
assert builder.http_method == "HEAD"
45-
assert builder.json == {}
45+
assert builder.json == None
4646

4747
def test_select_as_csv(self, request_builder: SyncRequestBuilder):
4848
builder = request_builder.select("*").csv()

0 commit comments

Comments
 (0)