Skip to content
Snippets Groups Projects
tox.ini 2.29 KiB
[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 webpack_bundle
     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 =
    poetry install
    poetry run sh -c "cd aleksis; aleksis-admin compilemessages"
commands = poetry build

[testenv:docs]
commands = poetry run make -C docs/ html {posargs}

[testenv:reformat]
commands =
    poetry run isort aleksis/
    poetry run black aleksis/

[testenv:makemessages]
commands =
    poetry run aleksis-admin makemessages --no-wrap -e html,txt,py,email -i static -l ar -l de_DE -l fr -l nb_NO -l tr_TR -l la -l uk -l ru
    poetry run aleksis-admin makemessages --no-wrap -d djangojs -i **/node_modules -l ar -l de_DE -l fr -l nb_NO -l tr_TR -l la -l uk -l ru

[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