diff options
| author | Jonathan Lange <jml@mumak.net> | 2012-03-27 12:17:37 +0100 |
|---|---|---|
| committer | Jonathan Lange <jml@mumak.net> | 2012-03-27 12:17:37 +0100 |
| commit | e2cbb8d7bd2fb382ee710a489686fe27ab6cddf2 (patch) | |
| tree | e7e58d4151c75756e2e9ba6da04b5f39dbbce862 | |
| parent | a5932aa9f9dcf9593886835adbe6193f0a8a0224 (diff) | |
| download | subunit-git-e2cbb8d7bd2fb382ee710a489686fe27ab6cddf2.tar.gz | |
Factor out subunit-notify
| -rwxr-xr-x | filters/subunit-notify | 53 | ||||
| -rw-r--r-- | python/subunit/filters.py | 17 |
2 files changed, 23 insertions, 47 deletions
diff --git a/filters/subunit-notify b/filters/subunit-notify index 758e7fc..8cce2d1 100755 --- a/filters/subunit-notify +++ b/filters/subunit-notify @@ -16,50 +16,29 @@ """Notify the user of a finished test run.""" -from optparse import OptionParser -import sys - import pygtk pygtk.require('2.0') import pynotify -from subunit import DiscardStream, ProtocolTestCase, TestResultStats +from subunit import TestResultStats +from subunit.filters import run_filter_script if not pynotify.init("Subunit-notify"): sys.exit(1) -parser = OptionParser(description=__doc__) -parser.add_option("--no-passthrough", action="store_true", - help="Hide all non subunit input.", default=False, dest="no_passthrough") -parser.add_option("-f", "--forward", action="store_true", default=False, - help="Forward subunit stream on stdout.") -(options, args) = parser.parse_args() -result = TestResultStats(sys.stdout) -if options.no_passthrough: - passthrough_stream = DiscardStream() -else: - passthrough_stream = None -if options.forward: - forward_stream = sys.stdout -else: - forward_stream = None -test = ProtocolTestCase(sys.stdin, passthrough=passthrough_stream, - forward=forward_stream) -test.run(result) -if result.failed_tests > 0: - summary = "Test run failed" -else: - summary = "Test run successful" -body = "Total tests: %d; Passed: %d; Failed: %d" % ( - result.total_tests, - result.passed_tests, - result.failed_tests, + +def notify_of_result(result): + if result.failed_tests > 0: + summary = "Test run failed" + else: + summary = "Test run successful" + body = "Total tests: %d; Passed: %d; Failed: %d" % ( + result.total_tests, + result.passed_tests, + result.failed_tests, ) -nw = pynotify.Notification(summary, body) -nw.show() + nw = pynotify.Notification(summary, body) + nw.show() + -if result.wasSuccessful(): - exit_code = 0 -else: - exit_code = 1 -sys.exit(exit_code) +run_filter_script(TestResultStats, __doc__, notify_of_result) diff --git a/python/subunit/filters.py b/python/subunit/filters.py index a221bf7..dc3fd8a 100644 --- a/python/subunit/filters.py +++ b/python/subunit/filters.py @@ -98,15 +98,7 @@ def filter_by_result(result_factory, output_path, passthrough, forward, return result -def _default_post_run(result): - if result.wasSuccessful(): - sys.exit(0) - else: - sys.exit(1) - - -def run_filter_script(result_factory, description, - post_run_hook=_default_post_run): +def run_filter_script(result_factory, description, post_run_hook=None): """Main function for simple subunit filter scripts. Many subunit filter scripts take a stream of subunit input and use a @@ -125,4 +117,9 @@ def run_filter_script(result_factory, description, result = filter_by_result( result_factory, options.output_to, not options.no_passthrough, options.forward) - post_run_hook(result) + if post_run_hook: + post_run_hook(result) + if result.wasSuccessful(): + sys.exit(0) + else: + sys.exit(1) |
