pytest-databases 0.2.5__tar.gz → 0.3.0__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 (63) hide show
  1. {pytest_databases-0.2.5 → pytest_databases-0.3.0}/.pre-commit-config.yaml +1 -1
  2. {pytest_databases-0.2.5 → pytest_databases-0.3.0}/PKG-INFO +6 -5
  3. {pytest_databases-0.2.5 → pytest_databases-0.3.0}/README.md +4 -3
  4. {pytest_databases-0.2.5 → pytest_databases-0.3.0}/pyproject.toml +49 -5
  5. {pytest_databases-0.2.5 → pytest_databases-0.3.0}/requirements/requirements-dev.txt +42 -29
  6. {pytest_databases-0.2.5 → pytest_databases-0.3.0}/requirements/requirements-docs.txt +29 -22
  7. {pytest_databases-0.2.5 → pytest_databases-0.3.0}/src/pytest_databases/docker/__init__.py +5 -3
  8. pytest_databases-0.3.0/src/pytest_databases/docker/alloydb_omni.py +111 -0
  9. {pytest_databases-0.2.5 → pytest_databases-0.3.0}/src/pytest_databases/docker/cockroachdb.py +15 -1
  10. pytest_databases-0.3.0/src/pytest_databases/docker/docker-compose.alloydb-omni.yml +18 -0
  11. pytest_databases-0.3.0/src/pytest_databases/docker/docker-compose.cockroachdb.yml +19 -0
  12. pytest_databases-0.3.0/src/pytest_databases/docker/docker-compose.dragonfly.yml +18 -0
  13. pytest_databases-0.3.0/src/pytest_databases/docker/docker-compose.elasticsearch.yml +30 -0
  14. pytest_databases-0.3.0/src/pytest_databases/docker/docker-compose.keydb.yml +8 -0
  15. pytest_databases-0.3.0/src/pytest_databases/docker/docker-compose.mariadb.yml +17 -0
  16. pytest_databases-0.3.0/src/pytest_databases/docker/docker-compose.mssql.yml +15 -0
  17. pytest_databases-0.3.0/src/pytest_databases/docker/docker-compose.mysql.yml +43 -0
  18. pytest_databases-0.3.0/src/pytest_databases/docker/docker-compose.oracle.yml +24 -0
  19. pytest_databases-0.3.0/src/pytest_databases/docker/docker-compose.postgres.yml +44 -0
  20. pytest_databases-0.3.0/src/pytest_databases/docker/docker-compose.redis.yml +8 -0
  21. pytest_databases-0.3.0/src/pytest_databases/docker/docker-compose.spanner.yml +23 -0
  22. {pytest_databases-0.2.5 → pytest_databases-0.3.0}/src/pytest_databases/docker/dragonfly.py +23 -2
  23. {pytest_databases-0.2.5 → pytest_databases-0.3.0}/src/pytest_databases/docker/elastic_search.py +42 -2
  24. {pytest_databases-0.2.5 → pytest_databases-0.3.0}/src/pytest_databases/docker/keydb.py +23 -2
  25. {pytest_databases-0.2.5 → pytest_databases-0.3.0}/src/pytest_databases/docker/mariadb.py +14 -4
  26. {pytest_databases-0.2.5 → pytest_databases-0.3.0}/src/pytest_databases/docker/mssql.py +18 -8
  27. {pytest_databases-0.2.5 → pytest_databases-0.3.0}/src/pytest_databases/docker/mysql.py +21 -7
  28. {pytest_databases-0.2.5 → pytest_databases-0.3.0}/src/pytest_databases/docker/oracle.py +16 -4
  29. {pytest_databases-0.2.5 → pytest_databases-0.3.0}/src/pytest_databases/docker/postgres.py +22 -4
  30. {pytest_databases-0.2.5 → pytest_databases-0.3.0}/src/pytest_databases/docker/redis.py +23 -2
  31. {pytest_databases-0.2.5 → pytest_databases-0.3.0}/src/pytest_databases/docker/spanner.py +15 -1
  32. pytest_databases-0.3.0/tests/docker/test_alloydb_omni.py +70 -0
  33. {pytest_databases-0.2.5 → pytest_databases-0.3.0}/tests/docker/test_elasticsearch.py +6 -0
  34. {pytest_databases-0.2.5 → pytest_databases-0.3.0}/tests/docker/test_mariadb.py +2 -2
  35. {pytest_databases-0.2.5 → pytest_databases-0.3.0}/tests/docker/test_mssql.py +2 -2
  36. {pytest_databases-0.2.5 → pytest_databases-0.3.0}/tests/docker/test_mysql.py +2 -2
  37. {pytest_databases-0.2.5 → pytest_databases-0.3.0}/tests/docker/test_oracle.py +2 -2
  38. {pytest_databases-0.2.5 → pytest_databases-0.3.0}/tests/docker/test_postgres.py +2 -2
  39. pytest_databases-0.2.5/src/pytest_databases/docker/docker-compose.yml +0 -209
  40. {pytest_databases-0.2.5 → pytest_databases-0.3.0}/.gitignore +0 -0
  41. {pytest_databases-0.2.5 → pytest_databases-0.3.0}/.sourcery.yaml +0 -0
  42. {pytest_databases-0.2.5 → pytest_databases-0.3.0}/.vscode/settings.json +0 -0
  43. {pytest_databases-0.2.5 → pytest_databases-0.3.0}/CODEOWNERS +0 -0
  44. {pytest_databases-0.2.5 → pytest_databases-0.3.0}/CONTRIBUTING.rst +0 -0
  45. {pytest_databases-0.2.5 → pytest_databases-0.3.0}/LICENSE +0 -0
  46. {pytest_databases-0.2.5 → pytest_databases-0.3.0}/Makefile +0 -0
  47. {pytest_databases-0.2.5 → pytest_databases-0.3.0}/requirements/requirements.txt +0 -0
  48. {pytest_databases-0.2.5 → pytest_databases-0.3.0}/scripts/__init__.py +0 -0
  49. {pytest_databases-0.2.5 → pytest_databases-0.3.0}/scripts/build_docs.py +0 -0
  50. {pytest_databases-0.2.5 → pytest_databases-0.3.0}/scripts/convert_docs.sh +0 -0
  51. {pytest_databases-0.2.5 → pytest_databases-0.3.0}/sonar-project.properties +0 -0
  52. {pytest_databases-0.2.5 → pytest_databases-0.3.0}/src/pytest_databases/__init__.py +0 -0
  53. {pytest_databases-0.2.5 → pytest_databases-0.3.0}/src/pytest_databases/__metadata__.py +0 -0
  54. {pytest_databases-0.2.5 → pytest_databases-0.3.0}/src/pytest_databases/helpers.py +0 -0
  55. {pytest_databases-0.2.5 → pytest_databases-0.3.0}/src/pytest_databases/py.typed +0 -0
  56. {pytest_databases-0.2.5 → pytest_databases-0.3.0}/tests/__init__.py +0 -0
  57. {pytest_databases-0.2.5 → pytest_databases-0.3.0}/tests/conftest.py +0 -0
  58. {pytest_databases-0.2.5 → pytest_databases-0.3.0}/tests/docker/__init__.py +0 -0
  59. {pytest_databases-0.2.5 → pytest_databases-0.3.0}/tests/docker/test_cockroachdb.py +0 -0
  60. {pytest_databases-0.2.5 → pytest_databases-0.3.0}/tests/docker/test_dragonfly.py +0 -0
  61. {pytest_databases-0.2.5 → pytest_databases-0.3.0}/tests/docker/test_keydb.py +0 -0
  62. {pytest_databases-0.2.5 → pytest_databases-0.3.0}/tests/docker/test_redis.py +0 -0
  63. {pytest_databases-0.2.5 → pytest_databases-0.3.0}/tests/docker/test_spanner.py +0 -0
@@ -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.3.5" # make sure this is always consistent with hatch configs
22
+ rev: "v0.3.7" # 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.1
2
2
  Name: pytest-databases
3
- Version: 0.2.5
3
+ Version: 0.3.0
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
@@ -8,7 +8,7 @@ Project-URL: Source, https://github.com/litestar-org/pytest-databases
8
8
  Author-email: Cody Fincher <cody.fincher@gmail.com>
9
9
  License-Expression: MIT
10
10
  License-File: LICENSE
11
- Keywords: bigquery,cockroachdb,database,duckdb,elasticsearch,migration,mssql,mysql,oracle,postgres,redis,spanner
11
+ Keywords: alloydb,alloydbomni,bigquery,cockroachdb,database,duckdb,elasticsearch,migration,mssql,mysql,oracle,postgres,redis,spanner
12
12
  Classifier: Development Status :: 4 - Beta
13
13
  Classifier: Programming Language :: Python
14
14
  Classifier: Programming Language :: Python :: 3.8
@@ -65,8 +65,8 @@ Reusable test fixtures for any and all databases.
65
65
  | Project | | Status |
66
66
  |-----------|:----|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
67
67
  | CI/CD | | [![Latest Release](https://github.com/litestar-org/pytest-databases/actions/workflows/publish.yml/badge.svg)](https://github.com/litestar-org/pytest-databases/actions/workflows/publish.yml) [![ci](https://github.com/litestar-org/pytest-databases/actions/workflows/ci.yml/badge.svg)](https://github.com/litestar-org/pytest-databases/actions/workflows/ci.yml) [![Documentation Building](https://github.com/litestar-org/pytest-databases/actions/workflows/docs.yml/badge.svg?branch=main)](https://github.com/litestar-org/pytest-databases/actions/workflows/docs.yml) |
68
- | Quality | | [![Coverage](https://codecov.io/github/litestar-org/pytest-databases/graph/badge.svg?token=vKez4Pycrc)](https://codecov.io/github/litestar-org/pytest-databases) [![Quality Gate Status](https://sonarcloud.io/api/project_badges/measure?project=litestar-org_litestar&metric=alert_status)](https://sonarcloud.io/summary/new_code?id=litestar-org_litestar) [![Maintainability Rating](https://sonarcloud.io/api/project_badges/measure?project=litestar-org_litestar&metric=sqale_rating)](https://sonarcloud.io/summary/new_code?id=litestar-org_litestar) [![Reliability Rating](https://sonarcloud.io/api/project_badges/measure?project=litestar-org_litestar&metric=reliability_rating)](https://sonarcloud.io/summary/new_code?id=litestar-org_litestar) [![Security Rating](https://sonarcloud.io/api/project_badges/measure?project=litestar-org_litestar&metric=security_rating)](https://sonarcloud.io/summary/new_code?id=litestar-org_litestar) |
69
- | Package | | [![PyPI - Version](https://img.shields.io/pypi/v/litestar?labelColor=202235&color=edb641&logo=python&logoColor=edb641)](https://badge.fury.io/py/litestar) ![PyPI - Support Python Versions](https://img.shields.io/pypi/pyversions/litestar?labelColor=202235&color=edb641&logo=python&logoColor=edb641) ![Starlite PyPI - Downloads](https://img.shields.io/pypi/dm/starlite?logo=python&label=starlite%20downloads&labelColor=202235&color=edb641&logoColor=edb641) ![Litestar PyPI - Downloads](https://img.shields.io/pypi/dm/litestar?logo=python&label=litestar%20downloads&labelColor=202235&color=edb641&logoColor=edb641) |
68
+ | Quality | | [![Coverage](https://codecov.io/github/litestar-org/pytest-databases/graph/badge.svg?token=vKez4Pycrc)](https://codecov.io/github/litestar-org/pytest-databases) [![Quality Gate Status](https://sonarcloud.io/api/project_badges/measure?project=litestar-org_pytest_databases&metric=alert_status)](https://sonarcloud.io/summary/new_code?id=litestar-org_pytest_databases) [![Maintainability Rating](https://sonarcloud.io/api/project_badges/measure?project=litestar-org_pytest_databases&metric=sqale_rating)](https://sonarcloud.io/summary/new_code?id=litestar-org_pytest_databases) [![Reliability Rating](https://sonarcloud.io/api/project_badges/measure?project=litestar-org_pytest_databases&metric=reliability_rating)](https://sonarcloud.io/summary/new_code?id=litestar-org_pytest_databases) [![Security Rating](https://sonarcloud.io/api/project_badges/measure?project=litestar-org_pytest_databases&metric=security_rating)](https://sonarcloud.io/summary/new_code?id=litestar-org_pytest_databases) |
69
+ | Package | | [![PyPI - Version](https://img.shields.io/pypi/v/pytest-databases?labelColor=202235&color=edb641&logo=python&logoColor=edb641)](https://badge.fury.io/py/pytest-databases) ![PyPI - Support Python Versions](https://img.shields.io/pypi/pyversions/pytest-databases?labelColor=202235&color=edb641&logo=python&logoColor=edb641) |
70
70
  | Community | | [![Reddit](https://img.shields.io/reddit/subreddit-subscribers/litestarapi?label=r%2FLitestar&logo=reddit&labelColor=202235&color=edb641&logoColor=edb641)](https://reddit.com/r/litestarapi) [![Discord](https://img.shields.io/discord/919193495116337154?labelColor=202235&color=edb641&label=chat%20on%20discord&logo=discord&logoColor=edb641)](https://discord.gg/litestar-919193495116337154) [![Matrix](https://img.shields.io/badge/chat%20on%20Matrix-bridged-202235?labelColor=202235&color=edb641&logo=matrix&logoColor=edb641)](https://matrix.to/#/#litestar:matrix.org) [![Medium](https://img.shields.io/badge/Medium-202235?labelColor=202235&color=edb641&logo=medium&logoColor=edb641)](https://blog.litestar.dev) [![Twitter](https://img.shields.io/twitter/follow/LitestarAPI?labelColor=202235&color=edb641&logo=twitter&logoColor=edb641&style=flat)](https://twitter.com/LitestarAPI) [![Blog](https://img.shields.io/badge/Blog-litestar.dev-202235?logo=blogger&labelColor=202235&color=edb641&logoColor=edb641)](https://blog.litestar.dev) |
71
71
  | Meta | | [![Litestar Project](https://img.shields.io/badge/Litestar%20Org-%E2%AD%90%20Litestar-202235.svg?logo=python&labelColor=202235&color=edb641&logoColor=edb641)](https://github.com/litestar-org/pytest-databases) [![types - Mypy](https://img.shields.io/badge/types-Mypy-202235.svg?logo=python&labelColor=202235&color=edb641&logoColor=edb641)](https://github.com/python/mypy) [![License - MIT](https://img.shields.io/badge/license-MIT-202235.svg?logo=python&labelColor=202235&color=edb641&logoColor=edb641)](https://spdx.org/licenses/) [![Litestar Sponsors](https://img.shields.io/badge/Sponsor-%E2%9D%A4-%23edb641.svg?&logo=github&logoColor=edb641&labelColor=202235)](https://github.com/sponsors/litestar-org) [![linting - Ruff](https://img.shields.io/endpoint?url=https://raw.githubusercontent.com/charliermarsh/ruff/main/assets/badge/v2.json&labelColor=202235)](https://github.com/astral-sh/ruff) [![code style - Ruff](https://img.shields.io/endpoint?url=https://raw.githubusercontent.com/astral-sh/ruff/main/assets/badge/format.json&labelColor=202235)](https://github.com/psf/black)|
72
72
 
@@ -92,7 +92,8 @@ It is designed to offer pre-configured testing setups for many different types a
92
92
  - **MySQL**: Version 5.6, 5.7 and 8 are available
93
93
  - **Oracle**: Version 18c XE and 23C Free are available
94
94
  - **SQL Server**: Version 2022 is available
95
- - **Spanner**: The latest cloud-emulator from Google is available
95
+ - **Google AlloyDB Omni**: Simplified Omni installation for easy testing.
96
+ - **Google Spanner**: The latest cloud-emulator from Google is available
96
97
  - **Cockroach**: Version 23.1-latest is available
97
98
  - **Redis**: Latest server
98
99
  - **Dragonfly**: Latest server
@@ -17,8 +17,8 @@ Reusable test fixtures for any and all databases.
17
17
  | Project | | Status |
18
18
  |-----------|:----|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
19
19
  | CI/CD | | [![Latest Release](https://github.com/litestar-org/pytest-databases/actions/workflows/publish.yml/badge.svg)](https://github.com/litestar-org/pytest-databases/actions/workflows/publish.yml) [![ci](https://github.com/litestar-org/pytest-databases/actions/workflows/ci.yml/badge.svg)](https://github.com/litestar-org/pytest-databases/actions/workflows/ci.yml) [![Documentation Building](https://github.com/litestar-org/pytest-databases/actions/workflows/docs.yml/badge.svg?branch=main)](https://github.com/litestar-org/pytest-databases/actions/workflows/docs.yml) |
20
- | Quality | | [![Coverage](https://codecov.io/github/litestar-org/pytest-databases/graph/badge.svg?token=vKez4Pycrc)](https://codecov.io/github/litestar-org/pytest-databases) [![Quality Gate Status](https://sonarcloud.io/api/project_badges/measure?project=litestar-org_litestar&metric=alert_status)](https://sonarcloud.io/summary/new_code?id=litestar-org_litestar) [![Maintainability Rating](https://sonarcloud.io/api/project_badges/measure?project=litestar-org_litestar&metric=sqale_rating)](https://sonarcloud.io/summary/new_code?id=litestar-org_litestar) [![Reliability Rating](https://sonarcloud.io/api/project_badges/measure?project=litestar-org_litestar&metric=reliability_rating)](https://sonarcloud.io/summary/new_code?id=litestar-org_litestar) [![Security Rating](https://sonarcloud.io/api/project_badges/measure?project=litestar-org_litestar&metric=security_rating)](https://sonarcloud.io/summary/new_code?id=litestar-org_litestar) |
21
- | Package | | [![PyPI - Version](https://img.shields.io/pypi/v/litestar?labelColor=202235&color=edb641&logo=python&logoColor=edb641)](https://badge.fury.io/py/litestar) ![PyPI - Support Python Versions](https://img.shields.io/pypi/pyversions/litestar?labelColor=202235&color=edb641&logo=python&logoColor=edb641) ![Starlite PyPI - Downloads](https://img.shields.io/pypi/dm/starlite?logo=python&label=starlite%20downloads&labelColor=202235&color=edb641&logoColor=edb641) ![Litestar PyPI - Downloads](https://img.shields.io/pypi/dm/litestar?logo=python&label=litestar%20downloads&labelColor=202235&color=edb641&logoColor=edb641) |
20
+ | Quality | | [![Coverage](https://codecov.io/github/litestar-org/pytest-databases/graph/badge.svg?token=vKez4Pycrc)](https://codecov.io/github/litestar-org/pytest-databases) [![Quality Gate Status](https://sonarcloud.io/api/project_badges/measure?project=litestar-org_pytest_databases&metric=alert_status)](https://sonarcloud.io/summary/new_code?id=litestar-org_pytest_databases) [![Maintainability Rating](https://sonarcloud.io/api/project_badges/measure?project=litestar-org_pytest_databases&metric=sqale_rating)](https://sonarcloud.io/summary/new_code?id=litestar-org_pytest_databases) [![Reliability Rating](https://sonarcloud.io/api/project_badges/measure?project=litestar-org_pytest_databases&metric=reliability_rating)](https://sonarcloud.io/summary/new_code?id=litestar-org_pytest_databases) [![Security Rating](https://sonarcloud.io/api/project_badges/measure?project=litestar-org_pytest_databases&metric=security_rating)](https://sonarcloud.io/summary/new_code?id=litestar-org_pytest_databases) |
21
+ | Package | | [![PyPI - Version](https://img.shields.io/pypi/v/pytest-databases?labelColor=202235&color=edb641&logo=python&logoColor=edb641)](https://badge.fury.io/py/pytest-databases) ![PyPI - Support Python Versions](https://img.shields.io/pypi/pyversions/pytest-databases?labelColor=202235&color=edb641&logo=python&logoColor=edb641) |
22
22
  | Community | | [![Reddit](https://img.shields.io/reddit/subreddit-subscribers/litestarapi?label=r%2FLitestar&logo=reddit&labelColor=202235&color=edb641&logoColor=edb641)](https://reddit.com/r/litestarapi) [![Discord](https://img.shields.io/discord/919193495116337154?labelColor=202235&color=edb641&label=chat%20on%20discord&logo=discord&logoColor=edb641)](https://discord.gg/litestar-919193495116337154) [![Matrix](https://img.shields.io/badge/chat%20on%20Matrix-bridged-202235?labelColor=202235&color=edb641&logo=matrix&logoColor=edb641)](https://matrix.to/#/#litestar:matrix.org) [![Medium](https://img.shields.io/badge/Medium-202235?labelColor=202235&color=edb641&logo=medium&logoColor=edb641)](https://blog.litestar.dev) [![Twitter](https://img.shields.io/twitter/follow/LitestarAPI?labelColor=202235&color=edb641&logo=twitter&logoColor=edb641&style=flat)](https://twitter.com/LitestarAPI) [![Blog](https://img.shields.io/badge/Blog-litestar.dev-202235?logo=blogger&labelColor=202235&color=edb641&logoColor=edb641)](https://blog.litestar.dev) |
23
23
  | Meta | | [![Litestar Project](https://img.shields.io/badge/Litestar%20Org-%E2%AD%90%20Litestar-202235.svg?logo=python&labelColor=202235&color=edb641&logoColor=edb641)](https://github.com/litestar-org/pytest-databases) [![types - Mypy](https://img.shields.io/badge/types-Mypy-202235.svg?logo=python&labelColor=202235&color=edb641&logoColor=edb641)](https://github.com/python/mypy) [![License - MIT](https://img.shields.io/badge/license-MIT-202235.svg?logo=python&labelColor=202235&color=edb641&logoColor=edb641)](https://spdx.org/licenses/) [![Litestar Sponsors](https://img.shields.io/badge/Sponsor-%E2%9D%A4-%23edb641.svg?&logo=github&logoColor=edb641&labelColor=202235)](https://github.com/sponsors/litestar-org) [![linting - Ruff](https://img.shields.io/endpoint?url=https://raw.githubusercontent.com/charliermarsh/ruff/main/assets/badge/v2.json&labelColor=202235)](https://github.com/astral-sh/ruff) [![code style - Ruff](https://img.shields.io/endpoint?url=https://raw.githubusercontent.com/astral-sh/ruff/main/assets/badge/format.json&labelColor=202235)](https://github.com/psf/black)|
24
24
 
@@ -44,7 +44,8 @@ It is designed to offer pre-configured testing setups for many different types a
44
44
  - **MySQL**: Version 5.6, 5.7 and 8 are available
45
45
  - **Oracle**: Version 18c XE and 23C Free are available
46
46
  - **SQL Server**: Version 2022 is available
47
- - **Spanner**: The latest cloud-emulator from Google is available
47
+ - **Google AlloyDB Omni**: Simplified Omni installation for easy testing.
48
+ - **Google Spanner**: The latest cloud-emulator from Google is available
48
49
  - **Cockroach**: Version 23.1-latest is available
49
50
  - **Redis**: Latest server
50
51
  - **Dragonfly**: Latest server
@@ -12,7 +12,7 @@ license = "MIT"
12
12
  name = "pytest-databases"
13
13
  readme = "README.md"
14
14
  requires-python = ">=3.8"
15
- version = "0.2.5"
15
+ version = "0.3.0"
16
16
  #
17
17
  authors = [{ name = "Cody Fincher", email = "cody.fincher@gmail.com" }]
18
18
  keywords = [
@@ -25,6 +25,8 @@ keywords = [
25
25
  "duckdb",
26
26
  "bigquery",
27
27
  "spanner",
28
+ "alloydb",
29
+ "alloydbomni",
28
30
  "cockroachdb",
29
31
  "redis",
30
32
  "elasticsearch",
@@ -104,7 +106,18 @@ extra-dependencies = [
104
106
  "pytest-click",
105
107
  "pytest-xdist",
106
108
  ]
107
- features = ["oracle", "mysql", "mssql", "postgres", "spanner", "cockroachdb", "spanner", "redis", "elasticsearch7", "elasticsearch8"]
109
+ features = [
110
+ "oracle",
111
+ "mysql",
112
+ "mssql",
113
+ "postgres",
114
+ "spanner",
115
+ "cockroachdb",
116
+ "spanner",
117
+ "redis",
118
+ "elasticsearch7",
119
+ "elasticsearch8",
120
+ ]
108
121
  template = "default"
109
122
  type = "virtual"
110
123
 
@@ -150,7 +163,18 @@ extra-dependencies = [
150
163
  "sphinxcontrib-mermaid>=0.9.2",
151
164
  "auto-pytabs[sphinx]>=0.4.0",
152
165
  ]
153
- features = ["oracle", "mysql", "mssql", "postgres", "spanner", "cockroachdb", "spanner", "redis", "elasticsearch7", "elasticsearch8"]
166
+ features = [
167
+ "oracle",
168
+ "mysql",
169
+ "mssql",
170
+ "postgres",
171
+ "spanner",
172
+ "cockroachdb",
173
+ "spanner",
174
+ "redis",
175
+ "elasticsearch7",
176
+ "elasticsearch8",
177
+ ]
154
178
  lock-filename = "requirements/requirements-docs.txt"
155
179
  pip-compile-constraint = "default"
156
180
  python = "3.11"
@@ -211,7 +235,17 @@ extra-dependencies = [
211
235
  "types-docutils",
212
236
  "types-redis",
213
237
  ]
214
- features = ["oracle", "mysql", "mssql", "postgres", "cockroachdb", "spanner", "redis", "elasticsearch7", "elasticsearch8"]
238
+ features = [
239
+ "oracle",
240
+ "mysql",
241
+ "mssql",
242
+ "postgres",
243
+ "cockroachdb",
244
+ "spanner",
245
+ "redis",
246
+ "elasticsearch7",
247
+ "elasticsearch8",
248
+ ]
215
249
  lock-filename = "requirements/requirements-dev.txt"
216
250
  path = ".venv/"
217
251
  pip-compile-constraint = "docs"
@@ -239,7 +273,17 @@ extra-dependencies = [
239
273
  "types-docutils",
240
274
  "types-redis",
241
275
  ]
242
- features = ["oracle", "mysql", "mssql", "postgres", "spanner", "cockroachdb", "redis", "elasticsearch7", "elasticsearch8"]
276
+ features = [
277
+ "oracle",
278
+ "mysql",
279
+ "mssql",
280
+ "postgres",
281
+ "spanner",
282
+ "cockroachdb",
283
+ "redis",
284
+ "elasticsearch7",
285
+ "elasticsearch8",
286
+ ]
243
287
  python = "3.11"
244
288
  template = "docs"
245
289
 
@@ -1,7 +1,7 @@
1
1
  #
2
2
  # This file is autogenerated by hatch-pip-compile with Python 3.11
3
3
  #
4
- # [constraints] requirements/requirements-docs.txt (SHA256: 9f7a8dd3e4bc82266beb5962c0cb3e3f2c508a1a44d0bebc5413327ebc29c57c)
4
+ # [constraints] requirements/requirements-docs.txt (SHA256: bc66ec3f548a65764214d7adf74c74992465c90498f84a07b19b829ae70e0bfb)
5
5
  #
6
6
  # - nodeenv
7
7
  # - cython
@@ -51,7 +51,7 @@
51
51
 
52
52
  accessible-pygments==0.0.4
53
53
  # via pydata-sphinx-theme
54
- aiohttp==3.9.3
54
+ aiohttp==3.9.5
55
55
  # via
56
56
  # elasticsearch7
57
57
  # elasticsearch8
@@ -61,6 +61,9 @@ aiosignal==1.3.1
61
61
  alabaster==0.7.16
62
62
  # via sphinx
63
63
  anyio==4.3.0
64
+ # via
65
+ # starlette
66
+ # watchfiles
64
67
  apeye==1.4.1
65
68
  # via sphinx-toolbox
66
69
  apeye-core==1.1.5
@@ -68,9 +71,7 @@ apeye-core==1.1.5
68
71
  astroid==3.1.0
69
72
  # via pylint
70
73
  async-timeout==4.0.3
71
- # via
72
- # asyncpg
73
- # redis
74
+ # via asyncpg
74
75
  asyncmy==0.2.9
75
76
  asyncpg==0.29.0
76
77
  # via asyncpg-stubs
@@ -110,6 +111,7 @@ click==8.1.7
110
111
  # rich-click
111
112
  # shandy-sqlfmt
112
113
  # sphinx-click
114
+ # uvicorn
113
115
  colorama==0.4.6
114
116
  # via sphinx-autobuild
115
117
  coverage==7.4.4
@@ -130,7 +132,7 @@ dill==0.3.8
130
132
  # via pylint
131
133
  distlib==0.3.8
132
134
  # via virtualenv
133
- docutils==0.20.1
135
+ docutils==0.21.1
134
136
  # via
135
137
  # pydata-sphinx-theme
136
138
  # sphinx
@@ -144,11 +146,11 @@ domdf-python-tools==3.8.0.post2
144
146
  # apeye-core
145
147
  # dict2css
146
148
  # sphinx-toolbox
147
- duckdb==0.10.1
149
+ duckdb==0.10.2
148
150
  # via harlequin
149
151
  elastic-transport==8.13.0
150
152
  # via elasticsearch8
151
- elasticsearch7==7.17.9
153
+ elasticsearch7==7.9.1
152
154
  elasticsearch8==8.13.0
153
155
  execnet==2.1.1
154
156
  # via pytest-xdist
@@ -190,12 +192,14 @@ grpcio==1.62.1
190
192
  # grpcio-status
191
193
  grpcio-status==1.62.1
192
194
  # via google-api-core
193
- harlequin==1.16.2
195
+ h11==0.14.0
196
+ # via uvicorn
197
+ harlequin==1.17.0
194
198
  html5lib==1.1
195
199
  # via sphinx-toolbox
196
200
  identify==2.5.35
197
201
  # via pre-commit
198
- idna==3.6
202
+ idna==3.7
199
203
  # via
200
204
  # anyio
201
205
  # apeye-core
@@ -215,8 +219,6 @@ jinja2==3.1.3
215
219
  linkify-it-py==2.0.3
216
220
  # via markdown-it-py
217
221
  litestar-sphinx-theme @ git+https://github.com/litestar-org/litestar-sphinx-theme.git@c5ce66aadc8f910c24f54bf0d172798c237a67eb
218
- livereload==2.6.3
219
- # via sphinx-autobuild
220
222
  markdown-it-py==3.0.0
221
223
  # via
222
224
  # mdit-py-plugins
@@ -246,8 +248,10 @@ natsort==8.4.0
246
248
  nodeenv==1.8.0
247
249
  # via pre-commit
248
250
  numpy==1.26.4
249
- # via pyarrow
250
- oracledb==2.1.1
251
+ # via
252
+ # harlequin
253
+ # pyarrow
254
+ oracledb==2.1.2
251
255
  packaging==24.0
252
256
  # via
253
257
  # pydata-sphinx-theme
@@ -343,23 +347,21 @@ ruamel-yaml==0.18.6
343
347
  # via sphinx-toolbox
344
348
  ruamel-yaml-clib==0.2.8
345
349
  # via ruamel-yaml
346
- ruff==0.3.5
350
+ ruff==0.3.7
347
351
  # via auto-pytabs
348
- setuptools==69.2.0
352
+ setuptools==69.5.1
349
353
  # via nodeenv
350
354
  shandy-sqlfmt==0.21.2
351
355
  # via harlequin
352
356
  six==1.16.0
353
- # via
354
- # html5lib
355
- # livereload
357
+ # via html5lib
356
358
  sniffio==1.3.1
357
359
  # via anyio
358
360
  snowballstemmer==2.2.0
359
361
  # via sphinx
360
362
  soupsieve==2.5
361
363
  # via beautifulsoup4
362
- sphinx==7.2.6
364
+ sphinx==7.3.6
363
365
  # via
364
366
  # auto-pytabs
365
367
  # autodocsumm
@@ -372,8 +374,8 @@ sphinx==7.2.6
372
374
  # sphinx-prompt
373
375
  # sphinx-tabs
374
376
  # sphinx-toolbox
375
- sphinx-autobuild==2024.2.4
376
- sphinx-autodoc-typehints==2.0.0
377
+ sphinx-autobuild==2024.4.16
378
+ sphinx-autodoc-typehints==2.1.0
377
379
  # via sphinx-toolbox
378
380
  sphinx-click==5.1.0
379
381
  sphinx-copybutton==0.5.2
@@ -399,8 +401,10 @@ sphinxcontrib-qthelp==1.0.7
399
401
  # via sphinx
400
402
  sphinxcontrib-serializinghtml==1.1.10
401
403
  # via sphinx
402
- sqlparse==0.4.4
404
+ sqlparse==0.5.0
403
405
  # via google-cloud-spanner
406
+ starlette==0.37.2
407
+ # via sphinx-autobuild
404
408
  tabulate==0.9.0
405
409
  # via sphinx-toolbox
406
410
  termcolor==2.4.0
@@ -418,8 +422,6 @@ tomlkit==0.12.4
418
422
  # via
419
423
  # harlequin
420
424
  # pylint
421
- tornado==6.4
422
- # via livereload
423
425
  tqdm==4.66.2
424
426
  # via shandy-sqlfmt
425
427
  tree-sitter==0.20.4
@@ -430,13 +432,17 @@ tree-sitter-languages==1.9.1
430
432
  # via
431
433
  # textual
432
434
  # textual-textarea
435
+ types-cffi==1.16.0.20240331
436
+ # via types-pyopenssl
433
437
  types-click==7.1.8
434
438
  types-decorator==5.1.8.20240310
435
439
  types-docutils==0.20.0.20240406
436
- types-pyopenssl==24.0.0.20240311
440
+ types-pyopenssl==24.0.0.20240417
437
441
  # via types-redis
438
442
  types-pyyaml==6.0.12.20240311
439
- types-redis==4.6.0.20240409
443
+ types-redis==4.6.0.20240417
444
+ types-setuptools==69.5.0.20240415
445
+ # via types-cffi
440
446
  types-six==1.16.21.20240311
441
447
  typing-extensions==4.11.0
442
448
  # via
@@ -450,19 +456,25 @@ typing-extensions==4.11.0
450
456
  # textual
451
457
  uc-micro-py==1.0.3
452
458
  # via linkify-it-py
453
- urllib3==1.26.18
459
+ urllib3==2.2.1
454
460
  # via
455
461
  # elastic-transport
456
462
  # elasticsearch7
457
463
  # requests
464
+ uvicorn==0.29.0
465
+ # via sphinx-autobuild
458
466
  vcrpy==6.0.1
459
467
  # via pytest-vcr
460
- virtualenv==20.25.1
468
+ virtualenv==20.25.3
461
469
  # via pre-commit
470
+ watchfiles==0.21.0
471
+ # via sphinx-autobuild
462
472
  wcwidth==0.2.13
463
473
  # via prompt-toolkit
464
474
  webencodings==0.5.1
465
475
  # via html5lib
476
+ websockets==12.0
477
+ # via sphinx-autobuild
466
478
  wrapt==1.16.0
467
479
  # via
468
480
  # deprecated
@@ -470,4 +482,5 @@ wrapt==1.16.0
470
482
  yarl==1.9.4
471
483
  # via
472
484
  # aiohttp
485
+ # elasticsearch7
473
486
  # vcrpy
@@ -37,7 +37,7 @@
37
37
 
38
38
  accessible-pygments==0.0.4
39
39
  # via pydata-sphinx-theme
40
- aiohttp==3.9.3
40
+ aiohttp==3.9.5
41
41
  # via
42
42
  # elasticsearch7
43
43
  # elasticsearch8
@@ -47,14 +47,15 @@ aiosignal==1.3.1
47
47
  alabaster==0.7.16
48
48
  # via sphinx
49
49
  anyio==4.3.0
50
+ # via
51
+ # starlette
52
+ # watchfiles
50
53
  apeye==1.4.1
51
54
  # via sphinx-toolbox
52
55
  apeye-core==1.1.5
53
56
  # via apeye
54
57
  async-timeout==4.0.3
55
- # via
56
- # asyncpg
57
- # redis
58
+ # via asyncpg
58
59
  asyncmy==0.2.9
59
60
  asyncpg==0.29.0
60
61
  attrs==23.2.0
@@ -87,6 +88,7 @@ click==8.1.7
87
88
  # via
88
89
  # pytest-click
89
90
  # sphinx-click
91
+ # uvicorn
90
92
  colorama==0.4.6
91
93
  # via sphinx-autobuild
92
94
  coverage==7.4.4
@@ -100,7 +102,7 @@ deprecated==1.2.14
100
102
  # via google-cloud-spanner
101
103
  dict2css==0.3.0.post1
102
104
  # via sphinx-toolbox
103
- docutils==0.20.1
105
+ docutils==0.21.1
104
106
  # via
105
107
  # pydata-sphinx-theme
106
108
  # sphinx
@@ -116,7 +118,7 @@ domdf-python-tools==3.8.0.post2
116
118
  # sphinx-toolbox
117
119
  elastic-transport==8.13.0
118
120
  # via elasticsearch8
119
- elasticsearch7==7.17.9
121
+ elasticsearch7==7.9.1
120
122
  elasticsearch8==8.13.0
121
123
  execnet==2.1.1
122
124
  # via pytest-xdist
@@ -157,9 +159,11 @@ grpcio==1.62.1
157
159
  # grpcio-status
158
160
  grpcio-status==1.62.1
159
161
  # via google-api-core
162
+ h11==0.14.0
163
+ # via uvicorn
160
164
  html5lib==1.1
161
165
  # via sphinx-toolbox
162
- idna==3.6
166
+ idna==3.7
163
167
  # via
164
168
  # anyio
165
169
  # apeye-core
@@ -174,8 +178,6 @@ jinja2==3.1.3
174
178
  # sphinx
175
179
  # sphinx-jinja2-compat
176
180
  litestar-sphinx-theme @ git+https://github.com/litestar-org/litestar-sphinx-theme.git@c5ce66aadc8f910c24f54bf0d172798c237a67eb
177
- livereload==2.6.3
178
- # via sphinx-autobuild
179
181
  markupsafe==2.1.5
180
182
  # via
181
183
  # jinja2
@@ -189,7 +191,7 @@ multidict==6.0.5
189
191
  natsort==8.4.0
190
192
  # via domdf-python-tools
191
193
  nodeenv==1.8.0
192
- oracledb==2.1.1
194
+ oracledb==2.1.2
193
195
  packaging==24.0
194
196
  # via
195
197
  # pydata-sphinx-theme
@@ -261,21 +263,19 @@ ruamel-yaml==0.18.6
261
263
  # via sphinx-toolbox
262
264
  ruamel-yaml-clib==0.2.8
263
265
  # via ruamel-yaml
264
- ruff==0.3.5
266
+ ruff==0.3.7
265
267
  # via auto-pytabs
266
- setuptools==69.2.0
268
+ setuptools==69.5.1
267
269
  # via nodeenv
268
270
  six==1.16.0
269
- # via
270
- # html5lib
271
- # livereload
271
+ # via html5lib
272
272
  sniffio==1.3.1
273
273
  # via anyio
274
274
  snowballstemmer==2.2.0
275
275
  # via sphinx
276
276
  soupsieve==2.5
277
277
  # via beautifulsoup4
278
- sphinx==7.2.6
278
+ sphinx==7.3.6
279
279
  # via
280
280
  # auto-pytabs
281
281
  # autodocsumm
@@ -288,8 +288,8 @@ sphinx==7.2.6
288
288
  # sphinx-prompt
289
289
  # sphinx-tabs
290
290
  # sphinx-toolbox
291
- sphinx-autobuild==2024.2.4
292
- sphinx-autodoc-typehints==2.0.0
291
+ sphinx-autobuild==2024.4.16
292
+ sphinx-autodoc-typehints==2.1.0
293
293
  # via sphinx-toolbox
294
294
  sphinx-click==5.1.0
295
295
  sphinx-copybutton==0.5.2
@@ -315,29 +315,35 @@ sphinxcontrib-qthelp==1.0.7
315
315
  # via sphinx
316
316
  sphinxcontrib-serializinghtml==1.1.10
317
317
  # via sphinx
318
- sqlparse==0.4.4
318
+ sqlparse==0.5.0
319
319
  # via google-cloud-spanner
320
+ starlette==0.37.2
321
+ # via sphinx-autobuild
320
322
  tabulate==0.9.0
321
323
  # via sphinx-toolbox
322
324
  termcolor==2.4.0
323
325
  # via pytest-sugar
324
- tornado==6.4
325
- # via livereload
326
326
  typing-extensions==4.11.0
327
327
  # via
328
328
  # domdf-python-tools
329
329
  # psycopg
330
330
  # pydata-sphinx-theme
331
331
  # sphinx-toolbox
332
- urllib3==1.26.18
332
+ urllib3==2.2.1
333
333
  # via
334
334
  # elastic-transport
335
335
  # elasticsearch7
336
336
  # requests
337
+ uvicorn==0.29.0
338
+ # via sphinx-autobuild
337
339
  vcrpy==6.0.1
338
340
  # via pytest-vcr
341
+ watchfiles==0.21.0
342
+ # via sphinx-autobuild
339
343
  webencodings==0.5.1
340
344
  # via html5lib
345
+ websockets==12.0
346
+ # via sphinx-autobuild
341
347
  wrapt==1.16.0
342
348
  # via
343
349
  # deprecated
@@ -345,4 +351,5 @@ wrapt==1.16.0
345
351
  yarl==1.9.4
346
352
  # via
347
353
  # aiohttp
354
+ # elasticsearch7
348
355
  # vcrpy
@@ -29,7 +29,6 @@ import re
29
29
  import subprocess # noqa: S404
30
30
  import sys
31
31
  import timeit
32
- from pathlib import Path
33
32
  from typing import TYPE_CHECKING, Any, Callable
34
33
 
35
34
  import pytest
@@ -38,6 +37,7 @@ from pytest_databases.helpers import simple_string_hash, wrap_sync
38
37
 
39
38
  if TYPE_CHECKING:
40
39
  from collections.abc import Awaitable, Generator
40
+ from pathlib import Path
41
41
 
42
42
 
43
43
  async def wait_until_responsive(
@@ -76,9 +76,9 @@ class DockerServiceRegistry:
76
76
  self._running_services: set[str] = set()
77
77
  self.docker_ip = self._get_docker_ip()
78
78
  self._base_command = ["docker-compose"] if USE_LEGACY_DOCKER_COMPOSE else ["docker", "compose"]
79
+ self._compose_files: list[str] = []
79
80
  self._base_command.extend(
80
81
  [
81
- f"--file={Path(__file__).parent / 'docker-compose.yml'}",
82
82
  f"--project-name={compose_project_name}-{worker_id}",
83
83
  ],
84
84
  )
@@ -96,12 +96,13 @@ class DockerServiceRegistry:
96
96
  raise ValueError(msg)
97
97
 
98
98
  def run_command(self, *args: str) -> None:
99
- command = [*self._base_command, *args]
99
+ command = [*self._base_command, *self._compose_files, *args]
100
100
  subprocess.run(command, check=True, capture_output=True)
101
101
 
102
102
  async def start(
103
103
  self,
104
104
  name: str,
105
+ docker_compose_files: list[Path],
105
106
  *,
106
107
  check: Callable[..., Any],
107
108
  timeout: float = 30,
@@ -111,6 +112,7 @@ class DockerServiceRegistry:
111
112
  if SKIP_DOCKER_COMPOSE:
112
113
  self._running_services.add(name)
113
114
  if name not in self._running_services:
115
+ self._compose_files = [f"--file={compose_file}" for compose_file in docker_compose_files]
114
116
  self.run_command("up", "--force-recreate", "-d", name)
115
117
  self._running_services.add(name)
116
118