From a5aebf0cbd066cf2080fd262ea1aa2084776ad4f Mon Sep 17 00:00:00 2001 From: Brian Warner Date: Tue, 28 Oct 2008 21:54:46 -0700 Subject: [PATCH] web: test (and fix) PUT DIRURL t=uri, which replaces a directory in-place with some other cap --- src/allmydata/test/test_web.py | 16 ++++++++++++++++ src/allmydata/web/directory.py | 2 +- 2 files changed, 17 insertions(+), 1 deletion(-) diff --git a/src/allmydata/test/test_web.py b/src/allmydata/test/test_web.py index 754fee3e..85732704 100644 --- a/src/allmydata/test/test_web.py +++ b/src/allmydata/test/test_web.py @@ -2162,6 +2162,22 @@ class Web(WebMixin, testutil.StallMixin, unittest.TestCase): # shorter than we expected. return d + def test_PUT_DIRURL_uri(self): + d = self.s.create_empty_dirnode() + def _made_dir(dn): + new_uri = dn.get_uri() + # replace /foo with a new (empty) directory + d = self.PUT(self.public_url + "/foo?t=uri", new_uri) + d.addCallback(lambda res: + self.failUnlessEqual(res.strip(), new_uri)) + d.addCallback(lambda res: + self.failUnlessChildURIIs(self.public_root, + u"foo", + new_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) diff --git a/src/allmydata/web/directory.py b/src/allmydata/web/directory.py index 73ae13fa..04f3ae74 100644 --- a/src/allmydata/web/directory.py +++ b/src/allmydata/web/directory.py @@ -159,7 +159,7 @@ class DirectoryNodeHandler(RenderMixin, rend.Page, ReplaceMeMixin): # they're trying to set_uri and that name is already occupied # (by us). raise ExistingChildError() - d = self.parentnode.replace_me_with_a_childcap(ctx, replace) + d = self.replace_me_with_a_childcap(ctx, replace) # TODO: results return d -- 2.45.2