8ce9d735d2
* Tests for _write_file_as_root failed because tempfile.NamedTemporaryFile use binary mode by default, changing to text mode fixes. * Migrate to olso_serialization.base64 for Base64Codec. Also change the return value from bytearray to bytes for Base64Codec.deserialize. Base64Codec supports reverse encoding(i.e. binary data will be written to the dest file), in this situation, the dest file should be opened with binary mode(and when reading from the file, binary mode should also be used). * stream_codecs.StringConverter converts iterable objects with map function. The behavior of map function is different under Python 2.x and 3.x. However csv.writerows(before Python 3.5) and unpack_singleton in trove.common.utils both need a list object. Converting the return value of map function to a list explicitly before passing to these functions fixes. guestagent.test_operating_system is the last blacklist regex pattern for py3 unittests. With the above problems fixed, blacklist-py3.txt is not needed any more, and tox.ini is also updateted. Migrating from ostestr to stestr is also done while updating tox.ini. Here is the ML post for more information about os-testr and stestr: http://lists.openstack.org/pipermail/openstack-dev/2017-September/122135.html Partially implements: blueprint trove-python3 Change-Id: I31f1f97901d6ebff8a91c1b70a343e724ab806eb Signed-off-by: Zhao Chao <zhaochao1984@gmail.com>
117 lines
3.1 KiB
INI
117 lines
3.1 KiB
INI
[tox]
|
|
envlist = py{27,34,35},pep8,apiexamples,cover,api-ref,releasenotes,bandit,fakemodetests,pylint
|
|
minversion = 1.6
|
|
skipsdist = True
|
|
|
|
[testenv]
|
|
setenv = VIRTUAL_ENV={envdir}
|
|
PYTHONWARNINGS=default::DeprecationWarning
|
|
OS_TEST_PATH=./trove/tests/unittests
|
|
OS_STDOUT_CAPTURE=1
|
|
OS_STDERR_CAPTURE=1
|
|
|
|
usedevelop = True
|
|
install_command = pip install \
|
|
-c{env:UPPER_CONSTRAINTS_FILE:https://git.openstack.org/cgit/openstack/requirements/plain/upper-constraints.txt} \
|
|
-U {opts} {packages}
|
|
deps = -r{toxinidir}/requirements.txt
|
|
-r{toxinidir}/test-requirements.txt
|
|
commands = find ./trove -type f -name "*.pyc" -delete
|
|
rm -f .testrepository/times.dbm
|
|
rm -f trove_test.sqlite
|
|
whitelist_externals = find
|
|
rm
|
|
bash
|
|
|
|
[tox:jenkins]
|
|
sitepackages = True
|
|
|
|
[testenv:pep8]
|
|
basepython = python2.7
|
|
commands =
|
|
flake8
|
|
doc8 {posargs}
|
|
|
|
[stestr-base]
|
|
commands = stestr run --serial '{posargs}'
|
|
stestr slowest
|
|
|
|
[testenv:py27]
|
|
commands = {[testenv]commands}
|
|
{[stestr-base]commands}
|
|
|
|
[testenv:py34]
|
|
commands = {[testenv]commands}
|
|
{[stestr-base]commands}
|
|
|
|
[testenv:py35]
|
|
commands = {[testenv]commands}
|
|
{[stestr-base]commands}
|
|
|
|
[testenv:apiexamples]
|
|
commands = {envpython} generate_examples.py
|
|
|
|
[testenv:fakemodetests]
|
|
commands = {envpython} run_tests.py
|
|
|
|
[testenv:debug]
|
|
commands = oslo_debug_helper {posargs}
|
|
|
|
[testenv:cover]
|
|
basepython = python2.7
|
|
commands =
|
|
{[testenv]commands}
|
|
coverage erase
|
|
python setup.py testr --coverage --testr-args="--concurrency=1"
|
|
coverage run -a run_tests.py
|
|
coverage html
|
|
coverage xml
|
|
coverage report
|
|
|
|
[testenv:venv]
|
|
commands = {posargs}
|
|
|
|
[doc8]
|
|
ignore-path = .venv,.tox,.git,dist,doc,*egg-info,tools,etc,build,*.po,*.pot,integration,releasenotes,*.txt,api-ref/source/samples
|
|
|
|
[flake8]
|
|
show-source = True
|
|
# H301 is ignored on purpose.
|
|
# The rest of the ignores are TODOs.
|
|
ignore = F821,H301,H404,H405,H501,E402,W503,E731
|
|
enable-extensions = H203,H106
|
|
builtins = _
|
|
exclude=.venv,.tox,.git,dist,doc,*egg,tools,etc,build,*.po,*.pot,integration,releasenotes
|
|
filename=*.py,trove-*,app.wsgi
|
|
|
|
[hacking]
|
|
import_exceptions = trove.common.i18n
|
|
local-check-factory = trove.hacking.checks.factory
|
|
|
|
[testenv:api-ref]
|
|
# This environment is called from CI scripts to test and publish
|
|
# the API Ref to developer.openstack.org.
|
|
commands =
|
|
rm -rf api-ref/build
|
|
sphinx-build -W -b html -d api-ref/build/doctrees api-ref/source api-ref/build/html
|
|
|
|
[testenv:releasenotes]
|
|
commands = sphinx-build -a -E -W -d releasenotes/build/doctrees -b html releasenotes/source releasenotes/build/html
|
|
|
|
[testenv:bandit]
|
|
commands = bandit -r trove -n5 -x tests
|
|
|
|
[testenv:bandit-baseline]
|
|
envdir = {toxworkdir}/bandit
|
|
commands = bandit-baseline -r trove -n5 -x tests -ii -ll
|
|
|
|
[testenv:genpolicy]
|
|
commands = oslopolicy-sample-generator --config-file=tools/trove-policy-generator.conf
|
|
|
|
[testenv:pylint]
|
|
deps = -r{toxinidir}/requirements.txt
|
|
-r{toxinidir}/test-requirements.txt
|
|
commands = {[testenv]commands}
|
|
python tools/trove-pylint.py {posargs:check}
|
|
|