Fix tests to redirect stdout
Add default TestCase that uses fixtures to save stdout and stderr (based off nova/test.py). save stdout and stderr by default but overrideable in order to run pdb. Also use fixtures.Timeout Change-Id: Iece6a96e5e54e252df943934ea465db78e1c5421
This commit is contained in:
parent
80664dd471
commit
a034aa1f95
@ -1,4 +1,8 @@
|
|||||||
[DEFAULT]
|
[DEFAULT]
|
||||||
test_command=OS_STDOUT_CAPTURE=1 OS_STDERR_CAPTURE=1 OS_TEST_TIMEOUT=60 ${PYTHON:-python} -m subunit.run discover -t ./ . $LISTOPT $IDOPTION
|
test_command=OS_STDOUT_CAPTURE=${OS_STDOUT_CAPTURE:-1} \
|
||||||
|
OS_STDERR_CAPTURE=${OS_STDERR_CAPTURE:-1} \
|
||||||
|
OS_TEST_TIMEOUT=${OS_TEST_TIMEOUT:-60} \
|
||||||
|
${PYTHON:-python} -m subunit.run discover -t ./ . $LISTOPT $IDOPTION
|
||||||
|
|
||||||
test_id_option=--load-list $IDFILE
|
test_id_option=--load-list $IDFILE
|
||||||
test_list_option=--list
|
test_list_option=--list
|
||||||
|
@ -12,3 +12,33 @@
|
|||||||
# implied.
|
# implied.
|
||||||
# See the License for the specific language governing permissions and
|
# See the License for the specific language governing permissions and
|
||||||
# limitations under the License.
|
# limitations under the License.
|
||||||
|
|
||||||
|
import os
|
||||||
|
|
||||||
|
import fixtures
|
||||||
|
import testtools
|
||||||
|
|
||||||
|
|
||||||
|
class TestCase(testtools.TestCase):
|
||||||
|
"""Test case base class for all unit tests."""
|
||||||
|
|
||||||
|
def setUp(self):
|
||||||
|
"""Run before each test method to initialize test environment."""
|
||||||
|
super(TestCase, self).setUp()
|
||||||
|
test_timeout = os.environ.get('OS_TEST_TIMEOUT', 0)
|
||||||
|
try:
|
||||||
|
test_timeout = int(test_timeout)
|
||||||
|
except ValueError:
|
||||||
|
# If timeout value is invalid do not set a timeout.
|
||||||
|
test_timeout = 0
|
||||||
|
if test_timeout > 0:
|
||||||
|
self.useFixture(fixtures.Timeout(test_timeout, gentle=True))
|
||||||
|
|
||||||
|
if (os.environ.get('OS_STDOUT_CAPTURE') == 'True' or
|
||||||
|
os.environ.get('OS_STDOUT_CAPTURE') == '1'):
|
||||||
|
stdout = self.useFixture(fixtures.StringStream('stdout')).stream
|
||||||
|
self.useFixture(fixtures.MonkeyPatch('sys.stdout', stdout))
|
||||||
|
if (os.environ.get('OS_STDERR_CAPTURE') == 'True' or
|
||||||
|
os.environ.get('OS_STDERR_CAPTURE') == '1'):
|
||||||
|
stderr = self.useFixture(fixtures.StringStream('stderr')).stream
|
||||||
|
self.useFixture(fixtures.MonkeyPatch('sys.stderr', stderr))
|
||||||
|
@ -18,20 +18,20 @@ import re
|
|||||||
|
|
||||||
from flake8 import engine
|
from flake8 import engine
|
||||||
import pep8
|
import pep8
|
||||||
import testtools
|
|
||||||
from testtools import content
|
from testtools import content
|
||||||
from testtools import matchers
|
from testtools import matchers
|
||||||
|
|
||||||
import testscenarios
|
import testscenarios
|
||||||
|
|
||||||
import hacking
|
import hacking
|
||||||
|
import hacking.tests
|
||||||
|
|
||||||
SELFTEST_REGEX = re.compile(r'\b(Okay|[HEW]\d{3}):\s(.*)')
|
SELFTEST_REGEX = re.compile(r'\b(Okay|[HEW]\d{3}):\s(.*)')
|
||||||
# Each scenario is (name, dict(lines=.., options=..., code=...))
|
# Each scenario is (name, dict(lines=.., options=..., code=...))
|
||||||
file_cases = []
|
file_cases = []
|
||||||
|
|
||||||
|
|
||||||
class HackingTestCase(testtools.TestCase):
|
class HackingTestCase(hacking.tests.TestCase):
|
||||||
|
|
||||||
scenarios = file_cases
|
scenarios = file_cases
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user