summaryrefslogtreecommitdiff
path: root/python/subunit/_output.py
diff options
context:
space:
mode:
authorThomi Richards <thomi.richards@canonical.com>2013-11-25 12:17:11 +1300
committerThomi Richards <thomi.richards@canonical.com>2013-11-25 12:17:11 +1300
commit5c0a52bd25e0adc8a1cbba21452b57c355d47090 (patch)
treecae7897ac8ad8cbe3556040368e280368bea8760 /python/subunit/_output.py
parent017c91bebbb48101b3bbaafaddf6518295b060f5 (diff)
downloadsubunit-git-5c0a52bd25e0adc8a1cbba21452b57c355d47090.tar.gz
Add a few more tests for error cases in option parser.
Diffstat (limited to 'python/subunit/_output.py')
-rw-r--r--python/subunit/_output.py7
1 files changed, 6 insertions, 1 deletions
diff --git a/python/subunit/_output.py b/python/subunit/_output.py
index 6f111cc..bdea14f 100644
--- a/python/subunit/_output.py
+++ b/python/subunit/_output.py
@@ -43,8 +43,9 @@ def parse_arguments(args=None, ParserClass=OptionParser):
command-line arguments. This is useful for testing.
"""
parser = ParserClass(
- prog='subunit-output',
+ prog="subunit-output",
description="A tool to generate a subunit v2 result byte-stream",
+ usage="subunit-output [-h] [status test_id] [options]",
)
parser.set_default('tags', None)
@@ -131,6 +132,8 @@ def parse_arguments(args=None, ParserClass=OptionParser):
parser.error("Cannot open %s (%s)" % (options.attach_file, e.strerror))
if options.tags and not options.action:
parser.error("Cannot specify --tags without a status command")
+ if not (options.attach_file or options.action):
+ parser.error("Must specify either --attach-file or a status command")
return options
@@ -139,6 +142,8 @@ def status_action(option, opt_str, value, parser, status_name):
if getattr(parser.values, "action", None) is not None:
raise OptionValueError("argument %s: Only one status may be specified at once." % option)
+ if len(parser.rargs) == 0:
+ raise OptionValueError("argument %s: must specify a single TEST_ID.")
parser.values.action = status_name
parser.values.test_id = parser.rargs.pop(0)