aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--becommands/set_root.py12
-rw-r--r--libbe/bugdir.py21
2 files changed, 28 insertions, 5 deletions
diff --git a/becommands/set_root.py b/becommands/set_root.py
index c83fd1a..df60721 100644
--- a/becommands/set_root.py
+++ b/becommands/set_root.py
@@ -34,13 +34,19 @@ def execute(args):
>>> bd.root = dir.name
>>> dir = tests.arch_dir()
>>> os.chdir(dir.name)
- >>> execute('.')
+ >>> execute(['.'])
Using Arch for revision control.
Directory initialized.
>>> bd = bugdir.tree_root(dir.name+"/{arch}")
>>> bd.root = dir.name
+ >>> try:
+ ... execute(['.'])
+ ... except cmdutil.UserError, e:
+ ... str(e).startswith("Directory already initialized ")
+ Using Arch for revision control.
+ True
>>> tests.clean_up()
- >>> execute(('/highly-unlikely-to-exist',))
+ >>> execute(['/highly-unlikely-to-exist'])
Traceback (most recent call last):
UserError: No such directory: /highly-unlikely-to-exist
"""
@@ -56,6 +62,8 @@ def execute(args):
bugdir.create_bug_dir(args[0], dir_rcs)
except bugdir.NoRootEntry:
raise cmdutil.UserError("No such directory: %s" % args[0])
+ except bugdir.AlreadyInitialized:
+ raise cmdutil.UserError("Directory already initialized: %s" % args[0])
print "Directory initialized."
def get_parser():
diff --git a/libbe/bugdir.py b/libbe/bugdir.py
index 8856db4..c6a9b5b 100644
--- a/libbe/bugdir.py
+++ b/libbe/bugdir.py
@@ -65,20 +65,35 @@ class NoRootEntry(Exception):
self.path = path
Exception.__init__(self, "Specified root does not exist: %s" % path)
+class AlreadyInitialized(Exception):
+ def __init__(self, path):
+ self.path = path
+ Exception.__init__(self,
+ "Specified root is already initialized: %s" % path)
+
def create_bug_dir(path, rcs):
"""
- >>> import no_rcs
+ >>> import no_rcs, tests
>>> create_bug_dir('/highly-unlikely-to-exist', no_rcs)
Traceback (most recent call last):
NoRootEntry: Specified root does not exist: /highly-unlikely-to-exist
+ >>> test_dir = os.path.dirname(tests.bug_arch_dir().dir)
+ >>> try:
+ ... create_bug_dir(test_dir, no_rcs)
+ ... except AlreadyInitialized, e:
+ ... print "Already Initialized"
+ Already Initialized
"""
root = os.path.join(path, ".be")
try:
rcs.mkdir(root)
except OSError, e:
- if e.errno != errno.ENOENT:
+ if e.errno == errno.ENOENT:
+ raise NoRootEntry(path)
+ elif e.errno == errno.EEXIST:
+ raise AlreadyInitialized(path)
+ else:
raise
- raise NoRootEntry(path)
rcs.mkdir(os.path.join(root, "bugs"))
set_version(root, rcs)
map_save(rcs, os.path.join(root, "settings"), {"rcs_name": rcs.name})