largefiles: test lfconvert error handling; remove redundant code stable
authorGreg Ward <greg@gerg.ca>
Sat, 22 Oct 2011 14:17:19 -0400
branchstable
changeset 15339 be1377d19018
parent 15338 f4b29792fcda
child 15340 0e58513cc59a
largefiles: test lfconvert error handling; remove redundant code
hgext/largefiles/lfcommands.py
tests/test-lfconvert.t
--- a/hgext/largefiles/lfcommands.py	Sat Oct 22 13:48:56 2011 -0400
+++ b/hgext/largefiles/lfcommands.py	Sat Oct 22 14:17:19 2011 -0400
@@ -43,26 +43,14 @@
     else:
         tolfile = True
         size = lfutil.getminsize(ui, True, opts.get('size'), default=None)
-    try:
-        rsrc = hg.repository(ui, src)
-        if not rsrc.local():
-            raise util.Abort(_('%s is not a local Mercurial repo') % src)
-    except error.RepoError, err:
-        ui.traceback()
-        raise util.Abort(err.args[0])
-    if os.path.exists(dest):
-        if not os.path.isdir(dest):
-            raise util.Abort(_('destination %s already exists') % dest)
-        elif os.listdir(dest):
-            raise util.Abort(_('destination %s is not empty') % dest)
-    try:
-        ui.status(_('initializing destination %s\n') % dest)
-        rdst = hg.repository(ui, dest, create=True)
-        if not rdst.local():
-            raise util.Abort(_('%s is not a local Mercurial repo') % dest)
-    except error.RepoError:
-        ui.traceback()
-        raise util.Abort(_('%s is not a repo') % dest)
+    rsrc = hg.repository(ui, src)
+    if not rsrc.local():
+        raise util.Abort(_('%s is not a local Mercurial repo') % src)
+
+    ui.status(_('initializing destination %s\n') % dest)
+    rdst = hg.repository(ui, dest, create=True)
+    if not rdst.local():
+        raise util.Abort(_('%s is not a local Mercurial repo') % dest)
 
     success = False
     try:
--- a/tests/test-lfconvert.t	Sat Oct 22 13:48:56 2011 -0400
+++ b/tests/test-lfconvert.t	Sat Oct 22 14:17:19 2011 -0400
@@ -1,6 +1,7 @@
   $ cat >> $HGRCPATH <<EOF
   > [extensions]
   > largefiles =
+  > share =
   > [largefiles]
   > minsize = 0.5
   > patterns = **.dat
@@ -41,8 +42,24 @@
   $ cat .hglf/a-large-file .hglf/another-large-file
   2e000fa7e85759c7f4c254d4d9c33ef481e459a7
   3b71f43ff30f4b15b5cd85dd9e95ebc7e84eb5a3
+  $ cd ..
+
+"lfconvert" error cases
+  $ hg lfconvert nosuchrepo foo
+  abort: repository nosuchrepo not found!
+  [255]
+  $ hg share -q -U bigfile-repo shared
+  $ echo -n bogus > shared/.hg/sharedpath
+  $ hg lfconvert shared foo
+  abort: .hg/sharedpath points to nonexistent directory $TESTTMP/bogus!
+  [255]
+  $ hg lfconvert bigfile-repo largefiles-repo
+  initializing destination largefiles-repo
+  abort: repository largefiles-repo already exists!
+  [255]
 
 Convert back to a normal (non-largefiles) repo
+  $ cd largefiles-repo
   $ hg lfconvert --to-normal . ../normal-repo
   initializing destination ../normal-repo
   $ cd ../normal-repo