diff options
-rw-r--r-- | becommands/set_root.py | 12 | ||||
-rw-r--r-- | libbe/bugdir.py | 21 |
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}) |