pytest-databases 0.9.0__tar.gz → 0.11.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 (104) hide show
  1. pytest_databases-0.11.0/.github/CODEOWNERS +11 -0
  2. pytest_databases-0.11.0/.github/dependabot.yaml +6 -0
  3. pytest_databases-0.11.0/.github/workflows/cd.yaml +27 -0
  4. pytest_databases-0.11.0/.github/workflows/ci.yaml +112 -0
  5. pytest_databases-0.11.0/.github/workflows/pr-title.yaml +20 -0
  6. pytest_databases-0.11.0/.github/workflows/release.yaml +34 -0
  7. {pytest_databases-0.9.0 → pytest_databases-0.11.0}/.pre-commit-config.yaml +2 -2
  8. {pytest_databases-0.9.0 → pytest_databases-0.11.0}/.vscode/settings.json +0 -4
  9. pytest_databases-0.11.0/Makefile +216 -0
  10. {pytest_databases-0.9.0 → pytest_databases-0.11.0}/PKG-INFO +11 -7
  11. {pytest_databases-0.9.0 → pytest_databases-0.11.0}/README.md +1 -1
  12. {pytest_databases-0.9.0 → pytest_databases-0.11.0}/pyproject.toml +55 -340
  13. pytest_databases-0.11.0/src/pytest_databases/_service.py +260 -0
  14. {pytest_databases-0.9.0 → pytest_databases-0.11.0}/src/pytest_databases/docker/__init__.py +13 -2
  15. pytest_databases-0.11.0/src/pytest_databases/docker/alloydb_omni.py +65 -0
  16. pytest_databases-0.11.0/src/pytest_databases/docker/azure_blob.py +120 -0
  17. pytest_databases-0.11.0/src/pytest_databases/docker/bigquery.py +102 -0
  18. pytest_databases-0.11.0/src/pytest_databases/docker/cockroachdb.py +95 -0
  19. pytest_databases-0.11.0/src/pytest_databases/docker/elastic_search.py +134 -0
  20. pytest_databases-0.11.0/src/pytest_databases/docker/mariadb.py +139 -0
  21. pytest_databases-0.11.0/src/pytest_databases/docker/mssql.py +126 -0
  22. pytest_databases-0.11.0/src/pytest_databases/docker/mysql.py +193 -0
  23. pytest_databases-0.11.0/src/pytest_databases/docker/oracle.py +155 -0
  24. pytest_databases-0.11.0/src/pytest_databases/docker/postgres.py +315 -0
  25. pytest_databases-0.11.0/src/pytest_databases/docker/redis.py +76 -0
  26. pytest_databases-0.11.0/src/pytest_databases/docker/spanner.py +72 -0
  27. {pytest_databases-0.9.0 → pytest_databases-0.11.0}/src/pytest_databases/helpers.py +16 -0
  28. pytest_databases-0.11.0/src/pytest_databases/types.py +13 -0
  29. {pytest_databases-0.9.0 → pytest_databases-0.11.0}/tests/conftest.py +3 -4
  30. pytest_databases-0.11.0/tests/test_alloydb_omni.py +90 -0
  31. pytest_databases-0.11.0/tests/test_azure_blob.py +82 -0
  32. pytest_databases-0.11.0/tests/test_bigquery.py +60 -0
  33. pytest_databases-0.11.0/tests/test_cockroachdb.py +142 -0
  34. pytest_databases-0.11.0/tests/test_elasticsearch.py +60 -0
  35. pytest_databases-0.11.0/tests/test_mariadb.py +95 -0
  36. pytest_databases-0.11.0/tests/test_mssql.py +115 -0
  37. pytest_databases-0.11.0/tests/test_mysql.py +95 -0
  38. pytest_databases-0.11.0/tests/test_oracle.py +49 -0
  39. pytest_databases-0.11.0/tests/test_postgres.py +143 -0
  40. pytest_databases-0.11.0/tests/test_redis.py +112 -0
  41. pytest_databases-0.11.0/tests/test_spanner.py +49 -0
  42. pytest_databases-0.11.0/uv.lock +3448 -0
  43. pytest_databases-0.9.0/Makefile +0 -117
  44. pytest_databases-0.9.0/src/pytest_databases/docker/alloydb_omni.py +0 -139
  45. pytest_databases-0.9.0/src/pytest_databases/docker/azure_blob.py +0 -166
  46. pytest_databases-0.9.0/src/pytest_databases/docker/bigquery.py +0 -154
  47. pytest_databases-0.9.0/src/pytest_databases/docker/cockroachdb.py +0 -120
  48. pytest_databases-0.9.0/src/pytest_databases/docker/docker-compose.alloydb-omni.yml +0 -18
  49. pytest_databases-0.9.0/src/pytest_databases/docker/docker-compose.azurite.yml +0 -9
  50. pytest_databases-0.9.0/src/pytest_databases/docker/docker-compose.bigquery.yml +0 -18
  51. pytest_databases-0.9.0/src/pytest_databases/docker/docker-compose.cockroachdb.yml +0 -23
  52. pytest_databases-0.9.0/src/pytest_databases/docker/docker-compose.dragonfly.yml +0 -18
  53. pytest_databases-0.9.0/src/pytest_databases/docker/docker-compose.elasticsearch.yml +0 -30
  54. pytest_databases-0.9.0/src/pytest_databases/docker/docker-compose.keydb.yml +0 -8
  55. pytest_databases-0.9.0/src/pytest_databases/docker/docker-compose.mariadb.yml +0 -17
  56. pytest_databases-0.9.0/src/pytest_databases/docker/docker-compose.mssql.yml +0 -15
  57. pytest_databases-0.9.0/src/pytest_databases/docker/docker-compose.mysql.yml +0 -43
  58. pytest_databases-0.9.0/src/pytest_databases/docker/docker-compose.oracle.yml +0 -24
  59. pytest_databases-0.9.0/src/pytest_databases/docker/docker-compose.postgres.yml +0 -44
  60. pytest_databases-0.9.0/src/pytest_databases/docker/docker-compose.redis.yml +0 -8
  61. pytest_databases-0.9.0/src/pytest_databases/docker/docker-compose.spanner.yml +0 -23
  62. pytest_databases-0.9.0/src/pytest_databases/docker/docker-compose.valkey.yml +0 -8
  63. pytest_databases-0.9.0/src/pytest_databases/docker/dragonfly.py +0 -73
  64. pytest_databases-0.9.0/src/pytest_databases/docker/elastic_search.py +0 -179
  65. pytest_databases-0.9.0/src/pytest_databases/docker/keydb.py +0 -74
  66. pytest_databases-0.9.0/src/pytest_databases/docker/mariadb.py +0 -180
  67. pytest_databases-0.9.0/src/pytest_databases/docker/mssql.py +0 -205
  68. pytest_databases-0.9.0/src/pytest_databases/docker/mysql.py +0 -308
  69. pytest_databases-0.9.0/src/pytest_databases/docker/oracle.py +0 -260
  70. pytest_databases-0.9.0/src/pytest_databases/docker/postgres.py +0 -407
  71. pytest_databases-0.9.0/src/pytest_databases/docker/redis.py +0 -85
  72. pytest_databases-0.9.0/src/pytest_databases/docker/spanner.py +0 -145
  73. pytest_databases-0.9.0/src/pytest_databases/docker/valkey.py +0 -74
  74. pytest_databases-0.9.0/tests/docker/__init__.py +0 -0
  75. pytest_databases-0.9.0/tests/docker/test_alloydb_omni.py +0 -59
  76. pytest_databases-0.9.0/tests/docker/test_azure_blob.py +0 -9
  77. pytest_databases-0.9.0/tests/docker/test_bigquery.py +0 -58
  78. pytest_databases-0.9.0/tests/docker/test_cockroachdb.py +0 -43
  79. pytest_databases-0.9.0/tests/docker/test_dragonfly.py +0 -25
  80. pytest_databases-0.9.0/tests/docker/test_elasticsearch.py +0 -143
  81. pytest_databases-0.9.0/tests/docker/test_keydb.py +0 -25
  82. pytest_databases-0.9.0/tests/docker/test_mariadb.py +0 -95
  83. pytest_databases-0.9.0/tests/docker/test_mssql.py +0 -98
  84. pytest_databases-0.9.0/tests/docker/test_mysql.py +0 -156
  85. pytest_databases-0.9.0/tests/docker/test_oracle.py +0 -114
  86. pytest_databases-0.9.0/tests/docker/test_postgres.py +0 -236
  87. pytest_databases-0.9.0/tests/docker/test_redis.py +0 -25
  88. pytest_databases-0.9.0/tests/docker/test_spanner.py +0 -51
  89. pytest_databases-0.9.0/tests/docker/test_valkey.py +0 -26
  90. {pytest_databases-0.9.0 → pytest_databases-0.11.0}/.gitignore +0 -0
  91. {pytest_databases-0.9.0 → pytest_databases-0.11.0}/.sourcery.yaml +0 -0
  92. {pytest_databases-0.9.0 → pytest_databases-0.11.0}/.vscode/launch.json +0 -0
  93. {pytest_databases-0.9.0 → pytest_databases-0.11.0}/CODEOWNERS +0 -0
  94. {pytest_databases-0.9.0 → pytest_databases-0.11.0}/CONTRIBUTING.rst +0 -0
  95. {pytest_databases-0.9.0 → pytest_databases-0.11.0}/LICENSE +0 -0
  96. {pytest_databases-0.9.0 → pytest_databases-0.11.0}/scripts/__init__.py +0 -0
  97. {pytest_databases-0.9.0 → pytest_databases-0.11.0}/scripts/build_docs.py +0 -0
  98. {pytest_databases-0.9.0 → pytest_databases-0.11.0}/scripts/convert_docs.sh +0 -0
  99. {pytest_databases-0.9.0 → pytest_databases-0.11.0}/scripts/install-hatch.sh +0 -0
  100. {pytest_databases-0.9.0 → pytest_databases-0.11.0}/sonar-project.properties +0 -0
  101. {pytest_databases-0.9.0 → pytest_databases-0.11.0}/src/pytest_databases/__init__.py +0 -0
  102. {pytest_databases-0.9.0 → pytest_databases-0.11.0}/src/pytest_databases/__metadata__.py +0 -0
  103. {pytest_databases-0.9.0 → pytest_databases-0.11.0}/src/pytest_databases/py.typed +0 -0
  104. {pytest_databases-0.9.0 → pytest_databases-0.11.0}/tests/__init__.py +0 -0
@@ -0,0 +1,11 @@
1
+ # Code owner settings for `litestar-org`
2
+
3
+ # @maintainers should be assigned to all reviews
4
+
5
+ # Most specific assignment takes precedence though, so if you add a more specific thing than the `*` glob, you must also add @maintainers
6
+
7
+ # For more info about code owners see <https://docs.github.com/en/repositories/managing-your-repositorys-settings-and-features/customizing-your-repository/about-code-owners#codeowners-file-example>
8
+
9
+ # Global Assignment
10
+
11
+ * @litestar-org/maintainers @litestar-org/members
@@ -0,0 +1,6 @@
1
+ version: 2
2
+ updates:
3
+ - package-ecosystem: "github-actions"
4
+ directory: "/"
5
+ schedule:
6
+ interval: "daily"
@@ -0,0 +1,27 @@
1
+ name: Continuous Deployment
2
+
3
+ on:
4
+ push:
5
+ tags:
6
+ - "v*.*.*"
7
+
8
+ jobs:
9
+ generate-changelog:
10
+ name: Generate changelog
11
+ runs-on: ubuntu-22.04
12
+ outputs:
13
+ release_body: ${{ steps.git-cliff.outputs.content }}
14
+ steps:
15
+ - name: Checkout
16
+ uses: actions/checkout@v4
17
+ with:
18
+ fetch-depth: 0
19
+
20
+ - name: Generate a changelog
21
+ uses: orhun/git-cliff-action@main
22
+ id: git-cliff
23
+ with:
24
+ config: pyproject.toml
25
+ args: -vv --latest --strip header
26
+ env:
27
+ OUTPUT: docs/CHANGELOG.rst
@@ -0,0 +1,112 @@
1
+ name: Tests And Linting
2
+
3
+ on:
4
+ push:
5
+ branches:
6
+ - main
7
+ pull_request:
8
+
9
+ concurrency:
10
+ group: test-${{ github.head_ref }}
11
+ cancel-in-progress: true
12
+
13
+ env:
14
+ PYTHONUNBUFFERED: "1"
15
+ FORCE_COLOR: "1"
16
+
17
+ jobs:
18
+ test:
19
+ name: Python ${{ matrix.python-version }} - ${{ matrix.cdist-group }}/3
20
+ runs-on: ubuntu-latest
21
+ timeout-minutes: 10
22
+ strategy:
23
+ fail-fast: false
24
+ matrix:
25
+ python-version: ["3.9", "3.10", "3.11", "3.12"]
26
+ cdist-group: [1, 2, 3]
27
+
28
+ steps:
29
+ - uses: actions/checkout@v4
30
+
31
+ - name: Install additional dependencies
32
+ run: sudo ACCEPT_EULA=Y apt-get install -y msodbcsql18 libmariadb-dev
33
+
34
+ - name: Set up Python ${{ matrix.python-version }}
35
+ uses: actions/setup-python@v5
36
+ with:
37
+ python-version: ${{ matrix.python-version }}
38
+
39
+ - name: Install uv
40
+ uses: astral-sh/setup-uv@v5
41
+
42
+ - name: Intall dependencies
43
+ run: uv sync --frozen
44
+
45
+ - if: matrix.python-version == '3.12'
46
+ name: Run tests with coverage tracking
47
+ run: uv run pytest --cdist-group=${{ matrix.cdist-group }}/3 -k "not elasticsearch"
48
+
49
+ - if: matrix.python-version != '3.12'
50
+ name: Run tests without tracking coverage
51
+ run: uv run pytest --cdist-group=${{ matrix.cdist-group }}/3 -k "not elasticsearch"
52
+
53
+ - if: matrix.python-version == '3.12'
54
+ uses: actions/upload-artifact@v4
55
+ with:
56
+ name: coverage-xml
57
+ path: coverage.xml
58
+
59
+ - if: matrix.python-version == '3.12'
60
+ name: Upload coverage reports to Codecov
61
+ uses: codecov/codecov-action@v5.3.0
62
+ with:
63
+ token: ${{ secrets.CODECOV_TOKEN }}
64
+ slug: litestar-org/pytest-databases
65
+
66
+ # run elasticsearch in a separate step. it's too slow
67
+ test_elasticsearch:
68
+ runs-on: ubuntu-latest
69
+ steps:
70
+ - name: Install additional dependencies
71
+ run: sudo ACCEPT_EULA=Y apt-get install -y msodbcsql18 libmariadb-dev
72
+
73
+ - uses: actions/checkout@v4
74
+
75
+ - name: Set up Python
76
+ uses: actions/setup-python@v5
77
+ with:
78
+ python-version: 3.9
79
+
80
+ - name: Install uv
81
+ uses: astral-sh/setup-uv@v5
82
+
83
+ - name: Intall dependencies
84
+ run: uv sync --frozen
85
+
86
+ - name: Run tests with coverage tracking
87
+ run: uv run pytest -k elasticsearch
88
+
89
+ # sonar:
90
+ # needs:
91
+ # - test
92
+ # - test_elasticsearch
93
+ # if: github.event.pull_request.head.repo.fork == false && github.repository_owner == 'litestar-org'
94
+ # runs-on: ubuntu-latest
95
+ # steps:
96
+ # - name: Check out repository
97
+ # uses: actions/checkout@v4
98
+ # with:
99
+ # fetch-depth: 0 # Shallow clones should be disabled for a better relevancy of analysis
100
+ # - name: Download Artifacts
101
+ # uses: actions/download-artifact@v4
102
+ # with:
103
+ # name: coverage-xml
104
+
105
+ # - name: Fix coverage file for sonarcloud
106
+ # run: sed -i "s/home\/runner\/work\/pytest-databases\/pytest-databases/github\/workspace/g" coverage.xml
107
+
108
+ # - name: SonarCloud Scan
109
+ # uses: sonarsource/sonarcloud-github-action@master
110
+ # env:
111
+ # GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
112
+ # SONAR_TOKEN: ${{ secrets.SONAR_TOKEN }}
@@ -0,0 +1,20 @@
1
+ name: "Lint PR Title"
2
+
3
+ on:
4
+ pull_request_target:
5
+ types:
6
+ - opened
7
+ - edited
8
+ - synchronize
9
+
10
+ permissions:
11
+ pull-requests: read
12
+
13
+ jobs:
14
+ main:
15
+ name: Validate PR title
16
+ runs-on: ubuntu-latest
17
+ steps:
18
+ - uses: amannn/action-semantic-pull-request@v5
19
+ env:
20
+ GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
@@ -0,0 +1,34 @@
1
+ name: Latest Release
2
+
3
+ on:
4
+ release:
5
+ types: [published]
6
+ workflow_dispatch:
7
+
8
+ jobs:
9
+ publish-release:
10
+ runs-on: ubuntu-latest
11
+ permissions:
12
+ id-token: write
13
+ environment: release
14
+ steps:
15
+ - name: Install additional dependencies
16
+ run: sudo ACCEPT_EULA=Y apt-get install -y msodbcsql18 libmariadb-dev
17
+
18
+ - name: Check out repository
19
+ uses: actions/checkout@v4
20
+
21
+ - name: Install uv
22
+ uses: astral-sh/setup-uv@v5
23
+
24
+ - name: Set up Python
25
+ run: uv python install 3.12
26
+
27
+ - name: Install dependencies
28
+ run: uv sync --all-extras
29
+
30
+ - name: Build package
31
+ run: uv build
32
+
33
+ - name: Publish package distributions to PyPI
34
+ uses: pypa/gh-action-pypi-publish@release/v1
@@ -2,7 +2,7 @@ exclude: "^docs/conf.py"
2
2
 
3
3
  repos:
4
4
  - repo: https://github.com/pre-commit/pre-commit-hooks
5
- rev: v4.6.0
5
+ rev: v5.0.0
6
6
  hooks:
7
7
  - id: trailing-whitespace
8
8
  - id: check-added-large-files
@@ -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.5.6" # make sure this is always consistent with hatch configs
22
+ rev: "v0.9.6" # make sure this is always consistent with hatch configs
23
23
  hooks:
24
24
  - id: ruff
25
25
  args: [--config, ./pyproject.toml]
@@ -24,9 +24,6 @@
24
24
  "node_modules": true,
25
25
  ".terraform": true
26
26
  },
27
- "ruff.format.args": ["--config=${workspaceFolder}/pyproject.toml"],
28
- "ruff.lint.run": "onType",
29
- "ruff.lint.args": ["--config=${workspaceFolder}/pyproject.toml"],
30
27
  "mypy-type-checker.importStrategy": "fromEnvironment",
31
28
  "pylint.importStrategy": "fromEnvironment",
32
29
  "python.autoComplete.extraPaths": ["${workspaceFolder}/src"],
@@ -36,7 +33,6 @@
36
33
  "autoDocstring.guessTypes": false,
37
34
  "python.analysis.autoImportCompletions": true,
38
35
  "python.analysis.autoFormatStrings": true,
39
- "python.analysis.extraPaths": ["${workspaceFolder}/src"],
40
36
  "editor.formatOnSave": true,
41
37
  "notebook.formatOnSave.enabled": true,
42
38
  "black-formatter.args": ["--line-length=120"],
@@ -0,0 +1,216 @@
1
+ SHELL := /bin/bash
2
+
3
+ # =============================================================================
4
+ # Configuration and Environment Variables
5
+ # =============================================================================
6
+
7
+ .DEFAULT_GOAL:=help
8
+ .ONESHELL:
9
+ .EXPORT_ALL_VARIABLES:
10
+ MAKEFLAGS += --no-print-directory
11
+
12
+ # -----------------------------------------------------------------------------
13
+ # Display Formatting and Colors
14
+ # -----------------------------------------------------------------------------
15
+ BLUE := $(shell printf "\033[1;34m")
16
+ GREEN := $(shell printf "\033[1;32m")
17
+ RED := $(shell printf "\033[1;31m")
18
+ YELLOW := $(shell printf "\033[1;33m")
19
+ NC := $(shell printf "\033[0m")
20
+ INFO := $(shell printf "$(BLUE)ℹ$(NC)")
21
+ OK := $(shell printf "$(GREEN)✓$(NC)")
22
+ WARN := $(shell printf "$(YELLOW)⚠$(NC)")
23
+ ERROR := $(shell printf "$(RED)✖$(NC)")
24
+
25
+ # =============================================================================
26
+ # Help and Documentation
27
+ # =============================================================================
28
+
29
+ .PHONY: help
30
+ help: ## Display this help text for Makefile
31
+ @awk 'BEGIN {FS = ":.*##"; printf "\nUsage:\n make \033[36m<target>\033[0m\n"} /^[a-zA-Z0-9_-]+:.*?##/ { printf " \033[36m%-15s\033[0m %s\n", $$1, $$2 } /^##@/ { printf "\n\033[1m%s\033[0m\n", substr($$0, 5) } ' $(MAKEFILE_LIST)
32
+
33
+ # =============================================================================
34
+ # Installation and Environment Setup
35
+ # =============================================================================
36
+
37
+ .PHONY: install-uv
38
+ install-uv: ## Install latest version of uv
39
+ @echo "${INFO} Installing uv..."
40
+ @curl -LsSf https://astral.sh/uv/install.sh | sh >/dev/null 2>&1
41
+ @uv tool install nodeenv >/dev/null 2>&1
42
+ @echo "${OK} UV installed successfully"
43
+
44
+ .PHONY: install
45
+ install: destroy clean ## Install the project, dependencies, and pre-commit
46
+ @echo "${INFO} Starting fresh installation..."
47
+ @uv python pin 3.12 >/dev/null 2>&1
48
+ @uv venv >/dev/null 2>&1
49
+ @uv sync --all-extras --dev
50
+ @echo "${OK} Installation complete! 🎉"
51
+
52
+ .PHONY: destroy
53
+ destroy: ## Destroy the virtual environment
54
+ @echo "${INFO} Destroying virtual environment... 🗑️"
55
+ @rm -rf .venv
56
+ @echo "${OK} Virtual environment destroyed 🗑️"
57
+
58
+ # =============================================================================
59
+ # Dependency Management
60
+ # =============================================================================
61
+
62
+ .PHONY: upgrade
63
+ upgrade: ## Upgrade all dependencies to latest stable versions
64
+ @echo "${INFO} Updating all dependencies... 🔄"
65
+ @uv lock --upgrade
66
+ @echo "${OK} Dependencies updated 🔄"
67
+ @uv run pre-commit autoupdate
68
+ @echo "${OK} Updated Pre-commit hooks 🔄"
69
+
70
+ .PHONY: lock
71
+ lock: ## Rebuild lockfiles from scratch
72
+ @echo "${INFO} Rebuilding lockfiles... 🔄"
73
+ @uv lock --upgrade >/dev/null 2>&1
74
+ @echo "${OK} Lockfiles updated"
75
+
76
+ # =============================================================================
77
+ # Build and Release
78
+ # =============================================================================
79
+
80
+ .PHONY: build
81
+ build: ## Build the package
82
+ @echo "${INFO} Building package... 📦"
83
+ @uv build >/dev/null 2>&1
84
+ @echo "${OK} Package build complete"
85
+
86
+ .PHONY: release
87
+ release: ## Bump version and create release tag
88
+ @echo "${INFO} Preparing for release... 📦"
89
+ @make docs
90
+ @make clean
91
+ @make build
92
+ @uv lock --upgrade-package pytest-databases
93
+ @uv run bump-my-version bump $(bump)
94
+ @echo "${OK} Release complete 🎉"
95
+
96
+ # =============================================================================
97
+ # Cleaning and Maintenance
98
+ # =============================================================================
99
+
100
+ .PHONY: clean
101
+ clean: ## Cleanup temporary build artifacts
102
+ @echo "${INFO} Cleaning working directory... 🧹"
103
+ @rm -rf .pytest_cache .ruff_cache .hypothesis build/ dist/ .eggs/ .coverage coverage.xml coverage.json htmlcov/ .pytest_cache tests/.pytest_cache tests/**/.pytest_cache .mypy_cache .unasyncd_cache/ .auto_pytabs_cache node_modules >/dev/null 2>&1
104
+ @find . -name '*.egg-info' -exec rm -rf {} + >/dev/null 2>&1
105
+ @find . -type f -name '*.egg' -exec rm -f {} + >/dev/null 2>&1
106
+ @find . -name '*.pyc' -exec rm -f {} + >/dev/null 2>&1
107
+ @find . -name '*.pyo' -exec rm -f {} + >/dev/null 2>&1
108
+ @find . -name '*~' -exec rm -f {} + >/dev/null 2>&1
109
+ @find . -name '__pycache__' -exec rm -rf {} + >/dev/null 2>&1
110
+ @find . -name '.ipynb_checkpoints' -exec rm -rf {} + >/dev/null 2>&1
111
+ @echo "${OK} Working directory cleaned"
112
+ $(MAKE) docs-clean
113
+
114
+ # =============================================================================
115
+ # Testing and Quality Checks
116
+ # =============================================================================
117
+
118
+ .PHONY: test
119
+ test: ## Run the tests
120
+ @echo "${INFO} Running test cases... 🧪"
121
+ @uv run pytest -n 2 --quiet
122
+ @echo "${OK} Tests passed ✨"
123
+
124
+ .PHONY: coverage
125
+ coverage: ## Run tests with coverage report
126
+ @echo "${INFO} Running tests with coverage... 📊"
127
+ @uv run pytest --cov -n auto --quiet
128
+ @uv run coverage html >/dev/null 2>&1
129
+ @uv run coverage xml >/dev/null 2>&1
130
+ @echo "${OK} Coverage report generated ✨"
131
+
132
+ # -----------------------------------------------------------------------------
133
+ # Type Checking
134
+ # -----------------------------------------------------------------------------
135
+
136
+ .PHONY: mypy
137
+ mypy: ## Run mypy
138
+ @echo "${INFO} Running mypy... 🔍"
139
+ @uv run dmypy run
140
+ @echo "${OK} Mypy checks passed ✨"
141
+
142
+ .PHONY: mypy-nocache
143
+ mypy-nocache: ## Run Mypy without cache
144
+ @echo "${INFO} Running mypy without cache... 🔍"
145
+ @uv run mypy
146
+ @echo "${OK} Mypy checks passed ✨"
147
+
148
+ .PHONY: pyright
149
+ pyright: ## Run pyright
150
+ @echo "${INFO} Running pyright... 🔍"
151
+ @uv run pyright
152
+ @echo "${OK} Pyright checks passed ✨"
153
+
154
+ .PHONY: type-check
155
+ type-check: mypy pyright ## Run all type checking
156
+
157
+ # -----------------------------------------------------------------------------
158
+ # Linting and Formatting
159
+ # -----------------------------------------------------------------------------
160
+
161
+ .PHONY: pre-commit
162
+ pre-commit: ## Run pre-commit hooks
163
+ @echo "${INFO} Running pre-commit checks... 🔎"
164
+ @NODE_OPTIONS="--no-deprecation --disable-warning=ExperimentalWarning" uv run pre-commit run --color=always --all-files
165
+ @echo "${OK} Pre-commit checks passed ✨"
166
+
167
+ .PHONY: slotscheck
168
+ slotscheck: ## Run slotscheck
169
+ @echo "${INFO} Running slots check... 🔍"
170
+ @uv run slotscheck
171
+ @echo "${OK} Slots check passed ✨"
172
+
173
+ .PHONY: fix
174
+ fix: ## Run code formatters
175
+ @echo "${INFO} Running code formatters... 🔧"
176
+ @uv run ruff check --fix --unsafe-fixes
177
+ @echo "${OK} Code formatting complete ✨"
178
+
179
+ .PHONY: lint
180
+ lint: pre-commit type-check slotscheck ## Run all linting checks
181
+
182
+ .PHONY: check-all
183
+ check-all: lint test coverage ## Run all checks (lint, test, coverage)
184
+
185
+ # =============================================================================
186
+ # Documentation
187
+ # =============================================================================
188
+
189
+ .PHONY: docs-clean
190
+ docs-clean: ## Clean documentation build
191
+ @echo "${INFO} Cleaning documentation build assets... 🧹"
192
+ @rm -rf docs/_build >/dev/null 2>&1
193
+ @echo "${OK} Documentation assets cleaned"
194
+
195
+ .PHONY: docs-serve
196
+ docs-serve: ## Serve documentation locally
197
+ @echo "${INFO} Starting documentation server... 📚"
198
+ @uv run sphinx-autobuild docs docs/_build/ -j auto --watch src/pytest_databases --watch docs --watch tests --watch CONTRIBUTING.rst --open-browser
199
+
200
+ .PHONY: docs
201
+ docs: docs-clean ## Build documentation
202
+ @echo "${INFO} Building documentation... 📝"
203
+ @uv run sphinx-build -M html docs docs/_build/ -E -a -j auto -W --keep-going
204
+ @echo "${OK} Documentation built successfully"
205
+
206
+ .PHONY: docs-linkcheck
207
+ docs-linkcheck: ## Check documentation links
208
+ @echo "${INFO} Checking documentation links... 🔗"
209
+ @uv run sphinx-build -b linkcheck ./docs ./docs/_build -D linkcheck_ignore='http://.*','https://.*'
210
+ @echo "${OK} Link check complete"
211
+
212
+ .PHONY: docs-linkcheck-full
213
+ docs-linkcheck-full: ## Run full documentation link check
214
+ @echo "${INFO} Running full link check... 🔗"
215
+ @uv run sphinx-build -b linkcheck ./docs ./docs/_build -D linkcheck_anchors=0
216
+ @echo "${OK} Full link check complete"
@@ -1,6 +1,6 @@
1
- Metadata-Version: 2.3
1
+ Metadata-Version: 2.4
2
2
  Name: pytest-databases
3
- Version: 0.9.0
3
+ Version: 0.11.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
@@ -11,14 +11,16 @@ License-File: LICENSE
11
11
  Keywords: alloydb,alloydbomni,azure,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
- Classifier: Programming Language :: Python :: 3.8
15
14
  Classifier: Programming Language :: Python :: 3.9
16
15
  Classifier: Programming Language :: Python :: 3.10
17
16
  Classifier: Programming Language :: Python :: 3.11
18
17
  Classifier: Programming Language :: Python :: 3.12
18
+ Classifier: Programming Language :: Python :: 3.13
19
19
  Classifier: Programming Language :: Python :: Implementation :: CPython
20
20
  Classifier: Programming Language :: Python :: Implementation :: PyPy
21
- Requires-Python: >=3.8
21
+ Requires-Python: >=3.9
22
+ Requires-Dist: docker
23
+ Requires-Dist: filelock
22
24
  Requires-Dist: pytest
23
25
  Provides-Extra: azure-storage
24
26
  Requires-Dist: azure-storage-blob; extra == 'azure-storage'
@@ -34,10 +36,12 @@ Provides-Extra: elasticsearch8
34
36
  Requires-Dist: elasticsearch8; extra == 'elasticsearch8'
35
37
  Provides-Extra: keydb
36
38
  Requires-Dist: redis; extra == 'keydb'
39
+ Provides-Extra: mariadb
40
+ Requires-Dist: mariadb; extra == 'mariadb'
37
41
  Provides-Extra: mssql
38
- Requires-Dist: pymssql; extra == 'mssql'
42
+ Requires-Dist: pymssql<=2.3.1; extra == 'mssql'
39
43
  Provides-Extra: mysql
40
- Requires-Dist: pymysql; extra == 'mysql'
44
+ Requires-Dist: mysql-connector-python; extra == 'mysql'
41
45
  Provides-Extra: oracle
42
46
  Requires-Dist: oracledb; extra == 'oracle'
43
47
  Provides-Extra: postgres
@@ -82,7 +86,7 @@ It is designed to offer pre-configured testing setups for many different types a
82
86
 
83
87
  `pytest-databases` currently utilizes `docker compose` (or the legacy `docker-compose`) commands to manage the startup and shutdown of each database service. The following databases are currently available:
84
88
 
85
- - **Postgres**: Version 12, 13, 14, 15, and 16 are available
89
+ - **Postgres**: Version 12, 13, 14, 15, 16 and 17 are available
86
90
  - **MySQL**: Version 5.6, 5.7 and 8 are available
87
91
  - **Oracle**: Version 18c XE and 23C Free are available
88
92
  - **SQL Server**: Version 2022 is available
@@ -32,7 +32,7 @@ It is designed to offer pre-configured testing setups for many different types a
32
32
 
33
33
  `pytest-databases` currently utilizes `docker compose` (or the legacy `docker-compose`) commands to manage the startup and shutdown of each database service. The following databases are currently available:
34
34
 
35
- - **Postgres**: Version 12, 13, 14, 15, and 16 are available
35
+ - **Postgres**: Version 12, 13, 14, 15, 16 and 17 are available
36
36
  - **MySQL**: Version 5.6, 5.7 and 8 are available
37
37
  - **Oracle**: Version 18c XE and 23C Free are available
38
38
  - **SQL Server**: Version 2022 is available