django-auditlog/tox.ini
Youngkwang Yang 8003b069c9
Extend CI and local test coverage to MySQL and SQLite (#744)
* Add test runner and improve test with multi databases

* Enhance cross-database compatibility and testing

- Fix TRUNCATE command support detection for different databases
- Add conditional PostgreSQL-specific model registration
- Improve database-specific test skipping logic
- Remove SQLite from TRUNCATE supported vendors list

* Add docker compose for testing

* Improve CI/CD with multi-database support

- Add separate test workflows for SQLite, PostgreSQL, and MySQL

* Add `mysqlclient` deps

* fix minor

- Add mysqlclient deps
- upload coverage step

* Fix coverage upload name conflicts in CI workflow

- Add database type to coverage upload names (SQLite/PostgreSQL/MySQL)
2025-08-17 16:50:23 +02:00

80 lines
1.6 KiB
INI

[tox]
envlist =
{py39,py310,py311}-django42
{py310,py311,py312}-django50
{py310,py311,py312,py313}-django51
{py310,py311,py312,py313}-django52
{py312,py313}-djangomain
py39-docs
py39-lint
py39-checkmigrations
[testenv]
setenv =
COVERAGE_FILE={toxworkdir}/.coverage.{envname}.{env:TEST_DB_BACKEND}
changedir = auditlog_tests
commands =
coverage run --source auditlog ./manage.py test
coverage xml
deps =
django42: Django>=4.2,<4.3
django50: Django>=5.0,<5.1
django51: Django>=5.1,<5.2
django52: Django>=5.2,<5.3
djangomain: https://github.com/django/django/archive/main.tar.gz
# Test requirements
coverage
codecov
freezegun
psycopg2-binary
mysqlclient
passenv=
TEST_DB_BACKEND
TEST_DB_HOST
TEST_DB_USER
TEST_DB_PASS
TEST_DB_NAME
TEST_DB_PORT
basepython =
py313: python3.13
py312: python3.12
py311: python3.11
py310: python3.10
py39: python3.9
[testenv:py39-docs]
changedir = docs/source
deps = -rdocs/requirements.txt
commands = sphinx-build -W -b html -d {envtmpdir}/doctrees . {envtmpdir}/html
[testenv:py39-lint]
deps = pre-commit
commands =
pre-commit run --all-files
[testenv:py39-checkmigrations]
description = Check for missing migrations
changedir = auditlog_tests
deps =
Django>=4.2
psycopg2-binary
mysqlclient
passenv=
TEST_DB_BACKEND
TEST_DB_HOST
TEST_DB_USER
TEST_DB_PASS
TEST_DB_NAME
TEST_DB_PORT
commands =
python manage.py makemigrations --check --dry-run
[gh-actions]
python =
3.9: py39
3.10: py310
3.11: py311
3.12: py312
3.13: py313