Skip to content

Commit 7ceb1be

Browse files
committed
fix init params test
1 parent bdc133b commit 7ceb1be

File tree

1 file changed

+25
-45
lines changed

1 file changed

+25
-45
lines changed

python/tests/test_transaction.py

Lines changed: 25 additions & 45 deletions
Original file line numberDiff line numberDiff line change
@@ -1,63 +1,43 @@
11
from __future__ import annotations
22

3-
import typing
4-
53
import pytest
64

75
from psqlpy import Cursor, IsolationLevel, PSQLPool, ReadVariant
86
from psqlpy.exceptions import DBTransactionError, RustPSQLDriverPyBaseError
97

108

119
@pytest.mark.anyio()
10+
@pytest.mark.parametrize(
11+
("isolation_level", "deferrable", "read_variant"),
12+
[
13+
(None, None, None),
14+
(IsolationLevel.ReadCommitted, True, ReadVariant.ReadOnly),
15+
(IsolationLevel.ReadUncommitted, False, ReadVariant.ReadWrite),
16+
(IsolationLevel.RepeatableRead, True, ReadVariant.ReadOnly),
17+
(IsolationLevel.Serializable, False, ReadVariant.ReadWrite),
18+
],
19+
)
1220
async def test_transaction_init_parameters(
1321
psql_pool: PSQLPool,
1422
table_name: str,
23+
isolation_level: IsolationLevel | None,
24+
deferrable: bool | None,
25+
read_variant: ReadVariant | None,
1526
) -> None:
1627
connection = await psql_pool.connection()
17-
18-
test_init_parameters: typing.Final[list[dict[str, typing.Any]]] = [
19-
{"isolation_level": None, "deferrable": None, "read_variant": None},
20-
{
21-
"isolation_level": IsolationLevel.ReadCommitted,
22-
"deferrable": True,
23-
"read_variant": ReadVariant.ReadOnly,
24-
},
25-
{
26-
"isolation_level": IsolationLevel.ReadUncommitted,
27-
"deferrable": False,
28-
"read_variant": ReadVariant.ReadWrite,
29-
},
30-
{
31-
"isolation_level": IsolationLevel.RepeatableRead,
32-
"deferrable": True,
33-
"read_variant": ReadVariant.ReadOnly,
34-
},
35-
{
36-
"isolation_level": IsolationLevel.Serializable,
37-
"deferrable": False,
38-
"read_variant": ReadVariant.ReadWrite,
39-
},
40-
]
41-
for init_parameters in test_init_parameters:
42-
insert_exception = None
43-
async with connection.transaction(
44-
isolation_level=init_parameters.get("isolation_level"),
45-
deferrable=init_parameters.get("deferrable"),
46-
read_variant=init_parameters.get("read_variant"),
47-
) as transaction:
48-
await transaction.execute("SELECT 1")
49-
try:
50-
await transaction.execute(
51-
f"INSERT INTO {table_name} VALUES ($1, $2)",
52-
parameters=[100, "test_name"],
53-
)
54-
except RustPSQLDriverPyBaseError as exception:
55-
insert_exception = exception
56-
57-
assert (
58-
insert_exception is None
59-
or init_parameters.get("read_variant") is ReadVariant.ReadOnly
28+
async with connection.transaction(
29+
isolation_level=isolation_level,
30+
deferrable=deferrable,
31+
read_variant=read_variant,
32+
) as transaction:
33+
await transaction.execute("SELECT 1")
34+
try:
35+
await transaction.execute(
36+
f"INSERT INTO {table_name} VALUES ($1, $2)",
37+
parameters=[100, "test_name"],
6038
)
39+
except RustPSQLDriverPyBaseError:
40+
assert read_variant is ReadVariant.ReadOnly
6141

6242

6343
@pytest.mark.anyio()

0 commit comments

Comments
 (0)