From: Brian Warner <warner@allmydata.com>
Date: Wed, 29 Oct 2008 04:57:44 +0000 (-0700)
Subject: test_web: improve test coverage of PUT DIRURL t=uri replace=false
X-Git-Url: https://git.rkrishnan.org/pf/content/en/seg/class-simplejson.JSONDecoder-index.html?a=commitdiff_plain;h=035099413302d94e38fad59c65740623a2b664f9;p=tahoe-lafs%2Ftahoe-lafs.git

test_web: improve test coverage of PUT DIRURL t=uri replace=false
---

diff --git a/src/allmydata/test/test_web.py b/src/allmydata/test/test_web.py
index 85732704..40f9e402 100644
--- a/src/allmydata/test/test_web.py
+++ b/src/allmydata/test/test_web.py
@@ -2178,6 +2178,25 @@ class Web(WebMixin, testutil.StallMixin, unittest.TestCase):
         d.addCallback(_made_dir)
         return d
 
+    def test_PUT_DIRURL_uri_noreplace(self):
+        d = self.s.create_empty_dirnode()
+        def _made_dir(dn):
+            new_uri = dn.get_uri()
+            # replace /foo with a new (empty) directory, but ask that
+            # replace=false, so it should fail
+            d = self.shouldFail2(error.Error, "test_PUT_DIRURL_uri_noreplace",
+                                 "409 Conflict", "There was already a child by that name, and you asked me to not replace it",
+                                 self.PUT,
+                                 self.public_url + "/foo?t=uri&replace=false",
+                                 new_uri)
+            d.addCallback(lambda res:
+                          self.failUnlessChildURIIs(self.public_root,
+                                                    u"foo",
+                                                    self._foo_uri))
+            return d
+        d.addCallback(_made_dir)
+        return d
+
     def test_PUT_NEWFILEURL_uri(self):
         contents, n, new_uri = self.makefile(8)
         d = self.PUT(self.public_url + "/foo/new.txt?t=uri", new_uri)