Add convenience environment to re-record tests

tox.ini's command specification doesn't expand globs (*) so one cannot
simply do:

    rm {posargs:cratonclient/tests/cassettes/*.yaml}

Instead one must be tricky and use find as we do in this commit. This
also allows folks to simply re-record only the cassettes they wish to
rerecord by doing

    tox -e rerecord -- TestHosts-test_create.yaml

As it will then execute

    find cratonclient/tests/cassettes -name 'TestHosts-test_create' \
        -delete

Or even use globs

    tox -e rerecord -- 'TestHosts*'

As that will translate to

    find cratonclient/tests/cassettes -name 'TestHosts*' -delete

This also ensures that new tests aren't recorded in our py27/py35
environments by setting the appropriate environment variable. Only the
rerecord environment may now record new cassettes.

Change-Id: I64e322548afc1b2d508fa129c0b151a8a91137a0
This commit is contained in:
Ian Cordasco
2017-03-22 10:30:47 -05:00
parent 4ae3199014
commit f7abac3fea

10
tox.ini
View File

@@ -10,6 +10,7 @@ setenv =
VIRTUAL_ENV={envdir}
BRANCH_NAME=master
CLIENT_NAME=python-cratonclient
BETAMAX_RECORD_MODE=none
passenv = BETAMAX_* CRATON_*
deps =
-r{toxinidir}/requirements.txt
@@ -24,6 +25,15 @@ commands =
[testenv:venv]
commands = {posargs}
[testenv:rerecord]
setenv=
BETAMAX_RECORD_MODE=once
whitelist_externals =
find
commands =
find cratonclient/tests/cassettes/ -name '{posargs:*.yaml}' -delete
python setup.py test --slowest --testr-args='--concurrency=1'
[testenv:cover]
commands = python setup.py test --coverage --testr-args='{posargs}'