-
Notifications
You must be signed in to change notification settings - Fork 9
/
Copy pathtest_kwargs_parameters.py
73 lines (62 loc) · 2.21 KB
/
test_kwargs_parameters.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
import pytest
from psqlpy import ConnectionPool
from psqlpy.exceptions import (
PyToRustValueMappingError,
)
pytestmark = pytest.mark.anyio
async def test_success_default_map_parameters(
psql_pool: ConnectionPool,
table_name: str,
) -> None:
async with psql_pool.acquire() as conn:
exist_records = await conn.execute(
f"SELECT * FROM {table_name}",
)
result = exist_records.result()
test_fetch = await conn.execute(
f"SELECT * FROM {table_name} WHERE id = $(id_)p",
parameters={
"id_": result[0]["id"],
},
)
assert test_fetch.result()[0]["id"] == result[0]["id"]
assert test_fetch.result()[0]["name"] == result[0]["name"]
@pytest.mark.usefixtures("create_table_for_map_parameters_test")
async def test_success_multiple_same_parameters(
psql_pool: ConnectionPool,
map_parameters_table_name: str,
) -> None:
test_name_surname = "Surname"
test_age = 1
async with psql_pool.acquire() as conn:
await conn.execute(
querystring=(
f"INSERT INTO {map_parameters_table_name} "
"(name, surname, age) VALUES ($(name)p, $(surname)p, $(age)p)"
),
parameters={
"name": test_name_surname,
"surname": test_name_surname,
"age": test_age,
},
)
res = await conn.execute(
querystring=(
f"SELECT * FROM {map_parameters_table_name} "
"WHERE name = $(name)p OR surname = $(name)p"
),
parameters={"name": test_name_surname},
)
assert res.result()[0]["name"] == test_name_surname
assert res.result()[0]["surname"] == test_name_surname
assert res.result()[0]["age"] == test_age
async def test_failed_no_parameter(
psql_pool: ConnectionPool,
table_name: str,
) -> None:
async with psql_pool.acquire() as conn:
with pytest.raises(expected_exception=PyToRustValueMappingError):
await conn.execute(
querystring=(f"SELECT * FROM {table_name} WHERE name = $(name)p"), # noqa: ISC001
parameters={"mistake": "wow"},
)