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.
Files changed (59) hide show
  1. {pytest_databases-0.12.0 → pytest_databases-0.12.2}/.github/workflows/ci.yaml +1 -1
  2. {pytest_databases-0.12.0 → pytest_databases-0.12.2}/.pre-commit-config.yaml +1 -1
  3. {pytest_databases-0.12.0 → pytest_databases-0.12.2}/PKG-INFO +1 -1
  4. {pytest_databases-0.12.0 → pytest_databases-0.12.2}/pyproject.toml +2 -2
  5. {pytest_databases-0.12.0 → pytest_databases-0.12.2}/src/pytest_databases/docker/oracle.py +30 -6
  6. {pytest_databases-0.12.0 → pytest_databases-0.12.2}/src/pytest_databases/docker/postgres.py +72 -21
  7. {pytest_databases-0.12.0 → pytest_databases-0.12.2}/tests/test_oracle.py +9 -10
  8. {pytest_databases-0.12.0 → pytest_databases-0.12.2}/uv.lock +375 -353
  9. {pytest_databases-0.12.0 → pytest_databases-0.12.2}/.github/CODEOWNERS +0 -0
  10. {pytest_databases-0.12.0 → pytest_databases-0.12.2}/.github/dependabot.yaml +0 -0
  11. {pytest_databases-0.12.0 → pytest_databases-0.12.2}/.github/workflows/cd.yaml +0 -0
  12. {pytest_databases-0.12.0 → pytest_databases-0.12.2}/.github/workflows/pr-title.yaml +0 -0
  13. {pytest_databases-0.12.0 → pytest_databases-0.12.2}/.github/workflows/release.yaml +0 -0
  14. {pytest_databases-0.12.0 → pytest_databases-0.12.2}/.gitignore +0 -0
  15. {pytest_databases-0.12.0 → pytest_databases-0.12.2}/.sourcery.yaml +0 -0
  16. {pytest_databases-0.12.0 → pytest_databases-0.12.2}/.vscode/launch.json +0 -0
  17. {pytest_databases-0.12.0 → pytest_databases-0.12.2}/.vscode/settings.json +0 -0
  18. {pytest_databases-0.12.0 → pytest_databases-0.12.2}/CODEOWNERS +0 -0
  19. {pytest_databases-0.12.0 → pytest_databases-0.12.2}/CONTRIBUTING.rst +0 -0
  20. {pytest_databases-0.12.0 → pytest_databases-0.12.2}/LICENSE +0 -0
  21. {pytest_databases-0.12.0 → pytest_databases-0.12.2}/Makefile +0 -0
  22. {pytest_databases-0.12.0 → pytest_databases-0.12.2}/README.md +0 -0
  23. {pytest_databases-0.12.0 → pytest_databases-0.12.2}/scripts/__init__.py +0 -0
  24. {pytest_databases-0.12.0 → pytest_databases-0.12.2}/scripts/build_docs.py +0 -0
  25. {pytest_databases-0.12.0 → pytest_databases-0.12.2}/scripts/convert_docs.sh +0 -0
  26. {pytest_databases-0.12.0 → pytest_databases-0.12.2}/scripts/install-hatch.sh +0 -0
  27. {pytest_databases-0.12.0 → pytest_databases-0.12.2}/sonar-project.properties +0 -0
  28. {pytest_databases-0.12.0 → pytest_databases-0.12.2}/src/pytest_databases/__init__.py +0 -0
  29. {pytest_databases-0.12.0 → pytest_databases-0.12.2}/src/pytest_databases/__metadata__.py +0 -0
  30. {pytest_databases-0.12.0 → pytest_databases-0.12.2}/src/pytest_databases/_service.py +0 -0
  31. {pytest_databases-0.12.0 → pytest_databases-0.12.2}/src/pytest_databases/docker/__init__.py +0 -0
  32. {pytest_databases-0.12.0 → pytest_databases-0.12.2}/src/pytest_databases/docker/alloydb_omni.py +0 -0
  33. {pytest_databases-0.12.0 → pytest_databases-0.12.2}/src/pytest_databases/docker/azure_blob.py +0 -0
  34. {pytest_databases-0.12.0 → pytest_databases-0.12.2}/src/pytest_databases/docker/bigquery.py +0 -0
  35. {pytest_databases-0.12.0 → pytest_databases-0.12.2}/src/pytest_databases/docker/cockroachdb.py +0 -0
  36. {pytest_databases-0.12.0 → pytest_databases-0.12.2}/src/pytest_databases/docker/elastic_search.py +0 -0
  37. {pytest_databases-0.12.0 → pytest_databases-0.12.2}/src/pytest_databases/docker/mariadb.py +0 -0
  38. {pytest_databases-0.12.0 → pytest_databases-0.12.2}/src/pytest_databases/docker/minio.py +0 -0
  39. {pytest_databases-0.12.0 → pytest_databases-0.12.2}/src/pytest_databases/docker/mssql.py +0 -0
  40. {pytest_databases-0.12.0 → pytest_databases-0.12.2}/src/pytest_databases/docker/mysql.py +0 -0
  41. {pytest_databases-0.12.0 → pytest_databases-0.12.2}/src/pytest_databases/docker/redis.py +0 -0
  42. {pytest_databases-0.12.0 → pytest_databases-0.12.2}/src/pytest_databases/docker/spanner.py +0 -0
  43. {pytest_databases-0.12.0 → pytest_databases-0.12.2}/src/pytest_databases/helpers.py +0 -0
  44. {pytest_databases-0.12.0 → pytest_databases-0.12.2}/src/pytest_databases/py.typed +0 -0
  45. {pytest_databases-0.12.0 → pytest_databases-0.12.2}/src/pytest_databases/types.py +0 -0
  46. {pytest_databases-0.12.0 → pytest_databases-0.12.2}/tests/__init__.py +0 -0
  47. {pytest_databases-0.12.0 → pytest_databases-0.12.2}/tests/conftest.py +0 -0
  48. {pytest_databases-0.12.0 → pytest_databases-0.12.2}/tests/test_alloydb_omni.py +0 -0
  49. {pytest_databases-0.12.0 → pytest_databases-0.12.2}/tests/test_azure_blob.py +0 -0
  50. {pytest_databases-0.12.0 → pytest_databases-0.12.2}/tests/test_bigquery.py +0 -0
  51. {pytest_databases-0.12.0 → pytest_databases-0.12.2}/tests/test_cockroachdb.py +0 -0
  52. {pytest_databases-0.12.0 → pytest_databases-0.12.2}/tests/test_elasticsearch.py +0 -0
  53. {pytest_databases-0.12.0 → pytest_databases-0.12.2}/tests/test_mariadb.py +0 -0
  54. {pytest_databases-0.12.0 → pytest_databases-0.12.2}/tests/test_minio.py +0 -0
  55. {pytest_databases-0.12.0 → pytest_databases-0.12.2}/tests/test_mssql.py +0 -0
  56. {pytest_databases-0.12.0 → pytest_databases-0.12.2}/tests/test_mysql.py +0 -0
  57. {pytest_databases-0.12.0 → pytest_databases-0.12.2}/tests/test_postgres.py +0 -0
  58. {pytest_databases-0.12.0 → pytest_databases-0.12.2}/tests/test_redis.py +0 -0
  59. {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.2" # make sure this is always consistent with hatch configs
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.0
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.0"
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.0"
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 oracle_23ai_service(docker_service: DockerService) -> Generator[OracleService, None, None]:
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="gvenzl/oracle-free:23-slim-faststart",
122
+ image=oracle_23ai_image,
101
123
  name="oracle23ai",
102
- service_name="FREEPDB1",
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(docker_service: DockerService) -> Generator[OracleService, None, None]:
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="gvenzl/oracle-free:23-slim-faststart",
135
+ image=oracle_18c_image,
112
136
  name="oracle18c",
113
- service_name="xepdb1",
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
- dsn=f"{{{service_fixture}.host}}:{{{service_fixture}.port!s}}/{{{service_fixture}.service_name}}",
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 'Hello World!' FROM dual")
29
- res = cur.fetchall()[0][0]
30
- assert "Hello World!" in res
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