web: test (and fix) PUT DIRURL t=uri, which replaces a directory in-place with some other cap

This commit is contained in:
Brian Warner 2008-10-28 21:54:46 -07:00
parent e1d9169ba3
commit a5aebf0cbd
2 changed files with 17 additions and 1 deletions

View File

@ -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)

View File

@ -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