treyhunner/django-simple-history

View on GitHub
tox.ini

Summary

Maintainability
Test Coverage
[tox]
envlist =
    py{38,39,310}-dj32-{sqlite3,postgres,mysql,mariadb},
    py{38,39,310,311,312}-dj42-{sqlite3,postgres,mysql,mariadb},
    py{310,311,312}-dj50-{sqlite3,postgres,mysql,mariadb},
    py{310,311,312}-djmain-{sqlite3,postgres,mysql,mariadb},
    # DEV: Add `313` to the Python versions above (so that postgres is tested with 3.13)
    #      when `psycopg2-binary` supports 3.13
    py313-dj{42,50,main}-{sqlite3,mysql,mariadb},
    docs,
    lint

[gh-actions]
python =
    3.8: py38
    3.9: py39
    3.10: py310
    3.11: py311, docs, lint
    3.12: py312
    3.13: py313

[gh-actions:env]
DJANGO =
    3.2: dj32
    4.2: dj42
    5.0: dj50
    main: djmain

[flake8]
ignore = N802,F401,W503
max-complexity = 10
max-line-length = 88
exclude = __init__.py,simple_history/registry_tests/migration_test_app/migrations/*

[testenv]
deps =
    -rrequirements/test.txt
    dj32: Django>=3.2,<3.3
    dj42: Django>=4.2,<4.3
    dj50: Django>=5.0,<5.1
    djmain: https://github.com/django/django/tarball/main
    postgres: -rrequirements/postgres.txt
    mysql: -rrequirements/mysql.txt
    mariadb: -rrequirements/mysql.txt

commands =
    sqlite3: coverage run -a runtests.py {posargs}
    postgres: coverage run -a runtests.py --database=postgres {posargs}
    mysql: coverage run -a runtests.py --database=mysql {posargs}
    mariadb: coverage run -a runtests.py --database=mariadb {posargs}
    coverage report

[testenv:format]
deps = -rrequirements/lint.txt
commands =
    isort docs simple_history runtests.py setup.py
    black docs simple_history runtests.py setup.py
    flake8 simple_history

[testenv:lint]
deps = pre-commit
commands =
    pre-commit run --all-files

[testenv:docs]
changedir = docs
deps = -rrequirements/docs.txt
commands = sphinx-build -W -b html -d {envtmpdir}/doctrees . {envtmpdir}/html