Rev 47: Don't fail a full upload on an already existing dir. in http://bazaar.launchpad.net/%7Ebzr-upload-devs/bzr-upload/trunk

Vincent Ladeuil v.ladeuil+lp at free.fr
Sun Jun 22 17:18:35 BST 2008


At http://bazaar.launchpad.net/%7Ebzr-upload-devs/bzr-upload/trunk

------------------------------------------------------------
revno: 47
revision-id: v.ladeuil+lp at free.fr-20080622161827-6f4igifc2epaq4nb
parent: v.ladeuil+lp at free.fr-20080622160951-45dloyi2l88nt24b
committer: Vincent Ladeuil <v.ladeuil+lp at free.fr>
branch nick: upload
timestamp: Sun 2008-06-22 18:18:27 +0200
message:
  Don't fail a full upload on an already existing dir.
  
  * tests/test_upload.py:
  (TestFullUpload.test_create_remote_dir_twice): New test.
  
  * __init__.py:
  (cmd_upload.make_remote_dir_robustly): Don't try to create the dir
  if it already exists.
modified:
  __init__.py                    __init__.py-20080307145942-xx1xgifrreovahgz-1
  tests/test_upload.py           test_upload.py-20080307145942-xx1xgifrreovahgz-2
-------------- next part --------------
=== modified file '__init__.py'
--- a/__init__.py	2008-06-22 16:09:51 +0000
+++ b/__init__.py	2008-06-22 16:18:27 +0000
@@ -193,9 +193,11 @@
                     self.outf.write('Deleting %s/%s\n' % (
                             self.to_transport.external_url(), relpath))
                 self.to_transport.delete(relpath)
+            else:
+                # Ok the remote dir already exists, nothing to do
+                return
         except errors.PathError:
             pass
-        # FIXME: Errr, what if the remote dir already exists ?
         self.make_remote_dir(relpath, mode)
 
     def delete_remote_file(self, relpath):

=== modified file 'tests/test_upload.py'
--- a/tests/test_upload.py	2008-06-22 16:09:51 +0000
+++ b/tests/test_upload.py	2008-06-22 16:18:27 +0000
@@ -393,6 +393,19 @@
         self.assertRaises(errors.BzrCommandError,
                           self.do_incremental_upload, revision=[rev1, rev2])
 
+    def test_create_remote_dir_twice(self):
+        self.make_local_branch()
+        self.add_dir('dir')
+        self.do_full_upload()
+        self.add_file('dir/goodbye', 'baz')
+
+        self.failIfUpFileExists('dir/goodbye')
+
+        self.do_full_upload()
+
+        self.assertUpFileEqual('baz', 'dir/goodbye')
+        self.assertUpPathModeEqual('dir', 0775)
+
 
 class TestIncrementalUpload(tests.TestCaseWithTransport, TestUploadMixin):
 



More information about the bazaar-commits mailing list