[tox] minversion = 3.2.0 ignore_basepython_conflict = true envlist = py36,py37,py38,pep8,samples [testenv] extras = {env:RALLY_EXTRAS:} setenv = VIRTUAL_ENV={envdir} LANG=en_US.UTF-8 LANGUAGE=en_US:en LC_ALL=C PYTHONHASHSEED=0 TOX_ENV_NAME={envname} allowlist_externals = find rm make mkdir deps = -r{toxinidir}/requirements.txt -r{toxinidir}/test-requirements.txt -c{toxinidir}/upper-constraints.txt usedevelop = True commands = find . -type f -name "*.pyc" -delete python {toxinidir}/tests/ci/pytest_launcher.py tests/unit --posargs={posargs} distribute = false basepython = python3 passenv = PYTEST_REPORT http_proxy HTTP_PROXY https_proxy HTTPS_PROXY no_proxy NO_PROXY HOME [testenv:pep8] commands = flake8 distribute = false [testenv:py36] basepython = python3.6 [testenv:py37] basepython = python3.7 [testenv:py38] basepython = python3.8 [testenv:py39] basepython = python3.9 [testenv:samples] commands = find . -type f -name "*.pyc" -delete python {toxinidir}/tests/ci/pytest_launcher.py tests/samples --posargs={posargs} [testenv:venv] commands = {posargs} [testenv:functional] deps = -r{toxinidir}/requirements.txt -r{toxinidir}/test-requirements.txt stestr commands = find . -type f -name "*.pyc" -delete python {toxinidir}/tests/ci/pytest_launcher.py tests/functional --posargs={posargs} [testenv:cover] commands = {toxinidir}/tests/ci/cover.sh {posargs} allowlist_externals = {toxinidir}/tests/ci/cover.sh [testenv:docs] # min py3.6 basepython = python3 deps = -c{toxinidir}/upper-constraints.txt -r{toxinidir}/doc/requirements.txt commands = rm -rf doc/build sphinx-build -v -b html doc/source doc/build/html [testenv:genconfig] commands = oslo-config-generator --config-file etc/rally/rally-config-generator.conf [testenv:requirements] deps = requests[security] commands = python {toxinidir}/tests/ci/sync_requirements.py {posargs} [flake8] # E731 do not assign a lambda expression, use a def # W503 line break before binary operator ignore = H703,H105,E731,W503 show-source = true exclude=.venv,.git,.tox,dist,*lib/python*,*egg,tools,build,setup.py [hacking] import_exceptions = rally.common.i18n [flake8:local-plugins] extension = N301 = checks:check_assert_methods_from_mock N310 = checks:check_import_of_logging N311 = checks:check_import_of_config N312 = checks:no_use_conf_debug_check N313 = checks:check_log_warn N320 = checks:assert_true_instance N321 = checks:assert_equal_type N322 = checks:assert_equal_none N323 = checks:assert_true_or_false_with_in N324 = checks:assert_equal_in N326 = checks:assert_equal_true_or_false N340 = checks:check_no_direct_rally_objects_import N341 = checks:check_no_oslo_deprecated_import N342 = checks:check_opts_import_path N350 = checks:check_quotes N351 = checks:check_no_constructor_data_struct N352 = checks:check_dict_formatting_in_string N354 = checks:check_raises N355 = checks:check_old_type_class N356 = checks:check_datetime_alias N360 = checks:check_db_imports_in_cli N361 = checks:check_objects_imports_in_cli paths = ./tests/hacking [testenv:bindep] # Do not install any requirements. We want this to be fast and work even if # system dependencies are missing, since it's used to tell you what system # dependencies are missing! This also means that bindep must be installed # separately, outside of the requirements files. deps = bindep commands = bindep [testenv:self-py38] basepython = python3.8 commands = find . -type f -name "*.pyc" -delete mkdir -p .test_results python3 {toxinidir}/tests/ci/rally_self_job.py --task {toxinidir}/rally-jobs/self-rally.yaml --plugins-path {toxinidir}/rally-jobs/plugins [testenv:self] commands = \ find . -type f -name "*.pyc" -delete mkdir -p {toxinidir}/.test_results python3 {toxinidir}/tests/ci/rally_self_job.py --task {toxinidir}/rally-jobs/self-rally.yaml --plugins-path {toxinidir}/rally-jobs/plugins [pytest] filterwarnings = error ignore:.*EngineFacade is deprecated; please use oslo_db.sqlalchemy.enginefacade*: # Introduced with oslo.db-12.1.0 ignore:.*Support for the MySQL NDB Cluster storage engine has been deprecated and will be removed in a future release.:DeprecationWarning: # Introuduced with SQLAlchemy-1.4.46, can be removed when rally supports SQLAlchemy>=2.0.0 ignore:.*Set environment variable SQLALCHEMY_SILENCE_UBER_WARNING=1 to silence this message.* # instead of ignoring all modules, let's list only libraries that are failing ignore:invalid escape sequence:DeprecationWarning:.*netaddr.* ignore:invalid escape sequence:DeprecationWarning:.*prettytable ignore:invalid escape sequence:DeprecationWarning:.*subunit.* ignore:invalid escape sequence:DeprecationWarning:.*docutils.* # we do not use anything inner from OptionParser, so we do not care about it's parent ignore:The frontend.OptionParser class will be replaced by a subclass of argparse.ArgumentParser in Docutils 0.21 or later.:DeprecationWarning: # we do not use Option directly, it is initialized by OptionParser by itself. # as soon as docutils team get rid of frontend.Option, they will also fix OptionParser ignore: The frontend.Option class will be removed in Docutils 0.21 or later.:DeprecationWarning: # python 3.7 ignore:Using or importing the ABCs:DeprecationWarning:unittest2.* # python 3.8 ignore:::.*netaddr.strategy.* # python 3.10 ignore:The distutils package is deprecated and slated for removal in Python 3.12. Use setuptools or check PEP 632 for potential alternatives:DeprecationWarning: ignore:pkg_resources is deprecated as an API:DeprecationWarning: # pytest-cov ignore:The --rsyncdir command line argument and rsyncdirs config variable are deprecated.:DeprecationWarning: