aboutsummaryrefslogtreecommitdiffstats
path: root/keystone-moon/tox.ini
diff options
context:
space:
mode:
Diffstat (limited to 'keystone-moon/tox.ini')
-rw-r--r--keystone-moon/tox.ini145
1 files changed, 92 insertions, 53 deletions
diff --git a/keystone-moon/tox.ini b/keystone-moon/tox.ini
index af1d9b82..13ca0d84 100644
--- a/keystone-moon/tox.ini
+++ b/keystone-moon/tox.ini
@@ -1,92 +1,131 @@
[tox]
minversion = 1.6
skipsdist = True
-envlist = py27,py34,pep8,docs,genconfig,releasenotes
+envlist = py34,py27,pep8,docs,genconfig,releasenotes
[testenv]
usedevelop = True
-install_command = pip install -U {opts} {packages}
+install_command = pip install -c{env:UPPER_CONSTRAINTS_FILE:https://git.openstack.org/cgit/openstack/requirements/plain/upper-constraints.txt?h=stable/mitaka} {opts} {packages}
setenv = VIRTUAL_ENV={envdir}
deps = -r{toxinidir}/test-requirements.txt
.[ldap,memcache,mongodb]
-commands = bash tools/pretty_tox.sh '{posargs}'
-whitelist_externals = bash
-passenv = http_proxy HTTP_PROXY https_proxy HTTPS_PROXY no_proxy NO_PROXY
+commands =
+ find keystone -type f -name "*.pyc" -delete
+ bash tools/pretty_tox.sh '{posargs}'
+whitelist_externals =
+ bash
+ find
+passenv = http_proxy HTTP_PROXY https_proxy HTTPS_PROXY no_proxy NO_PROXY PBR_VERSION
[testenv:py34]
+commands =
+ find keystone -type f -name "*.pyc" -delete
+ bash tools/pretty_tox_py3.sh
+
+[testenv:legacy_drivers]
deps = -r{toxinidir}/test-requirements.txt
nose
- .[memcache,mongodb]
+ .[ldap,memcache,mongodb]
commands =
- nosetests --with-coverage --cover-package=keystone \
- keystone/tests/unit/auth/test_controllers.py \
- keystone/tests/unit/catalog/test_core.py \
- keystone/tests/unit/common/test_base64utils.py \
- keystone/tests/unit/common/test_injection.py \
- keystone/tests/unit/common/test_json_home.py \
- keystone/tests/unit/common/test_sql_core.py \
- keystone/tests/unit/common/test_utils.py \
- keystone/tests/unit/test_auth_plugin.py \
- keystone/tests/unit/test_backend.py \
- keystone/tests/unit/test_backend_endpoint_policy.py \
- keystone/tests/unit/test_backend_rules.py \
- keystone/tests/unit/test_cache_backend_mongo.py \
- keystone/tests/unit/test_config.py \
- keystone/tests/unit/test_contrib_s3_core.py \
- keystone/tests/unit/test_driver_hints.py \
- keystone/tests/unit/test_exception.py \
- keystone/tests/unit/test_policy.py \
- keystone/tests/unit/test_singular_plural.py \
- keystone/tests/unit/test_sql_livetest.py \
- keystone/tests/unit/test_sql_migrate_extensions.py \
- keystone/tests/unit/test_sql_upgrade.py \
- keystone/tests/unit/test_ssl.py \
- keystone/tests/unit/test_token_bind.py \
- keystone/tests/unit/test_url_middleware.py \
- keystone/tests/unit/test_v3_controller.py \
- keystone/tests/unit/test_validation.py \
- keystone/tests/unit/test_wsgi.py \
- keystone/tests/unit/tests/test_core.py \
- keystone/tests/unit/tests/test_utils.py \
- keystone/tests/unit/token/test_pki_provider.py \
- keystone/tests/unit/token/test_pkiz_provider.py \
- keystone/tests/unit/token/test_token_model.py \
- keystone/tests/unit/token/test_uuid_provider.py
+ # Run each legacy test separately, to avoid SQL model redefinitions
+ find keystone -type f -name "*.pyc" -delete
+ nosetests -v \
+ keystone/tests/unit/backend/legacy_drivers/assignment/V8/sql.py
+ nosetests -v \
+ keystone/tests/unit/backend/legacy_drivers/role/V8/sql.py
+ nosetests -v \
+ keystone/tests/unit/backend/legacy_drivers/federation/V8/api_v3.py
+ nosetests -v \
+ keystone/tests/unit/backend/legacy_drivers/resource/V8/sql.py
[testenv:pep8]
+deps =
+ .[bandit]
+ {[testenv]deps}
commands =
- flake8 {posargs}
+ flake8
# Run bash8 during pep8 runs to ensure violations are caught by
# the check and gate queues
bashate examples/pki/gen_pki.sh
# Check that .po and .pot files are valid.
bash -c "find keystone -type f -regex '.*\.pot?' -print0| \
xargs -0 -n 1 msgfmt --check-format -o /dev/null"
+ # Run security linter
+ bandit -r keystone -x tests
-[tox:jenkins]
-downloadcache = ~/cache/pip
+[testenv:bandit]
+# NOTE(browne): This is required for the integration test job of the bandit
+# project. Please do not remove.
+deps = .[bandit]
+commands = bandit -r keystone -x tests
[testenv:cover]
-commands = python setup.py testr --coverage --testr-args='{posargs}'
+# Also do not run test_coverage_ext tests while gathering coverage as those
+# tests conflict with coverage.
+# NOTE(sdague): this target does not use constraints because
+# upstream infra does not yet support it. Once that's fixed, we can
+# drop the install_command.
+install_command = pip install -U --force-reinstall {opts} {packages}
+commands =
+ find keystone -type f -name "*.pyc" -delete
+ python setup.py testr --coverage --testr-args='{posargs}'
[testenv:venv]
+# NOTE(jaegerandi): this target does not use constraints because
+# upstream infra does not yet support it. Once that's fixed, we can
+# drop the install_command.
+install_command = pip install -U --force-reinstall {opts} {packages}
commands = {posargs}
[testenv:debug]
-commands = oslo_debug_helper {posargs}
+commands =
+ find keystone -type f -name "*.pyc" -delete
+ oslo_debug_helper {posargs}
+passenv =
+ KSTEST_ADMIN_URL
+ KSTEST_ADMIN_USERNAME
+ KSTEST_ADMIN_PASSWORD
+ KSTEST_ADMIN_DOMAIN_ID
+ KSTEST_PUBLIC_URL
+ KSTEST_USER_USERNAME
+ KSTEST_USER_PASSWORD
+ KSTEST_USER_DOMAIN_ID
+ KSTEST_PROJECT_ID
[testenv:functional]
basepython = python3.4
deps = -r{toxinidir}/test-requirements.txt
setenv = OS_TEST_PATH=./keystone/tests/functional
-commands = python setup.py testr --slowest --testr-args='{posargs}'
+commands =
+ find keystone -type f -name "*.pyc" -delete
+ python setup.py testr --slowest --testr-args='{posargs}'
+passenv =
+ KSTEST_ADMIN_URL
+ KSTEST_ADMIN_USERNAME
+ KSTEST_ADMIN_PASSWORD
+ KSTEST_ADMIN_DOMAIN_ID
+ KSTEST_PUBLIC_URL
+ KSTEST_USER_USERNAME
+ KSTEST_USER_PASSWORD
+ KSTEST_USER_DOMAIN_ID
+ KSTEST_PROJECT_ID
[flake8]
filename= *.py,keystone-all,keystone-manage
show-source = true
-# H405 multi line docstring summary not separated with an empty line
-ignore = H405
+# D100: Missing docstring in public module
+# D101: Missing docstring in public class
+# D102: Missing docstring in public method
+# D103: Missing docstring in public function
+# D104: Missing docstring in public package
+# D105: Missing docstring in magic method
+# D202: No blank lines allowed after docstring.
+# D203: 1 blank required before class docstring.
+# D205: Blank line required between one-line summary and description.
+# D400: First line should end with a period.
+# D401: First line should be in imperative mood.
+ignore = D100,D101,D102,D103,D104,D105,D203,D205,D400,D401
exclude=.venv,.git,.tox,build,dist,doc,*openstack/common*,*lib/python*,*egg,tools,vendor,.update-venv,*.ini,*.po,*.pot
max-complexity=24
@@ -98,15 +137,15 @@ commands=
python setup.py build_sphinx
[testenv:releasenotes]
-commands = sphinx-build -a -E -d releasenotes/build/doctrees -b html releasenotes/source releasenotes/build/html
+# NOTE(sdague): this target does not use constraints because
+# upstream infra does not yet support it. Once that's fixed, we can
+# drop the install_command.
+install_command = pip install -U --force-reinstall {opts} {packages}
+commands = sphinx-build -a -E -W -d releasenotes/build/doctrees -b html releasenotes/source releasenotes/build/html
[testenv:genconfig]
commands = oslo-config-generator --config-file=config-generator/keystone.conf
-[testenv:bandit]
-deps = .[bandit]
-commands = bandit -c bandit.yaml -r keystone -n5 -p gate
-
[hacking]
import_exceptions =
keystone.i18n