Cleanup old helper we don't need anymore.
This commit is contained in:
parent
036dac3693
commit
38704d9e67
2
Makefile
2
Makefile
|
@ -3,7 +3,7 @@ PYTHONPATH:=$(shell pwd)/lib:${PYTHONPATH}
|
|||
all:
|
||||
|
||||
check:
|
||||
PYTHONPATH=$(PYTHONPATH) python ./test_all.py $(TESTRULE)
|
||||
PYTHONPATH=$(PYTHONPATH) python -m testtools.run discover .
|
||||
|
||||
clean:
|
||||
find . -name '*.pyc' -print0 | xargs -0 rm -f
|
||||
|
|
127
test_all.py
127
test_all.py
|
@ -1,127 +0,0 @@
|
|||
#!/usr/bin/env python
|
||||
# -*- Mode: python -*-
|
||||
#
|
||||
# Copyright (C) 2004 Canonical.com
|
||||
# Author: Robert Collins <robert.collins@canonical.com>
|
||||
#
|
||||
# This program is free software; you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
# the Free Software Foundation; either version 2 of the License, or
|
||||
# (at your option) any later version.
|
||||
#
|
||||
# This program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with this program; if not, write to the Free Software
|
||||
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
#
|
||||
|
||||
import unittest
|
||||
import sys
|
||||
import os
|
||||
import shutil
|
||||
import logging
|
||||
|
||||
class ParameterisableTextTestRunner(unittest.TextTestRunner):
|
||||
"""I am a TextTestRunner whose result class is
|
||||
parameterisable without further subclassing"""
|
||||
def __init__(self, **args):
|
||||
unittest.TextTestRunner.__init__(self, **args)
|
||||
self._resultFactory=None
|
||||
def resultFactory(self, *args):
|
||||
"""set or retrieve the result factory"""
|
||||
if args:
|
||||
self._resultFactory=args[0]
|
||||
return self
|
||||
if self._resultFactory is None:
|
||||
self._resultFactory=unittest._TextTestResult
|
||||
return self._resultFactory
|
||||
|
||||
def _makeResult(self):
|
||||
return self.resultFactory()(self.stream, self.descriptions, self.verbosity)
|
||||
|
||||
|
||||
class EarlyStoppingTextTestResult(unittest._TextTestResult):
|
||||
"""I am a TextTestResult that can optionally stop at the first failure
|
||||
or error"""
|
||||
|
||||
def addError(self, test, err):
|
||||
unittest._TextTestResult.addError(self, test, err)
|
||||
if self.stopOnError():
|
||||
self.stop()
|
||||
|
||||
def addFailure(self, test, err):
|
||||
unittest._TextTestResult.addFailure(self, test, err)
|
||||
if self.stopOnFailure():
|
||||
self.stop()
|
||||
|
||||
def stopOnError(self, *args):
|
||||
"""should this result indicate an abort when an error occurs?
|
||||
TODO parameterise this"""
|
||||
return True
|
||||
|
||||
def stopOnFailure(self, *args):
|
||||
"""should this result indicate an abort when a failure error occurs?
|
||||
TODO parameterise this"""
|
||||
return True
|
||||
|
||||
|
||||
def earlyStopFactory(*args, **kwargs):
|
||||
"""return a an early stopping text test result"""
|
||||
result=EarlyStoppingTextTestResult(*args, **kwargs)
|
||||
return result
|
||||
|
||||
from testresources.tests.TestUtil import TestVisitor, TestSuite
|
||||
|
||||
def test_suite():
|
||||
result = TestSuite()
|
||||
import testresources
|
||||
result.addTest(testresources.test_suite())
|
||||
return result
|
||||
|
||||
|
||||
class filteringVisitor(TestVisitor):
|
||||
"""I accruse all the testCases I visit that pass a regexp filter on id
|
||||
into my suite
|
||||
"""
|
||||
|
||||
def __init__(self, filter):
|
||||
import re
|
||||
TestVisitor.__init__(self)
|
||||
self._suite=None
|
||||
self.filter=re.compile(filter)
|
||||
|
||||
def suite(self):
|
||||
"""answer the suite we are building"""
|
||||
if self._suite is None:
|
||||
self._suite=TestSuite()
|
||||
return self._suite
|
||||
|
||||
def visitCase(self, aCase):
|
||||
if self.filter.match(aCase.id()):
|
||||
self.suite().addTest(aCase)
|
||||
|
||||
|
||||
def main(argv):
|
||||
"""To parameterise what tests are run, run this script like so:
|
||||
python test_all.py REGEX
|
||||
i.e.
|
||||
python test_all.py .*Protocol.*
|
||||
to run all tests with Protocol in their id."""
|
||||
if len(argv) > 1:
|
||||
pattern = argv[1]
|
||||
else:
|
||||
pattern = ".*"
|
||||
visitor = filteringVisitor(pattern)
|
||||
test_suite().visit(visitor)
|
||||
runner = ParameterisableTextTestRunner(verbosity=2)
|
||||
runner.resultFactory(earlyStopFactory)
|
||||
if not runner.run(visitor.suite()).wasSuccessful():
|
||||
return 1
|
||||
return 0
|
||||
|
||||
if __name__ == '__main__':
|
||||
sys.exit(main(sys.argv))
|
Loading…
Reference in New Issue