diff options
author | W. Trevor King <wking@drexel.edu> | 2008-11-14 19:25:44 -0500 |
---|---|---|
committer | W. Trevor King <wking@drexel.edu> | 2008-11-14 19:25:44 -0500 |
commit | 87e356c9208e955fcf6c20c0b271db87bdd48014 (patch) | |
tree | 8a9ef32cd7bd9798077824fb26e73c1358599d6a /becommands | |
parent | 91b284cde8c4443cf0997798f4f847ce95409cd3 (diff) | |
download | bugseverywhere-87e356c9208e955fcf6c20c0b271db87bdd48014.tar.gz |
Split Bug and Comment class out to bug.py from bugdir.py
Comment should probably have it's own file too...
I also tried to clean up the interface for setting status and
severity. Both attributes involve selecting strings from predefined
lists. The lists of valid strings (and descriptions of each string)
are now defined in bug.py. The bug.py lists are then used to generate
appropriate help strings in becommands/status.py and severity.py.
This should make it easier to keep the help strings in synch with the
validation information.
The original status strings weren't documented, and I didn't know what
they all ment, so I elimanted some of them. 'in-progress' and
'disabled' are no longer with us. Of course, it would be simple to
add them back in if people don't agree with me on that. Due to the
loss of 'disabled' I had to change the status of two bugs (11e and
597) to 'closed'. I removed becommands/inprogress.py as well. It's
functionality was replaced by the more general status.py command,
which mimics the severity.py command.
Diffstat (limited to 'becommands')
-rw-r--r-- | becommands/assign.py | 2 | ||||
-rw-r--r-- | becommands/comment.py | 5 | ||||
-rw-r--r-- | becommands/help.py | 2 | ||||
-rw-r--r-- | becommands/list.py | 9 | ||||
-rw-r--r-- | becommands/new.py | 6 | ||||
-rw-r--r-- | becommands/severity.py | 23 | ||||
-rw-r--r-- | becommands/show.py | 5 | ||||
-rw-r--r-- | becommands/status.py (renamed from becommands/inprogress.py) | 53 | ||||
-rw-r--r-- | becommands/upgrade.py | 3 |
9 files changed, 71 insertions, 37 deletions
diff --git a/becommands/assign.py b/becommands/assign.py index 38ece52..d595c1d 100644 --- a/becommands/assign.py +++ b/becommands/assign.py @@ -15,7 +15,7 @@ # along with this program; if not, write to the Free Software # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA """Assign an individual or group to fix a bug""" -from libbe import bugdir, cmdutil, names +from libbe import cmdutil, names __desc__ = __doc__ def execute(args): diff --git a/becommands/comment.py b/becommands/comment.py index e3a1d93..d214a19 100644 --- a/becommands/comment.py +++ b/becommands/comment.py @@ -15,7 +15,8 @@ # along with this program; if not, write to the Free Software # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA """Add a comment to a bug""" -from libbe import bugdir, cmdutil, names, utility +from libbe import cmdutil, names, utility +from libbe.bug import new_comment import os def execute(args): """ @@ -62,7 +63,7 @@ def execute(args): if not body.endswith('\n'): body+='\n' - comment = bugdir.new_comment(bug, body) + comment = new_comment(bug, body) if parent_comment is not None: comment.in_reply_to = parent_comment.uuid comment.save() diff --git a/becommands/help.py b/becommands/help.py index aa4aa64..45d35ca 100644 --- a/becommands/help.py +++ b/becommands/help.py @@ -15,7 +15,7 @@ # along with this program; if not, write to the Free Software # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA """Print help for given subcommand""" -from libbe import bugdir, cmdutil, names, utility +from libbe import cmdutil, names, utility def execute(args): """ diff --git a/becommands/list.py b/becommands/list.py index cf06ccd..9351840 100644 --- a/becommands/list.py +++ b/becommands/list.py @@ -15,7 +15,8 @@ # along with this program; if not, write to the Free Software # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA """List bugs""" -from libbe import bugdir, cmdutil, names +from libbe import cmdutil, names +from libbe.bug import cmp_severity, cmp_time import os def execute(args): options, args = get_parser().parse_args(args) @@ -75,10 +76,8 @@ def execute(args): other_bugs.append(bug) def list_bugs(cur_bugs, title, no_target=False): - def cmp_date(bug1, bug2): - return -cmp(bug1.time, bug2.time) - cur_bugs.sort(cmp_date) - cur_bugs.sort(bugdir.cmp_severity) + cur_bugs.sort(cmp_time) + cur_bugs.sort(cmp_severity) if len(cur_bugs) > 0: print cmdutil.underlined(title) for bug in cur_bugs: diff --git a/becommands/new.py b/becommands/new.py index 7bd2382..b22dd0a 100644 --- a/becommands/new.py +++ b/becommands/new.py @@ -15,7 +15,9 @@ # along with this program; if not, write to the Free Software # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA """Create a new bug""" -from libbe import bugdir, cmdutil, names, utility +from libbe import cmdutil, names, utility +from libbe.bug import new_bug + def execute(args): """ >>> import os, time @@ -41,7 +43,7 @@ def execute(args): if len(args) != 1: raise cmdutil.UserError("Please supply a summary message") dir = cmdutil.bug_tree() - bug = bugdir.new_bug(dir) + bug = new_bug(dir) bug.summary = args[0] bug.save() bugs = (dir.list()) diff --git a/becommands/severity.py b/becommands/severity.py index af99bf7..1a68c31 100644 --- a/becommands/severity.py +++ b/becommands/severity.py @@ -15,8 +15,9 @@ # along with this program; if not, write to the Free Software # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA """Show or change a bug's severity level""" -from libbe import bugdir from libbe import cmdutil +from libbe.bug import severity_values, severity_description + __desc__ = __doc__ def execute(args): @@ -46,7 +47,7 @@ def execute(args): elif len(args) == 2: try: bug.severity = args[1] - except bugdir.InvalidValue, e: + except ValueError, e: if e.name != "severity": raise raise cmdutil.UserError ("Invalid severity level: %s" % e.value) @@ -56,19 +57,21 @@ def get_parser(): parser = cmdutil.CmdOptionParser("be severity bug-id [severity]") return parser -longhelp=""" -Show or change a bug's severity level. +longhelp=[""" +Show or change a bug's severity level. If no severity is specified, the current value is printed. If a severity level is specified, it will be assigned to the bug. Severity levels are: -wishlist: A feature that could improve usefulness, but not a bug. - minor: The standard bug level. - serious: A bug that requires workarounds. -critical: A bug that prevents some features from working at all. - fatal: A bug that makes the package unusable. -""" +"""] +longest_severity_len = max([len(s) for s in severity_values]) +for severity in severity_values : + description = severity_description[severity] + s = "%*s : %s\n" % (longest_severity_len, severity, description) + longhelp.append(s) +longhelp = ''.join(longhelp) + def help(): return get_parser().help_str() + longhelp diff --git a/becommands/show.py b/becommands/show.py index 8e83a1f..e75c1ac 100644 --- a/becommands/show.py +++ b/becommands/show.py @@ -15,7 +15,8 @@ # along with this program; if not, write to the Free Software # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA """Show a particular bug""" -from libbe import bugdir, cmdutil, utility +from libbe import cmdutil, utility +from libbe.bug import thread_comments import os def execute(args): @@ -37,7 +38,7 @@ def execute(args): for c_name, comment in cmdutil.iter_comment_name(bug, unique_name): name_map[comment.uuid] = c_name comments.append(comment) - threaded = bugdir.thread_comments(comments) + threaded = thread_comments(comments) cmdutil.print_threaded_comments(threaded, name_map) def get_parser(): diff --git a/becommands/inprogress.py b/becommands/status.py index 05da971..b57db4e 100644 --- a/becommands/inprogress.py +++ b/becommands/status.py @@ -14,35 +14,62 @@ # 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 -"""Bug fixing in progress""" +"""Show or change a bug's status""" from libbe import cmdutil +from libbe.bug import status_values, status_description +__desc__ = __doc__ + def execute(args): """ >>> from libbe import tests >>> import os >>> dir = tests.simple_bug_dir() >>> os.chdir(dir.dir) - >>> dir.get_bug("a").status - u'open' >>> execute(["a"]) - >>> dir.get_bug("a").status - u'in-progress' + open + >>> execute(["a", "closed"]) + >>> execute(["a"]) + closed + >>> execute(["a", "none"]) + Traceback (most recent call last): + UserError: Invalid status: none >>> tests.clean_up() """ options, args = get_parser().parse_args(args) - if len(args) !=1: - raise cmdutil.UserError("Please specify a bug id.") + assert(len(args) in (0, 1, 2)) + if len(args) == 0: + print help() + return bug = cmdutil.get_bug(args[0]) - bug.status = "in-progress" - bug.save() + if len(args) == 1: + print bug.status + elif len(args) == 2: + try: + bug.status = args[1] + except ValueError, e: + if e.name != "status": + raise + raise cmdutil.UserError ("Invalid status: %s" % e.value) + bug.save() def get_parser(): - parser = cmdutil.CmdOptionParser("be inprogress BUG-ID") + parser = cmdutil.CmdOptionParser("be status bug-id [status]") return parser -longhelp=""" -Mark a bug as 'in-progress'. -""" +longhelp=[""" +Show or change a bug's severity level. + +If no severity is specified, the current value is printed. If a severity level +is specified, it will be assigned to the bug. + +Severity levels are: +"""] +longest_status_len = max([len(s) for s in status_values]) +for status in status_values : + description = status_description[status] + s = "%*s : %s\n" % (longest_status_len, status, description) + longhelp.append(s) +longhelp = ''.join(longhelp) def help(): return get_parser().help_str() + longhelp diff --git a/becommands/upgrade.py b/becommands/upgrade.py index 3dcb4eb..8f7c3a4 100644 --- a/becommands/upgrade.py +++ b/becommands/upgrade.py @@ -18,6 +18,7 @@ import os.path import errno from libbe import bugdir, rcs, cmdutil +from libbe.bug import Bug def execute(args): options, args = get_parser().parse_args(args) @@ -25,7 +26,7 @@ def execute(args): for uuid in root.list_uuids(): old_bug = OldBug(root.bugs_path, uuid) - new_bug = bugdir.Bug(root.bugs_path, None) + new_bug = Bug(root.bugs_path, None) new_bug.uuid = old_bug.uuid new_bug.summary = old_bug.summary new_bug.creator = old_bug.creator |