pytest-databases 0.17.0__tar.gz → 0.19.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 (119) hide show
  1. {pytest_databases-0.17.0 → pytest_databases-0.19.0}/.github/workflows/ci.yaml +59 -9
  2. {pytest_databases-0.17.0 → pytest_databases-0.19.0}/.github/workflows/docs.yml +2 -5
  3. {pytest_databases-0.17.0 → pytest_databases-0.19.0}/.github/workflows/release.yaml +0 -3
  4. {pytest_databases-0.17.0 → pytest_databases-0.19.0}/.gitignore +5 -0
  5. {pytest_databases-0.17.0 → pytest_databases-0.19.0}/.pre-commit-config.yaml +1 -1
  6. {pytest_databases-0.17.0 → pytest_databases-0.19.0}/PKG-INFO +2 -8
  7. pytest_databases-0.19.0/docs/changelog.rst +497 -0
  8. {pytest_databases-0.17.0 → pytest_databases-0.19.0}/docs/conf.py +3 -0
  9. {pytest_databases-0.17.0 → pytest_databases-0.19.0}/docs/getting-started/installation.rst +1 -1
  10. pytest_databases-0.19.0/docs/supported-databases/dolt.rst +64 -0
  11. {pytest_databases-0.17.0 → pytest_databases-0.19.0}/docs/supported-databases/index.rst +2 -0
  12. {pytest_databases-0.17.0 → pytest_databases-0.19.0}/docs/supported-databases/mariadb.rst +10 -18
  13. {pytest_databases-0.17.0 → pytest_databases-0.19.0}/docs/supported-databases/mysql.rst +12 -15
  14. pytest_databases-0.19.0/docs/supported-databases/postgres.rst +128 -0
  15. pytest_databases-0.19.0/docs/supported-databases/rustfs.rst +83 -0
  16. pytest_databases-0.19.0/docs/supported-databases/sqlserver.rst +48 -0
  17. {pytest_databases-0.17.0 → pytest_databases-0.19.0}/docs/supported-databases/yugabyte.rst +10 -9
  18. {pytest_databases-0.17.0 → pytest_databases-0.19.0}/pyproject.toml +8 -8
  19. {pytest_databases-0.17.0 → pytest_databases-0.19.0}/scripts/build_docs.py +4 -2
  20. {pytest_databases-0.17.0 → pytest_databases-0.19.0}/src/pytest_databases/_service.py +48 -23
  21. {pytest_databases-0.17.0 → pytest_databases-0.19.0}/src/pytest_databases/docker/azure_blob.py +1 -0
  22. {pytest_databases-0.17.0 → pytest_databases-0.19.0}/src/pytest_databases/docker/bigquery.py +1 -0
  23. {pytest_databases-0.17.0 → pytest_databases-0.19.0}/src/pytest_databases/docker/cockroachdb.py +1 -0
  24. pytest_databases-0.19.0/src/pytest_databases/docker/dolt.py +159 -0
  25. {pytest_databases-0.17.0 → pytest_databases-0.19.0}/src/pytest_databases/docker/elastic_search.py +1 -0
  26. {pytest_databases-0.17.0 → pytest_databases-0.19.0}/src/pytest_databases/docker/gizmosql.py +1 -0
  27. pytest_databases-0.19.0/src/pytest_databases/docker/mariadb.py +228 -0
  28. {pytest_databases-0.17.0 → pytest_databases-0.19.0}/src/pytest_databases/docker/minio.py +45 -22
  29. {pytest_databases-0.17.0 → pytest_databases-0.19.0}/src/pytest_databases/docker/mongodb.py +6 -1
  30. pytest_databases-0.19.0/src/pytest_databases/docker/mssql.py +227 -0
  31. pytest_databases-0.19.0/src/pytest_databases/docker/mysql.py +289 -0
  32. {pytest_databases-0.17.0 → pytest_databases-0.19.0}/src/pytest_databases/docker/oracle.py +1 -0
  33. pytest_databases-0.19.0/src/pytest_databases/docker/postgres.py +1231 -0
  34. {pytest_databases-0.17.0 → pytest_databases-0.19.0}/src/pytest_databases/docker/redis.py +18 -3
  35. pytest_databases-0.19.0/src/pytest_databases/docker/rustfs.py +148 -0
  36. {pytest_databases-0.17.0 → pytest_databases-0.19.0}/src/pytest_databases/docker/spanner.py +1 -0
  37. {pytest_databases-0.17.0 → pytest_databases-0.19.0}/src/pytest_databases/docker/valkey.py +6 -1
  38. pytest_databases-0.19.0/src/pytest_databases/docker/yugabyte.py +319 -0
  39. {pytest_databases-0.17.0 → pytest_databases-0.19.0}/src/pytest_databases/types.py +5 -1
  40. pytest_databases-0.19.0/tests/test_dolt.py +92 -0
  41. pytest_databases-0.19.0/tests/test_mariadb.py +96 -0
  42. pytest_databases-0.19.0/tests/test_minio.py +74 -0
  43. pytest_databases-0.19.0/tests/test_mssql.py +134 -0
  44. pytest_databases-0.19.0/tests/test_mysql.py +103 -0
  45. {pytest_databases-0.17.0 → pytest_databases-0.19.0}/tests/test_postgres.py +63 -0
  46. pytest_databases-0.19.0/tests/test_rustfs.py +90 -0
  47. pytest_databases-0.19.0/tests/test_rustfs_config.py +40 -0
  48. pytest_databases-0.19.0/tests/test_service_host_port.py +90 -0
  49. pytest_databases-0.19.0/tests/test_yugabyte.py +116 -0
  50. {pytest_databases-0.17.0 → pytest_databases-0.19.0}/uv.lock +2175 -1721
  51. pytest_databases-0.17.0/docs/changelog.rst +0 -4
  52. pytest_databases-0.17.0/docs/supported-databases/postgres.rst +0 -81
  53. pytest_databases-0.17.0/docs/supported-databases/sqlserver.rst +0 -59
  54. pytest_databases-0.17.0/src/pytest_databases/docker/mariadb.py +0 -140
  55. pytest_databases-0.17.0/src/pytest_databases/docker/mssql.py +0 -126
  56. pytest_databases-0.17.0/src/pytest_databases/docker/mysql.py +0 -207
  57. pytest_databases-0.17.0/src/pytest_databases/docker/postgres.py +0 -560
  58. pytest_databases-0.17.0/src/pytest_databases/docker/yugabyte.py +0 -96
  59. pytest_databases-0.17.0/tests/test_mariadb.py +0 -95
  60. pytest_databases-0.17.0/tests/test_minio.py +0 -85
  61. pytest_databases-0.17.0/tests/test_mssql.py +0 -121
  62. pytest_databases-0.17.0/tests/test_mysql.py +0 -95
  63. pytest_databases-0.17.0/tests/test_yugabyte.py +0 -106
  64. {pytest_databases-0.17.0 → pytest_databases-0.19.0}/.github/CODEOWNERS +0 -0
  65. {pytest_databases-0.17.0 → pytest_databases-0.19.0}/.github/dependabot.yaml +0 -0
  66. {pytest_databases-0.17.0 → pytest_databases-0.19.0}/.github/workflows/cd.yaml +0 -0
  67. {pytest_databases-0.17.0 → pytest_databases-0.19.0}/.github/workflows/pr-title.yaml +0 -0
  68. {pytest_databases-0.17.0 → pytest_databases-0.19.0}/.sourcery.yaml +0 -0
  69. {pytest_databases-0.17.0 → pytest_databases-0.19.0}/.vscode/launch.json +0 -0
  70. {pytest_databases-0.17.0 → pytest_databases-0.19.0}/.vscode/settings.json +0 -0
  71. {pytest_databases-0.17.0 → pytest_databases-0.19.0}/CODEOWNERS +0 -0
  72. {pytest_databases-0.17.0 → pytest_databases-0.19.0}/CONTRIBUTING.rst +0 -0
  73. {pytest_databases-0.17.0 → pytest_databases-0.19.0}/LICENSE +0 -0
  74. {pytest_databases-0.17.0 → pytest_databases-0.19.0}/Makefile +0 -0
  75. {pytest_databases-0.17.0 → pytest_databases-0.19.0}/README.md +0 -0
  76. {pytest_databases-0.17.0 → pytest_databases-0.19.0}/docs/.gitignore +0 -0
  77. {pytest_databases-0.17.0 → pytest_databases-0.19.0}/docs/__init__.py +0 -0
  78. {pytest_databases-0.17.0 → pytest_databases-0.19.0}/docs/_static/.gitkeep +0 -0
  79. {pytest_databases-0.17.0 → pytest_databases-0.19.0}/docs/_static/custom.css +0 -0
  80. {pytest_databases-0.17.0 → pytest_databases-0.19.0}/docs/_static/logo.svg +0 -0
  81. {pytest_databases-0.17.0 → pytest_databases-0.19.0}/docs/contribution-guide.rst +0 -0
  82. {pytest_databases-0.17.0 → pytest_databases-0.19.0}/docs/getting-started/basic-usage.rst +0 -0
  83. {pytest_databases-0.17.0 → pytest_databases-0.19.0}/docs/getting-started/configuration.rst +0 -0
  84. {pytest_databases-0.17.0 → pytest_databases-0.19.0}/docs/getting-started/enabling-plugins.rst +0 -0
  85. {pytest_databases-0.17.0 → pytest_databases-0.19.0}/docs/getting-started/index.rst +0 -0
  86. {pytest_databases-0.17.0 → pytest_databases-0.19.0}/docs/getting-started/next-steps.rst +0 -0
  87. {pytest_databases-0.17.0 → pytest_databases-0.19.0}/docs/index.rst +0 -0
  88. {pytest_databases-0.17.0 → pytest_databases-0.19.0}/docs/supported-databases/azure_blob_storage.rst +0 -0
  89. {pytest_databases-0.17.0 → pytest_databases-0.19.0}/docs/supported-databases/bigquery.rst +0 -0
  90. {pytest_databases-0.17.0 → pytest_databases-0.19.0}/docs/supported-databases/cockroachdb.rst +0 -0
  91. {pytest_databases-0.17.0 → pytest_databases-0.19.0}/docs/supported-databases/elasticsearch.rst +0 -0
  92. {pytest_databases-0.17.0 → pytest_databases-0.19.0}/docs/supported-databases/gizmosql.rst +0 -0
  93. {pytest_databases-0.17.0 → pytest_databases-0.19.0}/docs/supported-databases/minio.rst +0 -0
  94. {pytest_databases-0.17.0 → pytest_databases-0.19.0}/docs/supported-databases/mongodb.rst +0 -0
  95. {pytest_databases-0.17.0 → pytest_databases-0.19.0}/docs/supported-databases/oracle.rst +0 -0
  96. {pytest_databases-0.17.0 → pytest_databases-0.19.0}/docs/supported-databases/redis.rst +0 -0
  97. {pytest_databases-0.17.0 → pytest_databases-0.19.0}/docs/supported-databases/spanner.rst +0 -0
  98. {pytest_databases-0.17.0 → pytest_databases-0.19.0}/docs/supported-databases/valkey.rst +0 -0
  99. {pytest_databases-0.17.0 → pytest_databases-0.19.0}/scripts/__init__.py +0 -0
  100. {pytest_databases-0.17.0 → pytest_databases-0.19.0}/scripts/convert_docs.sh +0 -0
  101. {pytest_databases-0.17.0 → pytest_databases-0.19.0}/scripts/install-hatch.sh +0 -0
  102. {pytest_databases-0.17.0 → pytest_databases-0.19.0}/sonar-project.properties +0 -0
  103. {pytest_databases-0.17.0 → pytest_databases-0.19.0}/src/pytest_databases/__init__.py +0 -0
  104. {pytest_databases-0.17.0 → pytest_databases-0.19.0}/src/pytest_databases/__metadata__.py +0 -0
  105. {pytest_databases-0.17.0 → pytest_databases-0.19.0}/src/pytest_databases/docker/__init__.py +0 -0
  106. {pytest_databases-0.17.0 → pytest_databases-0.19.0}/src/pytest_databases/helpers.py +0 -0
  107. {pytest_databases-0.17.0 → pytest_databases-0.19.0}/src/pytest_databases/py.typed +0 -0
  108. {pytest_databases-0.17.0 → pytest_databases-0.19.0}/tests/__init__.py +0 -0
  109. {pytest_databases-0.17.0 → pytest_databases-0.19.0}/tests/conftest.py +0 -0
  110. {pytest_databases-0.17.0 → pytest_databases-0.19.0}/tests/test_azure_blob.py +0 -0
  111. {pytest_databases-0.17.0 → pytest_databases-0.19.0}/tests/test_bigquery.py +0 -0
  112. {pytest_databases-0.17.0 → pytest_databases-0.19.0}/tests/test_cockroachdb.py +0 -0
  113. {pytest_databases-0.17.0 → pytest_databases-0.19.0}/tests/test_elasticsearch.py +0 -0
  114. {pytest_databases-0.17.0 → pytest_databases-0.19.0}/tests/test_gizmosql.py +0 -0
  115. {pytest_databases-0.17.0 → pytest_databases-0.19.0}/tests/test_mongodb.py +0 -0
  116. {pytest_databases-0.17.0 → pytest_databases-0.19.0}/tests/test_oracle.py +0 -0
  117. {pytest_databases-0.17.0 → pytest_databases-0.19.0}/tests/test_redis.py +0 -0
  118. {pytest_databases-0.17.0 → pytest_databases-0.19.0}/tests/test_spanner.py +0 -0
  119. {pytest_databases-0.17.0 → pytest_databases-0.19.0}/tests/test_valkey.py +0 -0
@@ -18,19 +18,16 @@ jobs:
18
18
  test:
19
19
  name: Python ${{ matrix.python-version }} - ${{ matrix.cdist-group }}/3
20
20
  runs-on: ubuntu-latest
21
- timeout-minutes: 10
21
+ timeout-minutes: 15
22
22
  strategy:
23
23
  fail-fast: false
24
24
  matrix:
25
- python-version: ["3.9", "3.10", "3.11", "3.12"]
25
+ python-version: ["3.9", "3.10", "3.11", "3.12", "3.13", "3.14"]
26
26
  cdist-group: [1, 2, 3]
27
27
 
28
28
  steps:
29
29
  - uses: actions/checkout@v6
30
30
 
31
- - name: Install additional dependencies
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
-
34
31
  - name: Set up Python ${{ matrix.python-version }}
35
32
  uses: actions/setup-python@v6
36
33
  with:
@@ -42,6 +39,50 @@ jobs:
42
39
  - name: Intall dependencies
43
40
  run: uv sync --frozen --all-extras
44
41
 
42
+ # Pre-pull docker images with retry to absorb transient registry failures
43
+ # (MCR WAF blocks on mcr.microsoft.com, Docker Hub anonymous rate limits)
44
+ # before pytest starts spawning fixture subprocesses. Pull in parallel
45
+ # (-P 6) - sequential pulls of ~30 images cost 10+ min on a runner.
46
+ - name: Pre-pull docker images
47
+ run: |
48
+ set -u
49
+ images=(
50
+ "mcr.microsoft.com/azure-storage/azurite"
51
+ "mcr.microsoft.com/mssql/server:2022-latest"
52
+ "dolthub/dolt-sql-server:latest"
53
+ "postgres:11" "postgres:12" "postgres:13" "postgres:14"
54
+ "postgres:15" "postgres:16" "postgres:17" "postgres:18"
55
+ "pgvector/pgvector:pg15"
56
+ "paradedb/paradedb:0.21.5-pg16"
57
+ "google/alloydbomni:16"
58
+ "mysql:5.6" "mysql:5.7" "mysql:8"
59
+ "mariadb:11.3"
60
+ "gvenzl/oracle-free:23-slim-faststart"
61
+ "gvenzl/oracle-xe:18-slim-faststart"
62
+ "redis:latest"
63
+ "valkey/valkey:latest"
64
+ "mongo:latest"
65
+ "cockroachdb/cockroach:latest"
66
+ "software.yugabyte.com/yugabytedb/yugabyte:latest"
67
+ "quay.io/minio/minio"
68
+ "minio/mc:latest"
69
+ "rustfs/rustfs:latest"
70
+ "rustfs/rc:latest"
71
+ "gcr.io/cloud-spanner-emulator/emulator:latest"
72
+ "ghcr.io/goccy/bigquery-emulator:latest"
73
+ "gizmodata/gizmosql:latest"
74
+ )
75
+ printf '%s\n' "${images[@]}" | xargs -n1 -P6 -I{} bash -c '
76
+ image="$1"
77
+ for attempt in 1 2 3 4 5; do
78
+ if docker pull --quiet "$image"; then
79
+ exit 0
80
+ fi
81
+ [ "$attempt" -lt 5 ] && sleep $((attempt * attempt * 5))
82
+ done
83
+ echo "::warning::Failed to pull $image after 5 attempts"
84
+ ' _ {}
85
+
45
86
  - if: matrix.python-version == '3.12'
46
87
  name: Run tests with coverage tracking
47
88
  run: uv run pytest --cdist-group=${{ matrix.cdist-group }}/3 -k "not elasticsearch"
@@ -58,7 +99,7 @@ jobs:
58
99
 
59
100
  - if: matrix.python-version == '3.12'
60
101
  name: Upload coverage reports to Codecov
61
- uses: codecov/codecov-action@v5.5.2
102
+ uses: codecov/codecov-action@v6.0.1
62
103
  with:
63
104
  token: ${{ secrets.CODECOV_TOKEN }}
64
105
  slug: litestar-org/pytest-databases
@@ -67,9 +108,6 @@ jobs:
67
108
  test_elasticsearch:
68
109
  runs-on: ubuntu-latest
69
110
  steps:
70
- - name: Install additional dependencies
71
- run: sudo ACCEPT_EULA=Y apt-get install -y msodbcsql18 libmariadb-dev
72
-
73
111
  - uses: actions/checkout@v6
74
112
 
75
113
  - name: Set up Python
@@ -83,6 +121,18 @@ jobs:
83
121
  - name: Intall dependencies
84
122
  run: uv sync --frozen --all-extras
85
123
 
124
+ - name: Pre-pull docker images
125
+ run: |
126
+ set -u
127
+ for image in "elasticsearch:7.17.19" "elasticsearch:8.13.0"; do
128
+ for attempt in 1 2 3 4 5; do
129
+ if docker pull --quiet "$image"; then
130
+ break
131
+ fi
132
+ [ "$attempt" -eq 5 ] && echo "::warning::Failed to pull $image" || sleep $((attempt * attempt * 5))
133
+ done
134
+ done
135
+
86
136
  - name: Run tests with coverage tracking
87
137
  run: uv run pytest -k elasticsearch
88
138
 
@@ -22,9 +22,6 @@ jobs:
22
22
  steps:
23
23
  - uses: actions/checkout@v6
24
24
 
25
- - name: Install additional dependencies
26
- 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
27
-
28
25
  - name: Set up Python ${{ matrix.python-version }}
29
26
  uses: actions/setup-python@v6
30
27
  with:
@@ -43,10 +40,10 @@ jobs:
43
40
  run: uv run scripts/build_docs.py dist/docs
44
41
 
45
42
  - name: Upload artifact
46
- uses: actions/upload-pages-artifact@v4
43
+ uses: actions/upload-pages-artifact@v5
47
44
  with:
48
45
  path: dist/docs/
49
46
 
50
47
  - name: Deploy to GitHub Pages
51
48
  id: deployment
52
- uses: actions/deploy-pages@v4
49
+ uses: actions/deploy-pages@v5
@@ -12,9 +12,6 @@ jobs:
12
12
  id-token: write
13
13
  environment: release
14
14
  steps:
15
- - name: Install additional dependencies
16
- run: sudo ACCEPT_EULA=Y apt-get install -y msodbcsql18 libmariadb-dev
17
-
18
15
  - name: Check out repository
19
16
  uses: actions/checkout@v6
20
17
 
@@ -150,3 +150,8 @@ node_modules
150
150
  .astro
151
151
  .vite
152
152
  .npmrc
153
+ .agents/
154
+ .beads/
155
+ .gemini/
156
+ .claude/
157
+ .geminiignore
@@ -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.15.5" # make sure this is always consistent with hatch configs
22
+ rev: "v0.15.14" # 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.17.0
3
+ Version: 0.19.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@litestar.dev>
9
9
  License-Expression: MIT
10
10
  License-File: LICENSE
11
- Keywords: alloydb,alloydbomni,azure,bigquery,cockroachdb,database,dragonflydb,duckdb,elasticsearch,flightsql,gizmosql,migration,mongodb,mssql,mysql,oracle,postgres,redis,spanner,valkey
11
+ Keywords: alloydb,alloydbomni,azure,bigquery,cockroachdb,database,doltdb,dragonflydb,duckdb,elasticsearch,flightsql,gizmosql,migration,mongodb,mssql,mysql,oracle,postgres,redis,spanner,valkey
12
12
  Classifier: Development Status :: 4 - Beta
13
13
  Classifier: Programming Language :: Python
14
14
  Classifier: Programming Language :: Python :: 3.9
@@ -40,15 +40,10 @@ Requires-Dist: pyarrow; extra == 'gizmosql'
40
40
  Provides-Extra: keydb
41
41
  Requires-Dist: redis; extra == 'keydb'
42
42
  Provides-Extra: mariadb
43
- Requires-Dist: mariadb; extra == 'mariadb'
44
- Provides-Extra: minio
45
- Requires-Dist: minio; extra == 'minio'
46
43
  Provides-Extra: mongodb
47
44
  Requires-Dist: pymongo; extra == 'mongodb'
48
45
  Provides-Extra: mssql
49
- Requires-Dist: pymssql; extra == 'mssql'
50
46
  Provides-Extra: mysql
51
- Requires-Dist: mysql-connector-python; extra == 'mysql'
52
47
  Provides-Extra: oracle
53
48
  Requires-Dist: oracledb; extra == 'oracle'
54
49
  Provides-Extra: postgres
@@ -60,7 +55,6 @@ Requires-Dist: google-cloud-spanner; extra == 'spanner'
60
55
  Provides-Extra: valkey
61
56
  Requires-Dist: valkey; extra == 'valkey'
62
57
  Provides-Extra: yugabyte
63
- Requires-Dist: psycopg2-yugabytedb; extra == 'yugabyte'
64
58
  Description-Content-Type: text/markdown
65
59
 
66
60
  <!-- markdownlint-disable no-inline-html -->