Transition to Command-format complete.
authorW. Trevor King <wking@drexel.edu>
Tue, 15 Dec 2009 08:31:48 +0000 (03:31 -0500)
committerW. Trevor King <wking@drexel.edu>
Tue, 15 Dec 2009 08:31:48 +0000 (03:31 -0500)
Well, except for going through and updating the _long_help()
strings.
  $ python test.py libbe.command
succeeds for everything except Diff and Subscribe, which is expected
since I haven't fixed up libbe.diff yet.

libbe/command/base.py
libbe/command/diff.py
libbe/command/new.py
libbe/command/set.py
libbe/command/subscribe.py
libbe/command/util.py
libbe/diff.py

index 74573a38874b4fa3a133d197972479719f938f10..9f50632916b9bff7a6520469b81aa6df98e8ba14 100644 (file)
@@ -266,7 +266,7 @@ class Command (object):
     def help(self, *args):       
         return '\n\n'.join([self._usage(),
                             self._option_help(),
-                            self._long_help()])
+                            self._long_help().rstrip('\n')])
 
     def _usage(self):
         usage = 'usage: be %s [options]' % self.name
index 05242db906ab9f3cbd612e10d497a7bf65bd8117..6a7c36b25f58d811830efb9d13245205703943ce 100644 (file)
@@ -30,7 +30,7 @@ class Diff (libbe.command.Command):
     >>> import sys
     >>> import libbe.bugdir
     >>> bd = libbe.bugdir.SimpleBugDir(memory=False)
-    >>> cmd = Subscribe()
+    >>> cmd = Diff()
     >>> cmd._storage = bd.storage
     >>> cmd._setup_io = lambda i_enc,o_enc : None
     >>> cmd.stdout = sys.stdout
@@ -38,8 +38,8 @@ class Diff (libbe.command.Command):
     >>> original = bd.storage.commit('Original status')
     >>> bug = bd.bug_from_uuid('a')
     >>> bug.status = 'closed'
-    >>> changed = bd.vcs.commit('Closed bug a')
-    >>> if bd.vcs.versioned == True:
+    >>> changed = bd.storage.commit('Closed bug a')
+    >>> if bd.storage.versioned == True:
     ...     ret = cmd.run(args=[original])
     ... else:
     ...     print 'Modified bugs:\\n  a:cm: Bug A\\n    Changed bug settings:\\n      status: open -> closed'
@@ -47,12 +47,12 @@ class Diff (libbe.command.Command):
       a:cm: Bug A
         Changed bug settings:
           status: open -> closed
-    >>> if bd.vcs.versioned == True:
+    >>> if bd.storage.versioned == True:
     ...     ret = cmd.run({'subscribe':'%(bugdir_id)s:mod', 'uuids':True}, [original])
     ... else:
     ...     print 'a'
     a
-    >>> if bd.vcs.versioned == False:
+    >>> if bd.storage.versioned == False:
     ...     ret = cmd.run(args=[original])
     ... else:
     ...     raise libbe.command.UserError('This repository not revision-controlled.')
@@ -131,10 +131,10 @@ class Diff (libbe.command.Command):
 
     def _long_help(self):
         return """
-Uses the VCS to compare the current tree with a previous tree, and
-prints a pretty report.  If REVISION is given, it is a specifier for
-the particular previous tree to use.  Specifiers are specific to their
-VCS.
+Uses the storage backend to compare the current tree with a previous
+tree, and prints a pretty report.  If REVISION is given, it is a
+specifier for the particular previous tree to use.  Specifiers are
+specific to their storage backend.
 
 For Arch your specifier must be a fully-qualified revision name.
 
index de215fa4e08af4d82e10626c7961bcdde5193309..57ff5dc07dcbf77c390d56fff9ad350cc869df43 100644 (file)
@@ -35,9 +35,11 @@ class New (libbe.command.Command):
     >>> cmd._setup_io = lambda i_enc,o_enc : None
     >>> cmd.stdout = sys.stdout
 
+    >>> uuid_gen = libbe.util.id.uuid_gen
     >>> libbe.util.id.uuid_gen = lambda: 'X'
     >>> ret = cmd.run(args=['this is a test',])
     Created bug with ID abc/X
+    >>> libbe.util.id.uuid_gen = uuid_gen
     >>> bd.flush_reload()
     >>> bug = bd.bug_from_uuid('X')
     >>> print bug.summary
index cea6fb9226b52913f0baf1da7dd020c55365eeb5..aaf2b5845dae642ad9abc0ba1f36857fe0666a28 100644 (file)
@@ -85,6 +85,20 @@ class Set (libbe.command.Command):
             setattr(bugdir, attr, params['value'])
         return 0
 
+    def _long_help(self):
+        return """
+Show or change per-tree settings. 
+
+If name and value are supplied, the name is set to a new value.
+If no value is specified, the current value is printed.
+If no arguments are provided, all names and values are listed. 
+
+To unset a setting, set it to "none".
+
+Allowed settings are:
+
+%s""" % ('\n'.join(get_bugdir_settings()),)
+
 def get_bugdir_settings():
     settings = []
     for s in libbe.bugdir.BugDir.settings_properties:
@@ -109,20 +123,6 @@ def get_bugdir_settings():
         documented_settings.append('%s\n%s' % (s, '\n'.join(doc)))
     return documented_settings
 
-longhelp="""
-Show or change per-tree settings. 
-
-If name and value are supplied, the name is set to a new value.
-If no value is specified, the current value is printed.
-If no arguments are provided, all names and values are listed. 
-
-To unset a setting, set it to "none".
-
-Allowed settings are:
-
-%s""" % ('\n'.join(get_bugdir_settings()),)
-
-
 def _value_string(bugdir, setting):
     val = bugdir.settings.get(setting, EMPTY)
     if val == EMPTY:
index 5c5acdbd3f7ca7681b20bf56f423ebf59ff22dc8..e86a9c86d12aad842be36dac9edce10f66a0c2a8 100644 (file)
@@ -35,14 +35,14 @@ class Subscribe (libbe.command.Command):
     >>> import libbe.bugdir
     >>> bd = libbe.bugdir.SimpleBugDir(memory=False)
     >>> cmd = Subscribe()
-    >>> cmd._storage = bd.storage
+    >>> cmd._bugdir = bd
     >>> cmd._setup_io = lambda i_enc,o_enc : None
     >>> cmd.stdout = sys.stdout
 
     >>> a = bd.bug_from_uuid('a')
     >>> print a.extra_strings
     []
-    >>> ret = cmd.run({'subscriber':'John Doe <j@doe.com>'], ['/a']) # doctest: +NORMALIZE_WHITESPACE
+    >>> ret = cmd.run({'subscriber':'John Doe <j@doe.com>'}, ['/a']) # doctest: +NORMALIZE_WHITESPACE
     Subscriptions for abc/a:
     John Doe <j@doe.com>    all    *
     >>> bd.flush_reload()
@@ -57,7 +57,7 @@ class Subscribe (libbe.command.Command):
     Subscriptions for a:
     Jane Doe <J@doe.com>    all    a.com,a.edu,b.net
     John Doe <j@doe.com>    all    *
-    >>> ret = cmd.run({'-u', 'subscriber':'Jane Doe <J@doe.com>', 'servers':'a.com'}, ['/a']) # doctest: +NORMALIZE_WHITESPACE
+    >>> ret = cmd.run({'unsubscribe':True, 'subscriber':'Jane Doe <J@doe.com>', 'servers':'a.com'}, ['/a']) # doctest: +NORMALIZE_WHITESPACE
     Subscriptions for a:
     Jane Doe <J@doe.com>    all    a.edu,b.net
     John Doe <j@doe.com>    all    *
@@ -69,7 +69,7 @@ class Subscribe (libbe.command.Command):
     Subscriptions for a:
     John Doe <j@doe.com>    all    *
     >>> ret = cmd.run({'unsubscribe':True, 'subscriber':'John Doe <j@doe.com>'}, ['/a'])
-    >>> ret = cmd.run({'subscriber':'Jane Doe <J@doe.com>', '-t':'new'}, 'DIR']) # doctest: +NORMALIZE_WHITESPACE
+    >>> ret = cmd.run({'subscriber':'Jane Doe <J@doe.com>', 'types':'new'}, ['DIR']) # doctest: +NORMALIZE_WHITESPACE
     Subscriptions for bug directory:
     Jane Doe <J@doe.com>    new    *
     >>> ret = cmd.run({'subscriber':'Jane Doe <J@doe.com>'}, ['DIR']) # doctest: +NORMALIZE_WHITESPACE
index f6734d5888649d3093d751e32a7a4f319bcea52c..a4aaf5f18204993a6e5c003214f46841bfaf0158 100644 (file)
@@ -87,7 +87,7 @@ def select_values(string, possible_values, name="unkown"):
         blacklisted_values = set(string[1:].split(','))
         for value in blacklisted_values:
             if value not in possible_values:
-                raise UserError('Invalid %s %s\n  %s'
+                raise libbe.command.UserError('Invalid %s %s\n  %s'
                                 % (name, value, possible_values))
             possible_values.remove(value)
     else:
index 7acce5455011d89af53e4056b511ff0bde5a1545..f8e5f9104f7f47cdc8322fdd6df21767f9686e8c 100644 (file)
@@ -638,7 +638,3 @@ class Diff (object):
     def comment_body_change_string(self, bodies):
         old_body,new_body = bodies
         return difflib.unified_diff(old_body, new_body)
-
-
-if libbe.TESTING == True:
-    suite = doctest.DocTestSuite()