pytest-databases 0.12.0__tar.gz → 0.12.2__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {pytest_databases-0.12.0 → pytest_databases-0.12.2}/.github/workflows/ci.yaml +1 -1
- {pytest_databases-0.12.0 → pytest_databases-0.12.2}/.pre-commit-config.yaml +1 -1
- {pytest_databases-0.12.0 → pytest_databases-0.12.2}/PKG-INFO +1 -1
- {pytest_databases-0.12.0 → pytest_databases-0.12.2}/pyproject.toml +2 -2
- {pytest_databases-0.12.0 → pytest_databases-0.12.2}/src/pytest_databases/docker/oracle.py +30 -6
- {pytest_databases-0.12.0 → pytest_databases-0.12.2}/src/pytest_databases/docker/postgres.py +72 -21
- {pytest_databases-0.12.0 → pytest_databases-0.12.2}/tests/test_oracle.py +9 -10
- {pytest_databases-0.12.0 → pytest_databases-0.12.2}/uv.lock +375 -353
- {pytest_databases-0.12.0 → pytest_databases-0.12.2}/.github/CODEOWNERS +0 -0
- {pytest_databases-0.12.0 → pytest_databases-0.12.2}/.github/dependabot.yaml +0 -0
- {pytest_databases-0.12.0 → pytest_databases-0.12.2}/.github/workflows/cd.yaml +0 -0
- {pytest_databases-0.12.0 → pytest_databases-0.12.2}/.github/workflows/pr-title.yaml +0 -0
- {pytest_databases-0.12.0 → pytest_databases-0.12.2}/.github/workflows/release.yaml +0 -0
- {pytest_databases-0.12.0 → pytest_databases-0.12.2}/.gitignore +0 -0
- {pytest_databases-0.12.0 → pytest_databases-0.12.2}/.sourcery.yaml +0 -0
- {pytest_databases-0.12.0 → pytest_databases-0.12.2}/.vscode/launch.json +0 -0
- {pytest_databases-0.12.0 → pytest_databases-0.12.2}/.vscode/settings.json +0 -0
- {pytest_databases-0.12.0 → pytest_databases-0.12.2}/CODEOWNERS +0 -0
- {pytest_databases-0.12.0 → pytest_databases-0.12.2}/CONTRIBUTING.rst +0 -0
- {pytest_databases-0.12.0 → pytest_databases-0.12.2}/LICENSE +0 -0
- {pytest_databases-0.12.0 → pytest_databases-0.12.2}/Makefile +0 -0
- {pytest_databases-0.12.0 → pytest_databases-0.12.2}/README.md +0 -0
- {pytest_databases-0.12.0 → pytest_databases-0.12.2}/scripts/__init__.py +0 -0
- {pytest_databases-0.12.0 → pytest_databases-0.12.2}/scripts/build_docs.py +0 -0
- {pytest_databases-0.12.0 → pytest_databases-0.12.2}/scripts/convert_docs.sh +0 -0
- {pytest_databases-0.12.0 → pytest_databases-0.12.2}/scripts/install-hatch.sh +0 -0
- {pytest_databases-0.12.0 → pytest_databases-0.12.2}/sonar-project.properties +0 -0
- {pytest_databases-0.12.0 → pytest_databases-0.12.2}/src/pytest_databases/__init__.py +0 -0
- {pytest_databases-0.12.0 → pytest_databases-0.12.2}/src/pytest_databases/__metadata__.py +0 -0
- {pytest_databases-0.12.0 → pytest_databases-0.12.2}/src/pytest_databases/_service.py +0 -0
- {pytest_databases-0.12.0 → pytest_databases-0.12.2}/src/pytest_databases/docker/__init__.py +0 -0
- {pytest_databases-0.12.0 → pytest_databases-0.12.2}/src/pytest_databases/docker/alloydb_omni.py +0 -0
- {pytest_databases-0.12.0 → pytest_databases-0.12.2}/src/pytest_databases/docker/azure_blob.py +0 -0
- {pytest_databases-0.12.0 → pytest_databases-0.12.2}/src/pytest_databases/docker/bigquery.py +0 -0
- {pytest_databases-0.12.0 → pytest_databases-0.12.2}/src/pytest_databases/docker/cockroachdb.py +0 -0
- {pytest_databases-0.12.0 → pytest_databases-0.12.2}/src/pytest_databases/docker/elastic_search.py +0 -0
- {pytest_databases-0.12.0 → pytest_databases-0.12.2}/src/pytest_databases/docker/mariadb.py +0 -0
- {pytest_databases-0.12.0 → pytest_databases-0.12.2}/src/pytest_databases/docker/minio.py +0 -0
- {pytest_databases-0.12.0 → pytest_databases-0.12.2}/src/pytest_databases/docker/mssql.py +0 -0
- {pytest_databases-0.12.0 → pytest_databases-0.12.2}/src/pytest_databases/docker/mysql.py +0 -0
- {pytest_databases-0.12.0 → pytest_databases-0.12.2}/src/pytest_databases/docker/redis.py +0 -0
- {pytest_databases-0.12.0 → pytest_databases-0.12.2}/src/pytest_databases/docker/spanner.py +0 -0
- {pytest_databases-0.12.0 → pytest_databases-0.12.2}/src/pytest_databases/helpers.py +0 -0
- {pytest_databases-0.12.0 → pytest_databases-0.12.2}/src/pytest_databases/py.typed +0 -0
- {pytest_databases-0.12.0 → pytest_databases-0.12.2}/src/pytest_databases/types.py +0 -0
- {pytest_databases-0.12.0 → pytest_databases-0.12.2}/tests/__init__.py +0 -0
- {pytest_databases-0.12.0 → pytest_databases-0.12.2}/tests/conftest.py +0 -0
- {pytest_databases-0.12.0 → pytest_databases-0.12.2}/tests/test_alloydb_omni.py +0 -0
- {pytest_databases-0.12.0 → pytest_databases-0.12.2}/tests/test_azure_blob.py +0 -0
- {pytest_databases-0.12.0 → pytest_databases-0.12.2}/tests/test_bigquery.py +0 -0
- {pytest_databases-0.12.0 → pytest_databases-0.12.2}/tests/test_cockroachdb.py +0 -0
- {pytest_databases-0.12.0 → pytest_databases-0.12.2}/tests/test_elasticsearch.py +0 -0
- {pytest_databases-0.12.0 → pytest_databases-0.12.2}/tests/test_mariadb.py +0 -0
- {pytest_databases-0.12.0 → pytest_databases-0.12.2}/tests/test_minio.py +0 -0
- {pytest_databases-0.12.0 → pytest_databases-0.12.2}/tests/test_mssql.py +0 -0
- {pytest_databases-0.12.0 → pytest_databases-0.12.2}/tests/test_mysql.py +0 -0
- {pytest_databases-0.12.0 → pytest_databases-0.12.2}/tests/test_postgres.py +0 -0
- {pytest_databases-0.12.0 → pytest_databases-0.12.2}/tests/test_redis.py +0 -0
- {pytest_databases-0.12.0 → pytest_databases-0.12.2}/tests/test_spanner.py +0 -0
|
@@ -29,7 +29,7 @@ jobs:
|
|
|
29
29
|
- uses: actions/checkout@v4
|
|
30
30
|
|
|
31
31
|
- name: Install additional dependencies
|
|
32
|
-
run: sudo ACCEPT_EULA=Y apt-get install -y msodbcsql18 libmariadb-dev
|
|
32
|
+
run: sudo apt-get update && sudo ACCEPT_EULA=Y apt-get install -y msodbcsql18 libmariadb-dev && sudo apt-get autoremove -y && sudo apt-get clean -y
|
|
33
33
|
|
|
34
34
|
- name: Set up Python ${{ matrix.python-version }}
|
|
35
35
|
uses: actions/setup-python@v5
|
|
@@ -19,7 +19,7 @@ repos:
|
|
|
19
19
|
|
|
20
20
|
# Ruff replaces black, flake8, autoflake and isort
|
|
21
21
|
- repo: https://github.com/charliermarsh/ruff-pre-commit
|
|
22
|
-
rev: "v0.11.
|
|
22
|
+
rev: "v0.11.4" # make sure this is always consistent with hatch configs
|
|
23
23
|
hooks:
|
|
24
24
|
- id: ruff
|
|
25
25
|
args: [--config, ./pyproject.toml]
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: pytest-databases
|
|
3
|
-
Version: 0.12.
|
|
3
|
+
Version: 0.12.2
|
|
4
4
|
Summary: Reusable database fixtures for any and all databases.
|
|
5
5
|
Project-URL: Documentation, https://github.com/litestar-org/pytest-databases#readme
|
|
6
6
|
Project-URL: Issues, https://github.com/litestar-org/pytest-databases/issues
|
|
@@ -12,7 +12,7 @@ license = "MIT"
|
|
|
12
12
|
name = "pytest-databases"
|
|
13
13
|
readme = "README.md"
|
|
14
14
|
requires-python = ">=3.9"
|
|
15
|
-
version = "0.12.
|
|
15
|
+
version = "0.12.2"
|
|
16
16
|
#
|
|
17
17
|
authors = [{ name = "Cody Fincher", email = "cody@litestar.dev" }]
|
|
18
18
|
keywords = [
|
|
@@ -117,7 +117,7 @@ dev = [
|
|
|
117
117
|
allow_dirty = true
|
|
118
118
|
commit = true
|
|
119
119
|
commit_args = "--no-verify"
|
|
120
|
-
current_version = "0.12.
|
|
120
|
+
current_version = "0.12.2"
|
|
121
121
|
ignore_missing_files = false
|
|
122
122
|
ignore_missing_version = false
|
|
123
123
|
message = "chore(release): bump to v{new_version}"
|
|
@@ -95,22 +95,46 @@ def _provide_oracle_service(
|
|
|
95
95
|
|
|
96
96
|
|
|
97
97
|
@pytest.fixture(autouse=False, scope="session")
|
|
98
|
-
def
|
|
98
|
+
def oracle_23ai_image() -> str:
|
|
99
|
+
return "gvenzl/oracle-free:23-slim-faststart"
|
|
100
|
+
|
|
101
|
+
|
|
102
|
+
@pytest.fixture(autouse=False, scope="session")
|
|
103
|
+
def oracle_23ai_service_name() -> str:
|
|
104
|
+
return "FREEPDB1"
|
|
105
|
+
|
|
106
|
+
|
|
107
|
+
@pytest.fixture(autouse=False, scope="session")
|
|
108
|
+
def oracle_18c_image() -> str:
|
|
109
|
+
return "gvenzl/oracle-xe:18-slim-faststart"
|
|
110
|
+
|
|
111
|
+
|
|
112
|
+
@pytest.fixture(autouse=False, scope="session")
|
|
113
|
+
def oracle_18c_service_name() -> str:
|
|
114
|
+
return "xepdb1"
|
|
115
|
+
|
|
116
|
+
|
|
117
|
+
@pytest.fixture(autouse=False, scope="session")
|
|
118
|
+
def oracle_23ai_service(
|
|
119
|
+
docker_service: DockerService, oracle_23ai_image: str, oracle_23ai_service_name: str
|
|
120
|
+
) -> Generator[OracleService, None, None]:
|
|
99
121
|
with _provide_oracle_service(
|
|
100
|
-
image=
|
|
122
|
+
image=oracle_23ai_image,
|
|
101
123
|
name="oracle23ai",
|
|
102
|
-
service_name=
|
|
124
|
+
service_name=oracle_23ai_service_name,
|
|
103
125
|
docker_service=docker_service,
|
|
104
126
|
) as service:
|
|
105
127
|
yield service
|
|
106
128
|
|
|
107
129
|
|
|
108
130
|
@pytest.fixture(autouse=False, scope="session")
|
|
109
|
-
def oracle_18c_service(
|
|
131
|
+
def oracle_18c_service(
|
|
132
|
+
docker_service: DockerService, oracle_18c_image: str, oracle_18c_service_name: str
|
|
133
|
+
) -> Generator[OracleService, None, None]:
|
|
110
134
|
with _provide_oracle_service(
|
|
111
|
-
image=
|
|
135
|
+
image=oracle_18c_image,
|
|
112
136
|
name="oracle18c",
|
|
113
|
-
service_name=
|
|
137
|
+
service_name=oracle_18c_service_name,
|
|
114
138
|
docker_service=docker_service,
|
|
115
139
|
) as service:
|
|
116
140
|
yield service
|
|
@@ -182,27 +182,6 @@ def postgres_17_service(
|
|
|
182
182
|
yield service
|
|
183
183
|
|
|
184
184
|
|
|
185
|
-
@pytest.fixture(autouse=False, scope="session")
|
|
186
|
-
def postgres_service(postgres_17_service: PostgresService) -> PostgresService:
|
|
187
|
-
return postgres_17_service
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
@pytest.fixture(autouse=False, scope="session")
|
|
191
|
-
def postgres_connection(
|
|
192
|
-
postgres_service: PostgresService,
|
|
193
|
-
) -> Generator[psycopg.Connection, None, None]:
|
|
194
|
-
with psycopg.connect(
|
|
195
|
-
_make_connection_string(
|
|
196
|
-
host=postgres_service.host,
|
|
197
|
-
port=postgres_service.port,
|
|
198
|
-
user=postgres_service.user,
|
|
199
|
-
password=postgres_service.password,
|
|
200
|
-
database=postgres_service.database,
|
|
201
|
-
),
|
|
202
|
-
) as conn:
|
|
203
|
-
yield conn
|
|
204
|
-
|
|
205
|
-
|
|
206
185
|
@pytest.fixture(autouse=False, scope="session")
|
|
207
186
|
def postgres_11_connection(
|
|
208
187
|
postgres_11_service: PostgresService,
|
|
@@ -313,3 +292,75 @@ def postgres_17_connection(
|
|
|
313
292
|
),
|
|
314
293
|
) as conn:
|
|
315
294
|
yield conn
|
|
295
|
+
|
|
296
|
+
|
|
297
|
+
@pytest.fixture(autouse=False, scope="session")
|
|
298
|
+
def postgres_image() -> str:
|
|
299
|
+
return "postgres:17"
|
|
300
|
+
|
|
301
|
+
|
|
302
|
+
@pytest.fixture(autouse=False, scope="session")
|
|
303
|
+
def postgres_service(
|
|
304
|
+
docker_service: DockerService,
|
|
305
|
+
postgres_image: str,
|
|
306
|
+
xdist_postgres_isolation_level: XdistIsolationLevel,
|
|
307
|
+
) -> Generator[PostgresService, None, None]:
|
|
308
|
+
with _provide_postgres_service(
|
|
309
|
+
docker_service,
|
|
310
|
+
image=postgres_image,
|
|
311
|
+
name="postgres",
|
|
312
|
+
xdist_postgres_isolate=xdist_postgres_isolation_level,
|
|
313
|
+
) as service:
|
|
314
|
+
yield service
|
|
315
|
+
|
|
316
|
+
|
|
317
|
+
@pytest.fixture(autouse=False, scope="session")
|
|
318
|
+
def postgres_connection(
|
|
319
|
+
postgres_service: PostgresService,
|
|
320
|
+
) -> Generator[psycopg.Connection, None, None]:
|
|
321
|
+
with psycopg.connect(
|
|
322
|
+
_make_connection_string(
|
|
323
|
+
host=postgres_service.host,
|
|
324
|
+
port=postgres_service.port,
|
|
325
|
+
user=postgres_service.user,
|
|
326
|
+
password=postgres_service.password,
|
|
327
|
+
database=postgres_service.database,
|
|
328
|
+
),
|
|
329
|
+
) as conn:
|
|
330
|
+
yield conn
|
|
331
|
+
|
|
332
|
+
|
|
333
|
+
@pytest.fixture(autouse=False, scope="session")
|
|
334
|
+
def pgvector_image() -> str:
|
|
335
|
+
return "pgvector/pgvector:latest"
|
|
336
|
+
|
|
337
|
+
|
|
338
|
+
@pytest.fixture(autouse=False, scope="session")
|
|
339
|
+
def pgvector_service(
|
|
340
|
+
docker_service: DockerService,
|
|
341
|
+
pgvector_image: str,
|
|
342
|
+
xdist_postgres_isolation_level: XdistIsolationLevel,
|
|
343
|
+
) -> Generator[PostgresService, None, None]:
|
|
344
|
+
with _provide_postgres_service(
|
|
345
|
+
docker_service,
|
|
346
|
+
image=pgvector_image,
|
|
347
|
+
name="pgvector",
|
|
348
|
+
xdist_postgres_isolate=xdist_postgres_isolation_level,
|
|
349
|
+
) as service:
|
|
350
|
+
yield service
|
|
351
|
+
|
|
352
|
+
|
|
353
|
+
@pytest.fixture(autouse=False, scope="session")
|
|
354
|
+
def pgvector_connection(
|
|
355
|
+
pgvector_service: PostgresService,
|
|
356
|
+
) -> Generator[psycopg.Connection, None, None]:
|
|
357
|
+
with psycopg.connect(
|
|
358
|
+
_make_connection_string(
|
|
359
|
+
host=pgvector_service.host,
|
|
360
|
+
port=pgvector_service.port,
|
|
361
|
+
user=pgvector_service.user,
|
|
362
|
+
password=pgvector_service.password,
|
|
363
|
+
database=pgvector_service.database,
|
|
364
|
+
),
|
|
365
|
+
) as conn:
|
|
366
|
+
yield conn
|
|
@@ -2,15 +2,12 @@ from __future__ import annotations
|
|
|
2
2
|
|
|
3
3
|
import pytest
|
|
4
4
|
|
|
5
|
-
pytestmark = pytest.mark.skip()
|
|
6
|
-
|
|
7
5
|
|
|
8
6
|
@pytest.mark.parametrize(
|
|
9
7
|
"service_fixture",
|
|
10
8
|
[
|
|
11
9
|
"oracle_18c_service",
|
|
12
10
|
"oracle_23ai_service",
|
|
13
|
-
"oracle_23ai_service",
|
|
14
11
|
],
|
|
15
12
|
)
|
|
16
13
|
def test_service_fixture(pytester: pytest.Pytester, service_fixture: str) -> None:
|
|
@@ -20,21 +17,23 @@ def test_service_fixture(pytester: pytest.Pytester, service_fixture: str) -> Non
|
|
|
20
17
|
|
|
21
18
|
def test({service_fixture}):
|
|
22
19
|
conn = oracledb.connect(
|
|
23
|
-
user=service_fixture.user,
|
|
24
|
-
password=service_fixture.password,
|
|
25
|
-
|
|
20
|
+
user={service_fixture}.user,
|
|
21
|
+
password={service_fixture}.password,
|
|
22
|
+
service_name={service_fixture}.service_name,
|
|
23
|
+
host={service_fixture}.host,
|
|
24
|
+
port={service_fixture}.port,
|
|
26
25
|
)
|
|
27
26
|
with conn.cursor() as cur:
|
|
28
|
-
cur.execute("SELECT
|
|
29
|
-
res = cur.
|
|
30
|
-
assert
|
|
27
|
+
cur.execute("SELECT 1 FROM dual")
|
|
28
|
+
res = cur.fetchone()[0]
|
|
29
|
+
assert res == 1
|
|
31
30
|
""")
|
|
32
31
|
|
|
33
32
|
result = pytester.runpytest()
|
|
34
33
|
result.assert_outcomes(passed=1)
|
|
35
34
|
|
|
36
35
|
|
|
37
|
-
@pytest.mark.parametrize("connection_fixture", ["oracle_18c_connection"])
|
|
36
|
+
@pytest.mark.parametrize("connection_fixture", ["oracle_18c_connection", "oracle_23ai_connection"])
|
|
38
37
|
def test_connection_fixture(pytester: pytest.Pytester, connection_fixture: str) -> None:
|
|
39
38
|
pytester.makepyfile(f"""
|
|
40
39
|
import oracledb
|