# This library strives to support all officially supported combinations of Python and Django: # https://docs.djangoproject.com/en/5.2/faq/install/#what-python-version-can-i-use-with-django # https://devguide.python.org/versions/#versions [tox] envlist = py{38,39}-django42 py{310,311,312}-django{42,51,52} py{313}-django{51,52} py{314}-django{52} ruff coverage mypy [gh-actions] python = 3.8: py38-django42 3.9: py39-django42 3.10: py310-django{42,51,52} 3.11: py311-django{42,51,52} 3.12: py312-django{42,51,52} 3.13: py313-django{51,52} 3.14: py314-django{52}, ruff, coverage, mypy isolated_build = true [testenv] package = wheel wheel_build_env = .pkg deps = django42: Django>=4.2,<4.3 django51: Django>=5.1,<5.2 django52: Django>=5.2,<5.3 djc-core-html-parser==1.0.3 pytest pytest-xdist pytest-django pytest-asyncio syrupy # pytest snapshot testing # NOTE: Keep playwright is sync with the version in requirements-ci.txt # Othrwise we get error: # playwright._impl._errors.Error: BrowserType.launch: Executable doesn't exist at /home/runner/.cache/ms-playwright/chromium-1140/chrome-linux/chrome !py38: playwright==1.55.0 # For py38 run specific old version py38: playwright==1.48.0 pydantic requests types-requests whitenoise # NOTE: Delete when Django 5.2 reaches end of life django-template-partials commands = pytest {posargs} # TODO: Delete this when Django 4.2 reaches end of life [testenv:py38-django42] deps = django42: Django>=4.2,<4.3 django51: Django>=5.1,<5.2 django52: Django>=5.2,<5.3 djc-core-html-parser==1.0.3 pytest pytest-xdist pytest-django pytest-asyncio syrupy # pytest snapshot testing playwright==1.48.0 pydantic requests types-requests whitenoise django-template-partials [testenv:ruff] deps = ruff commands = ruff check . ruff format --check . [testenv:coverage] deps = pytest-cov pytest-django pytest-asyncio syrupy # snapshot testing # NOTE: Keep playwright in sync with the version in requirements-ci.txt playwright==1.55.0 pydantic requests types-requests whitenoise commands = pytest --cov=django_components --cov-fail-under=87 --cov-branch [testenv:mypy] deps = mypy types-requests commands = mypy .