pytest-databases 0.10.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.
- pytest_databases-0.11.0/.github/CODEOWNERS +11 -0
- pytest_databases-0.11.0/.github/dependabot.yaml +6 -0
- pytest_databases-0.11.0/.github/workflows/cd.yaml +27 -0
- pytest_databases-0.11.0/.github/workflows/ci.yaml +112 -0
- pytest_databases-0.11.0/.github/workflows/pr-title.yaml +20 -0
- pytest_databases-0.11.0/.github/workflows/release.yaml +34 -0
- {pytest_databases-0.10.0 → pytest_databases-0.11.0}/.pre-commit-config.yaml +2 -2
- {pytest_databases-0.10.0 → pytest_databases-0.11.0}/.vscode/settings.json +0 -4
- pytest_databases-0.11.0/Makefile +216 -0
- {pytest_databases-0.10.0 → pytest_databases-0.11.0}/PKG-INFO +10 -6
- {pytest_databases-0.10.0 → pytest_databases-0.11.0}/pyproject.toml +55 -340
- pytest_databases-0.11.0/src/pytest_databases/_service.py +260 -0
- pytest_databases-0.11.0/src/pytest_databases/docker/alloydb_omni.py +65 -0
- pytest_databases-0.11.0/src/pytest_databases/docker/azure_blob.py +120 -0
- pytest_databases-0.11.0/src/pytest_databases/docker/bigquery.py +102 -0
- pytest_databases-0.11.0/src/pytest_databases/docker/cockroachdb.py +95 -0
- pytest_databases-0.11.0/src/pytest_databases/docker/elastic_search.py +134 -0
- pytest_databases-0.11.0/src/pytest_databases/docker/mariadb.py +139 -0
- pytest_databases-0.11.0/src/pytest_databases/docker/mssql.py +126 -0
- pytest_databases-0.11.0/src/pytest_databases/docker/mysql.py +193 -0
- pytest_databases-0.11.0/src/pytest_databases/docker/oracle.py +155 -0
- pytest_databases-0.11.0/src/pytest_databases/docker/postgres.py +315 -0
- pytest_databases-0.11.0/src/pytest_databases/docker/redis.py +76 -0
- pytest_databases-0.11.0/src/pytest_databases/docker/spanner.py +72 -0
- {pytest_databases-0.10.0 → pytest_databases-0.11.0}/src/pytest_databases/helpers.py +16 -0
- pytest_databases-0.11.0/src/pytest_databases/types.py +13 -0
- {pytest_databases-0.10.0 → pytest_databases-0.11.0}/tests/conftest.py +3 -4
- pytest_databases-0.11.0/tests/test_alloydb_omni.py +90 -0
- pytest_databases-0.11.0/tests/test_azure_blob.py +82 -0
- pytest_databases-0.11.0/tests/test_bigquery.py +60 -0
- pytest_databases-0.11.0/tests/test_cockroachdb.py +142 -0
- pytest_databases-0.11.0/tests/test_elasticsearch.py +60 -0
- pytest_databases-0.11.0/tests/test_mariadb.py +95 -0
- pytest_databases-0.11.0/tests/test_mssql.py +115 -0
- pytest_databases-0.11.0/tests/test_mysql.py +95 -0
- pytest_databases-0.11.0/tests/test_oracle.py +49 -0
- pytest_databases-0.11.0/tests/test_postgres.py +143 -0
- pytest_databases-0.11.0/tests/test_redis.py +112 -0
- pytest_databases-0.11.0/tests/test_spanner.py +49 -0
- pytest_databases-0.11.0/uv.lock +3448 -0
- pytest_databases-0.10.0/Makefile +0 -117
- pytest_databases-0.10.0/src/pytest_databases/docker/alloydb_omni.py +0 -136
- pytest_databases-0.10.0/src/pytest_databases/docker/azure_blob.py +0 -163
- pytest_databases-0.10.0/src/pytest_databases/docker/bigquery.py +0 -151
- pytest_databases-0.10.0/src/pytest_databases/docker/cockroachdb.py +0 -117
- pytest_databases-0.10.0/src/pytest_databases/docker/docker-compose.alloydb-omni.yml +0 -18
- pytest_databases-0.10.0/src/pytest_databases/docker/docker-compose.azurite.yml +0 -9
- pytest_databases-0.10.0/src/pytest_databases/docker/docker-compose.bigquery.yml +0 -18
- pytest_databases-0.10.0/src/pytest_databases/docker/docker-compose.cockroachdb.yml +0 -23
- pytest_databases-0.10.0/src/pytest_databases/docker/docker-compose.dragonfly.yml +0 -18
- pytest_databases-0.10.0/src/pytest_databases/docker/docker-compose.elasticsearch.yml +0 -30
- pytest_databases-0.10.0/src/pytest_databases/docker/docker-compose.keydb.yml +0 -8
- pytest_databases-0.10.0/src/pytest_databases/docker/docker-compose.mariadb.yml +0 -17
- pytest_databases-0.10.0/src/pytest_databases/docker/docker-compose.mssql.yml +0 -15
- pytest_databases-0.10.0/src/pytest_databases/docker/docker-compose.mysql.yml +0 -43
- pytest_databases-0.10.0/src/pytest_databases/docker/docker-compose.oracle.yml +0 -24
- pytest_databases-0.10.0/src/pytest_databases/docker/docker-compose.postgres.yml +0 -52
- pytest_databases-0.10.0/src/pytest_databases/docker/docker-compose.redis.yml +0 -8
- pytest_databases-0.10.0/src/pytest_databases/docker/docker-compose.spanner.yml +0 -23
- pytest_databases-0.10.0/src/pytest_databases/docker/docker-compose.valkey.yml +0 -8
- pytest_databases-0.10.0/src/pytest_databases/docker/dragonfly.py +0 -70
- pytest_databases-0.10.0/src/pytest_databases/docker/elastic_search.py +0 -176
- pytest_databases-0.10.0/src/pytest_databases/docker/keydb.py +0 -71
- pytest_databases-0.10.0/src/pytest_databases/docker/mariadb.py +0 -177
- pytest_databases-0.10.0/src/pytest_databases/docker/mssql.py +0 -202
- pytest_databases-0.10.0/src/pytest_databases/docker/mysql.py +0 -305
- pytest_databases-0.10.0/src/pytest_databases/docker/oracle.py +0 -257
- pytest_databases-0.10.0/src/pytest_databases/docker/postgres.py +0 -454
- pytest_databases-0.10.0/src/pytest_databases/docker/redis.py +0 -82
- pytest_databases-0.10.0/src/pytest_databases/docker/spanner.py +0 -142
- pytest_databases-0.10.0/src/pytest_databases/docker/valkey.py +0 -71
- pytest_databases-0.10.0/tests/docker/__init__.py +0 -0
- pytest_databases-0.10.0/tests/docker/test_alloydb_omni.py +0 -59
- pytest_databases-0.10.0/tests/docker/test_azure_blob.py +0 -9
- pytest_databases-0.10.0/tests/docker/test_bigquery.py +0 -58
- pytest_databases-0.10.0/tests/docker/test_cockroachdb.py +0 -43
- pytest_databases-0.10.0/tests/docker/test_dragonfly.py +0 -25
- pytest_databases-0.10.0/tests/docker/test_elasticsearch.py +0 -143
- pytest_databases-0.10.0/tests/docker/test_keydb.py +0 -25
- pytest_databases-0.10.0/tests/docker/test_mariadb.py +0 -95
- pytest_databases-0.10.0/tests/docker/test_mssql.py +0 -98
- pytest_databases-0.10.0/tests/docker/test_mysql.py +0 -156
- pytest_databases-0.10.0/tests/docker/test_oracle.py +0 -114
- pytest_databases-0.10.0/tests/docker/test_postgres.py +0 -269
- pytest_databases-0.10.0/tests/docker/test_redis.py +0 -25
- pytest_databases-0.10.0/tests/docker/test_spanner.py +0 -51
- pytest_databases-0.10.0/tests/docker/test_valkey.py +0 -26
- {pytest_databases-0.10.0 → pytest_databases-0.11.0}/.gitignore +0 -0
- {pytest_databases-0.10.0 → pytest_databases-0.11.0}/.sourcery.yaml +0 -0
- {pytest_databases-0.10.0 → pytest_databases-0.11.0}/.vscode/launch.json +0 -0
- {pytest_databases-0.10.0 → pytest_databases-0.11.0}/CODEOWNERS +0 -0
- {pytest_databases-0.10.0 → pytest_databases-0.11.0}/CONTRIBUTING.rst +0 -0
- {pytest_databases-0.10.0 → pytest_databases-0.11.0}/LICENSE +0 -0
- {pytest_databases-0.10.0 → pytest_databases-0.11.0}/README.md +0 -0
- {pytest_databases-0.10.0 → pytest_databases-0.11.0}/scripts/__init__.py +0 -0
- {pytest_databases-0.10.0 → pytest_databases-0.11.0}/scripts/build_docs.py +0 -0
- {pytest_databases-0.10.0 → pytest_databases-0.11.0}/scripts/convert_docs.sh +0 -0
- {pytest_databases-0.10.0 → pytest_databases-0.11.0}/scripts/install-hatch.sh +0 -0
- {pytest_databases-0.10.0 → pytest_databases-0.11.0}/sonar-project.properties +0 -0
- {pytest_databases-0.10.0 → pytest_databases-0.11.0}/src/pytest_databases/__init__.py +0 -0
- {pytest_databases-0.10.0 → pytest_databases-0.11.0}/src/pytest_databases/__metadata__.py +0 -0
- {pytest_databases-0.10.0 → pytest_databases-0.11.0}/src/pytest_databases/docker/__init__.py +0 -0
- {pytest_databases-0.10.0 → pytest_databases-0.11.0}/src/pytest_databases/py.typed +0 -0
- {pytest_databases-0.10.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,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:
|
|
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.
|
|
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.
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
2
|
Name: pytest-databases
|
|
3
|
-
Version: 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.
|
|
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:
|
|
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
|