Skip to content
Snippets Groups Projects
Select Git revision
  • a54b9e3a32ebfba04a4136edd0db2f22cd119683
  • master default protected
  • new-model-based-on-calendar
  • 204-graphql-schema-for-subject
  • engs
  • 197-adaptations-for-spa-operation
  • 175-graphql-schemas
  • rename-ugettext
  • feature/vuetify
  • i10n-ru-ua
  • 161-manage-basic-data-in-frontend
  • release-2.2.1
  • 40-personal-timetable-as-ics
  • add-docs
  • core-284-unify-permission-names
  • 162-extend-the-reference-to-the-next-lesson
  • 160-ignore-subject-color-in-timetable-if-fg-bg
  • trademark-hint
  • update/tox-makemessages
  • release/2.0
  • create-timeperiods
  • 3.0
  • 3.0b0
  • 3.0.dev1
  • 2.5
  • 2.4.2
  • 2.4.1
  • 3.0.dev0
  • 2.4
  • 2.3
  • 2.2.1
  • 2.2
  • 2.1
  • 2.1dev3
  • 2.1.dev2
  • 2.1.dev1
  • 2.1.dev0
  • 2.0
  • 2.0rc3
  • 2.0rc2
  • 2.0rc1
41 results

tox.ini

Blame
  • tox.ini 2.67 KiB
    [tox]
    skipsdist = True
    skip_missing_interpreters = true
    envlist = py39,py310,py311
    
    [testenv]
    whitelist_externals = poetry
    skip_install = true
    envdir = {toxworkdir}/globalenv
    commands_pre =
         poetry install
         poetry run aleksis-admin vite build
         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/
        poetry run sh -c "aleksis-admin yarn run prettier --check --ignore-path={toxinidir}/.prettierignore {toxinidir}"
        poetry run sh -c "aleksis-admin yarn run eslint {toxinidir}/aleksis/**/*/frontend/**/*.{js,vue} --config={toxinidir}/.eslintrc.js --resolve-plugins-relative-to=."
    
    [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/
        poetry run sh -c "aleksis-admin yarn run prettier --write --ignore-path={toxinidir}/.prettierignore {toxinidir}"
    
    [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