From 656e8195600f425a46da39de9b3cf72e6e88cd1e Mon Sep 17 00:00:00 2001 From: David-Sarah Hopwood <david-sarah@jacaranda.org> Date: Wed, 20 Mar 2013 01:27:17 +0000 Subject: [PATCH] Improve 'tahoe put --help' to clarify behaviour for mutable files, and make sure the documented behaviour is tested. fixes #1372 Signed-off-by: David-Sarah Hopwood <david-sarah@jacaranda.org> --- src/allmydata/scripts/cli.py | 6 +++++- src/allmydata/test/test_cli.py | 12 ++++++++++++ 2 files changed, 17 insertions(+), 1 deletion(-) diff --git a/src/allmydata/scripts/cli.py b/src/allmydata/scripts/cli.py index 6758fe7d..343a5728 100644 --- a/src/allmydata/scripts/cli.py +++ b/src/allmydata/scripts/cli.py @@ -208,7 +208,11 @@ class PutOptions(VDriveOptions): If REMOTE_FILE is missing, upload the file but do not link it into a directory; also print the new filecap to stdout. If LOCAL_FILE is missing or '-', data will be copied from stdin. REMOTE_FILE is assumed to start - with tahoe: unless otherwise specified.""" + with tahoe: unless otherwise specified. + + If the destination file already exists and is mutable, it will be modified + in-place, whether or not --mutable is specified. (--mutable only affects + creation of new files.)""" def getUsage(self, width=None): t = VDriveOptions.getUsage(self, width) diff --git a/src/allmydata/test/test_cli.py b/src/allmydata/test/test_cli.py index 333da02a..d4c26de8 100644 --- a/src/allmydata/test/test_cli.py +++ b/src/allmydata/test/test_cli.py @@ -1173,8 +1173,20 @@ class Put(GridTestMixin, CLITestMixin, unittest.TestCase): d = self.do_cli("create-alias", "tahoe") d.addCallback(lambda res: self.do_cli("put", "--mutable", fn1, "tahoe:uploaded.txt")) + def _check(res): + (rc, out, err) = res + self.failUnlessEqual(rc, 0, str(res)) + self.failUnlessEqual(err, "", str(res)) + self.uri = out + d.addCallback(_check) d.addCallback(lambda res: self.do_cli("put", fn2, "tahoe:uploaded.txt")) + def _check2(res): + (rc, out, err) = res + self.failUnlessEqual(rc, 0, str(res)) + self.failUnlessEqual(err, "", str(res)) + self.failUnlessEqual(out, self.uri, str(res)) + d.addCallback(_check2) d.addCallback(lambda res: self.do_cli("get", "tahoe:uploaded.txt")) d.addCallback(lambda (rc,out,err): self.failUnlessReallyEqual(out, DATA2)) -- 2.45.2