https://github.com/wikimedia/operations-puppet
Raw File
Tip revision: 2eb401e5f31b84e58a913ffc3235522d46d4668b authored by Jaime Crespo on 11 April 2024, 16:18:16 UTC
mariadb: Reenable notifications for db2201 & db2202
Tip revision: 2eb401e
tox.ini
[tox]
skipsdist = True

# Adding an environment to this list is not enough to get the tests to be
# executed on-demand by CI. You need to modify rake_modules/taskgen.rb too.
envlist = commit-message, admin, adminschema, py2-pep8, py3-pep8, mtail, nagios_common, grafana, tslua, smart_data_dump, alerts, openstack_puppetenc, wmcs, wmcs-replica_cnf_api_service

[flake8]
max-line-length = 100
ignore =
    # Default non-PEP8 ignores
    # See <https://pycodestyle.readthedocs.io/en/latest/intro.html#error-codes>
    E121, E123, E126, E133, E226, E241, E242, E704, W503,
    # E402: module level import not at top of file
    E402
exclude =
    # Do not lint the tox runtime directory
    .tox,
    # Do not look in the standard ruby bundle directory
    .bundle,
    # Ignore user dotfiles and scripts
    modules/admin/files/home,
    # Upstream files that don't pass flake8 but should not be locally modified
    modules/jupyterhub/files/jupyterhub_config.py,
    modules/jupyterhub/files/nchp_config.py,
    modules/letsencrypt/files/acme_tiny.py,
    modules/mailman/files/mm_cfg.py,
    modules/openstack/files/train/keystone/ldap-common-rocky-fixed.py,
    modules/postgresql/files/check_postgres_replication_lag.py,
    modules/varnish/files/varnishapi.py,

    modules/rabbitmq/files/rabbitmqadmin.py,

    # example script that gets vars from environment:
    modules/openstack/files/zen/admin_scripts/wmcs-prod-example.sh,
    modules/openstack/files/antelope/admin_scripts/wmcs-prod-example.sh,

    modules/backy2/files/sql.py,
    # needs python3, handled by its own tox.ini
    modules/envoyproxy

[testenv]
basepython = python2.7
deps =
     pytest

[testenv:admin]
basepython = python3
deps =
    {[testenv]deps}
    sshpubkeys
    PyYAML
commands = pytest modules/admin/data

[testenv:adminschema]
basepython = python3
deps =
    {[testenv]deps}
    PyYAML
    jsonschema
    yamllint
commands = python3 ./modules/admin/data/data_validate.py

[testenv:commit-message]
basepython = python3
deps = commit-message-validator>=2.0.0
commands = commit-message-validator validate

[testenv:py2-pep8]
basepython = python2.7
deps = flake8==3.3.0
# add --version as a fallback so `tox -r` runs clean
# ultimately disabling checks, otherwise flake8 will bork on python3 files
commands = flake8 {posargs:{env:TOX_PY2_FILES:--version}}

[testenv:py3-pep8]
basepython = python3
deps = flake8 >=3.3.0
# add --version as a fallback so `tox -r` runs clean
# ultimately disabling checks, otherwise flake8 will bork on python2 files
commands = flake8 {posargs:{env:TOX_PY3_FILES:--version}}

[testenv:mtail]
basepython = python3
commands = pytest modules/mtail/files

[testenv:alerts]
basepython = python3
commands = pytest modules/alerts/files

[testenv:nagios_common]
basepython = python3
commands = pytest modules/nagios_common/files/check_commands
deps =
    {[testenv]deps}
    requests
    prometheus_client

[testenv:grafana]
basepython = python3
# Needed for python3-ldap installed in Docker
# The alternative would be to build python-ldap in the virtualenv, thus requiring headers (e.g. -dev
# packages) in the Docker image anyways.
sitepackages = True
commands = pytest modules/grafana/files
deps =
    {[testenv]deps}
    wmflib

[testenv:tslua]
basepython = python3
allowlist_externals = /bin/sh
# sh needed to use wildcard
commands = /bin/sh -c 'busted --verbose --helper=modules/profile/files/trafficserver/mock.helper.lua --lpath=modules/profile/files/trafficserver/?.lua ./modules/profile/files/trafficserver/*.lua'

[testenv:smart_data_dump]
basepython = python3
commands = pytest modules/smart/files
deps =
    {[testenv]deps}
    prometheus_client

[testenv:prometheus]
basepython = python3
commands = pytest modules/prometheus/files

[testenv:openstack_puppetenc]
basepython = python3
commands =
    black --check --diff -l 100 -t py39 modules/openstack/files/puppet/master/encapi/
    isort --check --diff -l 100 --profile black -t py39 modules/openstack/files/puppet/master/encapi/
deps =
    black
    isort

[testenv:wmcs]
basepython = python3
commands =
    black --check --diff -l 100 -t py39 modules/profile/files/wmcs
    isort --check --diff -l 100 --profile black -t py39 modules/profile/files/wmcs
    pytest --ignore=modules/profile/files/wmcs/nfs modules/profile/files/wmcs {posargs}
setenv =
    PYTHONPATH = modules/openstack/files/clientpackages
deps =
    black
    isort
    ldap3
    pymysql
    tenacity
    # Remove this pin when the CI can run Python 3.9
    openstacksdk<1.5.0
    python-glanceclient
    python-keystoneclient
    python-novaclient
    python-designateclient
    python-cinderclient
    python-troveclient
    python-neutronclient
    {[testenv]deps}
    {[testenv:py3-pep8]deps}
    # Needed here also as tox does not notice changes in -r included files, fixed in tox 4
    toolforge-weld>=1.2.1

[testenv:wmcs-replica_cnf_api_service]
basepython = python3.7
allowlist_externals = {toxinidir}/modules/profile/files/wmcs/nfs/replica_cnf_web_fullstack_tests/run_ci.sh
commands =
    flake8 modules/profile/files/wmcs/nfs/replica_cnf_api_service
    pytest --disable-warnings modules/profile/files/wmcs/nfs/replica_cnf_api_service {posargs}
    {toxinidir}/modules/profile/files/wmcs/nfs/replica_cnf_web_fullstack_tests/run_ci.sh
deps =
    {[testenv]deps}
    {[testenv:py3-pep8]deps}
    -r{toxinidir}/modules/profile/files/wmcs/nfs/replica_cnf_api_service/requirements.txt
    # Needed here also as tox does not notice changes in -r included files, fixed in tox 4
    toolforge-weld>=1.2.1
    bats-core-pkg
    requests-mock
back to top