summaryrefslogtreecommitdiff
path: root/python
diff options
context:
space:
mode:
authorRobert Collins <robertc@robertcollins.net>2010-07-01 21:23:25 +1000
committerRobert Collins <robertc@robertcollins.net>2010-07-01 21:23:25 +1000
commitc8de3044f63cc166e7d72300f0f88f605ec75b2c (patch)
treee8532a557a4dad652b301edd74906beaee9a1859 /python
parent915ecb84eb440c3bd9c2803590db5b274cf84a8e (diff)
parentfbcddf14a64b1087528dd45b00647678ac60e7f6 (diff)
downloadsubunit-git-c8de3044f63cc166e7d72300f0f88f605ec75b2c.tar.gz
Merge james_w's discovery patch, tweaked.
Diffstat (limited to 'python')
-rwxr-xr-xpython/subunit/run.py37
1 files changed, 31 insertions, 6 deletions
diff --git a/python/subunit/run.py b/python/subunit/run.py
index 01c0b0e..daa241a 100755
--- a/python/subunit/run.py
+++ b/python/subunit/run.py
@@ -23,6 +23,13 @@
import sys
from subunit import TestProtocolClient, get_default_formatter
+from testtools.run import (
+ BUFFEROUTPUT,
+ CATCHBREAK,
+ FAILFAST,
+ TestProgram,
+ USAGE_AS_MAIN,
+ )
class SubunitTestRunner(object):
@@ -36,12 +43,30 @@ class SubunitTestRunner(object):
return result
+class SubunitTestProgram(TestProgram):
+
+ USAGE = USAGE_AS_MAIN
+
+ def usageExit(self, msg=None):
+ if msg:
+ print msg
+ usage = {'progName': self.progName, 'catchbreak': '', 'failfast': '',
+ 'buffer': ''}
+ if self.failfast != False:
+ usage['failfast'] = FAILFAST
+ if self.catchbreak != False:
+ usage['catchbreak'] = CATCHBREAK
+ if self.buffer != False:
+ usage['buffer'] = BUFFEROUTPUT
+ usage_text = self.USAGE % usage
+ usage_lines = usage_text.split('\n')
+ usage_lines.insert(2, "Run a test suite with a subunit reporter.")
+ usage_lines.insert(3, "")
+ print('\n'.join(usage_lines))
+ sys.exit(2)
+
+
if __name__ == '__main__':
- import optparse
- from unittest import TestProgram
- parser = optparse.OptionParser(__doc__)
- args = parser.parse_args()[1]
stream = get_default_formatter()
runner = SubunitTestRunner(stream)
- program = TestProgram(module=None, argv=[sys.argv[0]] + args,
- testRunner=runner)
+ SubunitTestProgram(module=None, argv=sys.argv, testRunner=runner)