[tox] skipsdist = True skip_missing_interpreters = true envlist = py37,py38,py39 [testenv] whitelist_externals = poetry sudo skip_install = true envdir = {toxworkdir}/globalenv commands_pre = poetry install poetry run aleksis-admin yarn install poetry run aleksis-admin collectstatic --no-input commands = poetry run pytest --cov=. {posargs} aleksis/ [testenv:selenium] setenv = TEST_SCREENSHOT_PATH = {env:TEST_SCREENSHOT_PATH:.tox/screenshots} TEST_SELENIUM_HUB = {env:TEST_SELENIUM_HUB:http://127.0.0.1:4444/wd/hub} TEST_SELENIUM_BROWSERS = {env:TEST_SELENIUM_BROWSERS:chrome,firefox} TEST_HOST = {env:TEST_HOST:172.17.0.1} [testenv:lint] commands = poetry run black --check --diff aleksis/ poetry run isort -c --diff --stdout aleksis/ poetry run flake8 {posargs} aleksis/ [testenv:security] commands = poetry show --no-dev poetry run safety check --full-report [testenv:build] commands_pre = commands = poetry build [testenv:docs] commands = poetry run make -C docs/ html {posargs} [testenv:reformat] commands = poetry run isort aleksis/ poetry run black aleksis/ [flake8] max_line_length = 100 exclude = migrations,tests ignore = BLK100,E203,E231,W503,D100,D101,D102,D103,D104,D105,D106,D107,RST215,RST214,F821,F841,S106,T100,T101,DJ05 [isort] profile = black line_length = 100 default_section = THIRDPARTY known_first_party = aleksis known_django = django skip = migrations sections = FUTURE,STDLIB,DJANGO,THIRDPARTY,FIRSTPARTY,LOCALFOLDER [mypy] plugins = mypy_django_plugin.main python_version = 3.8 platform = linux show_column_numbers = True follow_imports = skip ignore_missing_imports = True cache_dir = /dev/null [mypy.plugins.django-stubs] django_settings_module = aleksis.core.settings [pytest] DJANGO_SETTINGS_MODULE = aleksis.core.settings junit_family = legacy [coverage:run] omit = */migrations/* */tests/* .tox/* manage.py