summaryrefslogtreecommitdiff
path: root/test_all.py
diff options
context:
space:
mode:
Diffstat (limited to 'test_all.py')
-rwxr-xr-xtest_all.py109
1 files changed, 0 insertions, 109 deletions
diff --git a/test_all.py b/test_all.py
deleted file mode 100755
index f5330ea..0000000
--- a/test_all.py
+++ /dev/null
@@ -1,109 +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 doctest
-import unittest
-import sys
-import os
-import shutil
-
-from testtools.utils import iterate_tests
-
-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.addError(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
-
-def test_suite():
- import testscenarios
- result = testscenarios.test_suite()
- doctest.set_unittest_reportflags(doctest.REPORT_ONLY_FIRST_FAILURE)
- result.addTest(doctest.DocFileSuite("README"))
- return result
-
-
-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]
- suite = unittest.TestSuite()
- filter = re.compile(pattern)
- for test in iterate_tests(test_suite()):
- if filter.search(test.id()):
- suite.addTest(test)
- else:
- suite = test_suite()
- runner = ParameterisableTextTestRunner(verbosity=2)
- runner.resultFactory(earlyStopFactory)
- if not runner.run(suite).wasSuccessful():
- return 1
- return 0
-
-if __name__ == '__main__':
- sys.exit(main(sys.argv))