Silence SkipTest noise in in-process test teardown

setup_package and teardown_package get called twice when
running functional tests using nose. With in-process mode
the first call to teardown_package clears global config
which causes the test swiftclient to raise a SkipTest error
during the second call to teardown_package.

To reproduce:
SWIFT_TEST_IN_PROCESS=1 nosetests ./test/functional/test_account.py

This patch simply tests for config existence before attempting
to create a test swiftclient in the teardown_package function.

Also fix a related issue whereby in_process flag would be reset to
False during second call to setup_package, thus causing some of the
in process cleanup in teardown_package to never be executed.

Change-Id: I074dcd3d39aa46b262632024b047556ca471e8b8
This commit is contained in:
Alistair Coles 2016-02-19 09:30:10 +00:00
parent ebe61381c2
commit 54e53ae87b
1 changed files with 12 additions and 7 deletions

View File

@ -577,10 +577,13 @@ def setup_package():
# if the test.conf file is not found, or does not provide a usable
# configuration.
config.update(get_config('func_test'))
if config:
in_process = False
else:
if not config:
in_process = True
# else... leave in_process value unchanged. It may be that
# setup_package is called twice, in which case in_process_setup may
# have loaded config before we reach here a second time, so the
# existence of config is not reliable to determine that in_process
# should be False. Anyway, it's default value is False.
else:
# Explicitly set to False, do not attempt to use in-process
# functional tests, be sure we attempt to read from local
@ -775,10 +778,12 @@ def teardown_package():
# clean up containers and objects left behind after running tests
global config
conn = Connection(config)
conn.authenticate()
account = Account(conn, config.get('account', config['username']))
account.delete_containers()
if config:
conn = Connection(config)
conn.authenticate()
account = Account(conn, config.get('account', config['username']))
account.delete_containers()
global in_process
global _test_socks