Skip to content

Commit 4f0ed78

Browse files
committed
Add tests for RequestBuilder
1 parent 7d00675 commit 4f0ed78

File tree

2 files changed

+65
-2
lines changed

2 files changed

+65
-2
lines changed

tests/test_client.py

+1-2
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
import pytest
2-
from httpx import AsyncClient, Headers
3-
2+
from httpx import Headers
43
from postgrest_py import PostgrestClient
54

65

tests/test_request_builder.py

+64
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,64 @@
1+
import pytest
2+
from httpx import AsyncClient
3+
from postgrest_py.request_builder import RequestBuilder
4+
5+
6+
@pytest.fixture
7+
async def request_builder():
8+
async with AsyncClient() as client:
9+
yield RequestBuilder(client, "/example_table")
10+
11+
12+
@pytest.mark.asyncio
13+
def test_constructor(request_builder):
14+
assert request_builder.path == "/example_table"
15+
assert request_builder.json == {}
16+
assert request_builder.http_method == "GET"
17+
assert request_builder.negate_next == False
18+
19+
20+
def test_select(request_builder):
21+
request_builder.select("col1", "col2")
22+
23+
assert request_builder.session.params["select"] == "col1,col2"
24+
assert request_builder.http_method == "GET"
25+
26+
27+
class TestInsert:
28+
def test_insert(self, request_builder):
29+
request_builder.insert({"key1": "val1"})
30+
31+
assert request_builder.session.headers["prefer"] == "return=representation"
32+
assert request_builder.json == {"key1": "val1"}
33+
assert request_builder.http_method == "POST"
34+
35+
def test_upsert(self, request_builder):
36+
request_builder.insert({"key1": "val1"}, upsert=True)
37+
38+
assert (
39+
request_builder.session.headers["prefer"]
40+
== "return=representation,resolution=merge-duplicates"
41+
)
42+
assert request_builder.json == {"key1": "val1"}
43+
assert request_builder.http_method == "POST"
44+
45+
46+
def test_update(request_builder):
47+
request_builder.update({"key1": "val1"})
48+
49+
assert request_builder.session.headers["prefer"] == "return=representation"
50+
assert request_builder.json == {"key1": "val1"}
51+
assert request_builder.http_method == "PATCH"
52+
53+
54+
def test_delete(request_builder):
55+
request_builder.delete()
56+
57+
assert request_builder.http_method == "DELETE"
58+
59+
60+
@pytest.mark.asyncio
61+
def test_not_(request_builder):
62+
request_builder.not_
63+
64+
assert request_builder.negate_next == True

0 commit comments

Comments
 (0)