[tox] minversion = 4.0.0 ignore_basepython_conflict = true envlist = py38,py39,py310,pep8 [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 deps = -c ./upper-constraints.txt -r{toxinidir}/requirements.txt -r{toxinidir}/test-requirements.txt usedevelop = True commands = find . -type f -name "*.pyc" -delete python3 {toxinidir}/tests/ci/pytest_launcher.py tests/unit --posargs={posargs} distribute = false basepython = python3 passenv = http_proxy HTTP_PROXY https_proxy HTTPS_PROXY no_proxy NO_PROXY REQUESTS_CA_BUNDLE HOME REPORTS_ROOT PYTEST_REPORT [testenv:pep8] deps = -r{toxinidir}/test-requirements.txt skip_install = true commands = flake8 distribute = false [testenv:venv] basepython = python3 commands = {posargs} [testenv:debug] commands = oslo_debug_helper -t tests {posargs} [testenv:functional] basepython = python3 sitepackages = True commands = find . -type f -name "*.pyc" -delete {toxinidir}/tests/ci/rally_functional_job.sh {posargs} allowlist_externals = find rm make {toxinidir}/tests/ci/rally_functional_job.sh [testenv:cover] commands = {toxinidir}/tests/ci/cover.sh {posargs} allowlist_externals = {toxinidir}/tests/ci/cover.sh [testenv:genconfig] basepython = python3 commands = oslo-config-generator --config-file etc/rally/rally-config-generator.conf [testenv:requirements] deps = # do not use upper-constraints file requests[security] -r{toxinidir}/requirements.txt commands = python {toxinidir}/tests/ci/sync_requirements.py {posargs} [flake8] # H105 Don't use author tags # E731 do not assign a lambda expression, use a def # W503 line break before binary operator ignore = H105,E731,W503 show-source = true exclude=.venv,.git,.tox,dist,*lib/python*,*egg,tools,build,setup.py [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] commands = {toxinidir}/tests/ci/rally_self_job.sh {toxinidir}/rally-jobs/self-rally.yaml [pytest] filterwarnings = error ignore:the imp module is deprecated in favour of importlib.*:DeprecationWarning # 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: # raised by designateclient?! ignore:dns.hash module will be removed in future versions. Please use hashlib instead.:DeprecationWarning # should be fixed at rally framework (raised by functional job) ignore:.*EngineFacade is deprecated; please use oslo_db.sqlalchemy.enginefacade*: ignore:.*unclosed file <_io.TextIOWrapper name='/tmp/rally.log':: ignore:.*mysql_enable_ndb.*:: ignore:.*distutils Version classes are deprecated.*:: # pytest-cov ignore:The --rsyncdir command line argument and rsyncdirs config variable are deprecated.:DeprecationWarning: ignore:::.*requests.* # python 3.11 ignore:'cgi' is deprecated and slated for removal in Python 3.13:DeprecationWarning: # 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: # python 3.8 ignore:Deprecated call to `pkg_resources.declare_namespace*:DeprecationWarning: