aboutsummaryrefslogtreecommitdiffstats
path: root/libbe
diff options
context:
space:
mode:
authorW. Trevor King <wking@drexel.edu>2009-07-29 15:46:37 -0400
committerW. Trevor King <wking@drexel.edu>2009-07-29 15:46:37 -0400
commit4e8882e74aad64859a16f17fa6bef8c04b33913d (patch)
tree26078e4fbc9a1176ed4e023e74c4bd7b6db1dcb5 /libbe
parentcaf0111d9c571ac268c235880e6d18fa512e9efa (diff)
downloadbugseverywhere-4e8882e74aad64859a16f17fa6bef8c04b33913d.tar.gz
Added clean messages on bug_from_shortname failure.
So user's don't get confused.
Diffstat (limited to 'libbe')
-rw-r--r--libbe/bugdir.py8
-rw-r--r--libbe/cmdutil.py9
2 files changed, 16 insertions, 1 deletions
diff --git a/libbe/bugdir.py b/libbe/bugdir.py
index 6e020ee..f7345fd 100644
--- a/libbe/bugdir.py
+++ b/libbe/bugdir.py
@@ -62,6 +62,12 @@ class MultipleBugMatches(ValueError):
self.shortname = shortname
self.matches = matches
+class NoBugMatches(KeyError):
+ def __init__(self, shortname):
+ msg = "No bug matches %s" % shortname
+ KeyError.__init__(self, msg)
+ self.shortname = shortname
+
TREE_VERSION_STRING = "Bugs Everywhere Tree 1 0\n"
@@ -530,7 +536,7 @@ settings easy. Don't set this attribute. Set .rcs instead, and
raise MultipleBugMatches(shortname, matches)
if len(matches) == 1:
return self.bug_from_uuid(matches[0])
- raise KeyError("No bug matches %s" % shortname)
+ raise NoBugMatches(shortname)
def bug_from_uuid(self, uuid):
if not self.has_bug(uuid):
diff --git a/libbe/cmdutil.py b/libbe/cmdutil.py
index 853a75a..35d2f9e 100644
--- a/libbe/cmdutil.py
+++ b/libbe/cmdutil.py
@@ -206,6 +206,15 @@ def underlined(instring):
return "%s\n%s" % (instring, "="*len(instring))
+def bug_from_shortname(bugdir, shortname):
+ """
+ Exception translation for the command-line interface.
+ """
+ try:
+ bug = bugdir.bug_from_shortname(shortname)
+ except (bugdir.MultipleBugMatches, bugdir.NoBugMatches), e:
+ raise UserError(e.message)
+ return bug
def _test():
import doctest