From 85a50feeaa0a61503435e2efa065ea654338fd1c Mon Sep 17 00:00:00 2001 From: david-sarah Date: Fri, 5 Feb 2010 17:38:55 -0800 Subject: [PATCH] More cleanups to test_cli using new utilities for reading and writing files. --- src/allmydata/test/test_cli.py | 93 +++++++++++++--------------------- 1 file changed, 36 insertions(+), 57 deletions(-) diff --git a/src/allmydata/test/test_cli.py b/src/allmydata/test/test_cli.py index cc909715..a5401767 100644 --- a/src/allmydata/test/test_cli.py +++ b/src/allmydata/test/test_cli.py @@ -28,6 +28,7 @@ from twisted.python import usage timeout = 480 # deep_check takes 360s on Zandr's linksys box, others take > 240s + class CLI(unittest.TestCase): # this test case only looks at argument-processing and simple stuff. def test_options(self): @@ -158,9 +159,7 @@ class CLI(unittest.TestCase): self.failUnless("file renewal secret: arpszxzc2t6kb4okkg7sp765xgkni5z7caavj7lta73vmtymjlxq" in output, output) fileutil.make_dirs("cli/test_dump_cap/private") - f = open("cli/test_dump_cap/private/secret", "w") - f.write("5s33nk3qpvnj2fw3z4mnm2y6fa\n") - f.close() + fileutil.write("cli/test_dump_cap/private/secret", "5s33nk3qpvnj2fw3z4mnm2y6fa\n") output = self._dump_cap("--client-dir", "cli/test_dump_cap", u.to_string()) self.failUnless("file renewal secret: arpszxzc2t6kb4okkg7sp765xgkni5z7caavj7lta73vmtymjlxq" in output, output) @@ -252,15 +251,14 @@ class CLI(unittest.TestCase): nodedir1 = "cli/test_catalog_shares/node1" sharedir = os.path.join(nodedir1, "storage", "shares", "mq", "mqfblse6m5a6dh45isu2cg7oji") fileutil.make_dirs(sharedir) - f = open(os.path.join(sharedir, "8"), "wb") - open("cli/test_catalog_shares/node1/storage/shares/mq/not-a-dir", "wb").close() + fileutil.write("cli/test_catalog_shares/node1/storage/shares/mq/not-a-dir", "") # write a bogus share that looks a little bit like CHK - f.write("\x00\x00\x00\x01" + "\xff" * 200) # this triggers an assert - f.close() + fileutil.write(os.path.join(sharedir, "8"), + "\x00\x00\x00\x01" + "\xff" * 200) # this triggers an assert nodedir2 = "cli/test_catalog_shares/node2" fileutil.make_dirs(nodedir2) - open("cli/test_catalog_shares/node1/storage/shares/not-a-dir", "wb").close() + fileutil.write("cli/test_catalog_shares/node1/storage/shares/not-a-dir", "") # now make sure that the 'catalog-shares' commands survives the error out, err = self._catalog_shares(nodedir1, nodedir2) @@ -491,7 +489,7 @@ class CreateAlias(GridTestMixin, CLITestMixin, unittest.TestCase): def _stash_urls(res): aliases = get_aliases(self.get_clientdir()) node_url_file = os.path.join(self.get_clientdir(), "node.url") - nodeurl = open(node_url_file, "r").read().strip() + nodeurl = fileutil.read(node_url_file).strip() self.welcome_url = nodeurl uribase = nodeurl + "uri/" self.tahoe_url = uribase + urllib.quote(aliases["tahoe"]) @@ -540,15 +538,11 @@ class CreateAlias(GridTestMixin, CLITestMixin, unittest.TestCase): d.addCallback(_test_urls) def _remove_trailing_newline_and_create_alias(ign): - f = open(aliasfile, "r") - old = f.read() - f.close() # ticket #741 is about a manually-edited alias file (which # doesn't end in a newline) being corrupted by a subsequent # "tahoe create-alias" - f = open(aliasfile, "w") - f.write(old.rstrip()) - f.close() + old = fileutil.read(aliasfile) + fileutil.write(aliasfile, old.rstrip()) return self.do_cli("create-alias", "un-corrupted1") d.addCallback(_remove_trailing_newline_and_create_alias) def _check_not_corrupted1((rc,stdout,stderr)): @@ -570,12 +564,8 @@ class CreateAlias(GridTestMixin, CLITestMixin, unittest.TestCase): def _remove_trailing_newline_and_add_alias(ign): # same thing, but for "tahoe add-alias" - f = open(aliasfile, "r") - old = f.read() - f.close() - f = open(aliasfile, "w") - f.write(old.rstrip()) - f.close() + old = fileutil.read(aliasfile) + fileutil.write(aliasfile, old.rstrip()) return self.do_cli("add-alias", "un-corrupted2", self.two_uri) d.addCallback(_remove_trailing_newline_and_add_alias) def _check_not_corrupted((rc,stdout,stderr)): @@ -680,9 +670,7 @@ class Put(GridTestMixin, CLITestMixin, unittest.TestCase): rel_fn = os.path.join(self.basedir, "DATAFILE") abs_fn = os.path.abspath(rel_fn) # we make the file small enough to fit in a LIT file, for speed - f = open(rel_fn, "w") - f.write("short file") - f.close() + fileutil.write(rel_fn, "short file") d = self.do_cli("put", rel_fn) def _uploaded((rc,stdout,stderr)): readcap = stdout @@ -713,9 +701,7 @@ class Put(GridTestMixin, CLITestMixin, unittest.TestCase): # we make the file small enough to fit in a LIT file, for speed DATA = "short file" DATA2 = "short file two" - f = open(rel_fn, "w") - f.write(DATA) - f.close() + fileutil.write(rel_fn, DATA) d = self.do_cli("create-alias", "tahoe") @@ -794,9 +780,7 @@ class Put(GridTestMixin, CLITestMixin, unittest.TestCase): DATA2 = "two" * 100 rel_fn = os.path.join(self.basedir, "DATAFILE") DATA3 = "three" * 100 - f = open(rel_fn, "w") - f.write(DATA3) - f.close() + fileutil.write(rel_fn, DATA3) d = self.do_cli("put", "--mutable", stdin=DATA) def _created(res): @@ -840,14 +824,10 @@ class Put(GridTestMixin, CLITestMixin, unittest.TestCase): DATA1 = "data" * 100 fn1 = os.path.join(self.basedir, "DATA1") - f = open(fn1, "w") - f.write(DATA1) - f.close() + fileutil.write(fn1, DATA1) DATA2 = "two" * 100 fn2 = os.path.join(self.basedir, "DATA2") - f = open(fn2, "w") - f.write(DATA2) - f.close() + fileutil.write(fn2, DATA2) d = self.do_cli("create-alias", "tahoe") d.addCallback(lambda res: @@ -1184,47 +1164,52 @@ class Cp(GridTestMixin, CLITestMixin, unittest.TestCase): # keep track of the filecap self.filecap = out.strip() d.addCallback(_put_file) + # Let's try copying this to the disk using the filecap # cp FILECAP filename - d.addCallback(lambda res: self.do_cli("cp", self.filecap, fn2)) + d.addCallback(lambda ign: self.do_cli("cp", self.filecap, fn2)) def _copy_file((rc, out, err)): self.failUnlessEqual(rc, 0) - results = open(fn2, "r").read() + results = fileutil.read(fn2) self.failUnlessEqual(results, DATA1) d.addCallback(_copy_file) # Test with ./ (see #761) # cp FILECAP localdir - d.addCallback(lambda res: self.do_cli("cp", self.filecap, outdir)) + d.addCallback(lambda ign: self.do_cli("cp", self.filecap, outdir)) def _resp((rc, out, err)): self.failUnlessEqual(rc, 1) self.failUnlessIn("error: you must specify a destination filename", err) d.addCallback(_resp) + # Create a directory, linked at tahoe:test - d.addCallback(lambda res: self.do_cli("mkdir", "tahoe:test")) + d.addCallback(lambda ign: self.do_cli("mkdir", "tahoe:test")) def _get_dir((rc, out, err)): self.failUnlessEqual(rc, 0) self.dircap = out.strip() d.addCallback(_get_dir) + # Upload a file to the directory - d.addCallback(lambda res: - self.do_cli("put", fn1, "tahoe:test/test_file")) + d.addCallback(lambda ign: + self.do_cli("put", fn1, "tahoe:test/test_file")) d.addCallback(lambda (rc, out, err): self.failUnlessEqual(rc, 0)) + # cp DIRCAP/filename localdir - d.addCallback(lambda res: + d.addCallback(lambda ign: self.do_cli("cp", self.dircap + "/test_file", outdir)) def _get_resp((rc, out, err)): self.failUnlessEqual(rc, 0) - results = open(os.path.join(outdir, "test_file"), "r").read() + results = fileutil.read(os.path.join(outdir, "test_file")) self.failUnlessEqual(results, DATA1) d.addCallback(_get_resp) + # cp -r DIRCAP/filename filename2 - d.addCallback(lambda res: + d.addCallback(lambda ign: self.do_cli("cp", self.dircap + "/test_file", fn3)) def _get_resp2((rc, out, err)): self.failUnlessEqual(rc, 0) - results = open(fn3, "r").read() + results = fileutil.read(fn3) self.failUnlessEqual(results, DATA1) d.addCallback(_get_resp2) return d @@ -1252,11 +1237,9 @@ class Cp(GridTestMixin, CLITestMixin, unittest.TestCase): class Backup(GridTestMixin, CLITestMixin, StallMixin, unittest.TestCase): def writeto(self, path, data): - d = os.path.dirname(os.path.join(self.basedir, "home", path)) - fileutil.make_dirs(d) - f = open(os.path.join(self.basedir, "home", path), "w") - f.write(data) - f.close() + full_path = os.path.join(self.basedir, "home", path) + fileutil.make_dirs(os.path.dirname(full_path)) + fileutil.write(full_path, data) def count_output(self, out): mo = re.search(r"(\d)+ files uploaded \((\d+) reused\), " @@ -1495,9 +1478,7 @@ class Backup(GridTestMixin, CLITestMixin, StallMixin, unittest.TestCase): basedir = "cli/Backup/exclude_options" fileutil.make_dirs(basedir) nodeurl_path = os.path.join(basedir, 'node.url') - nodeurl = file(nodeurl_path, 'w') - nodeurl.write('http://example.net:2357/') - nodeurl.close() + fileutil.write(nodeurl_path, 'http://example.net:2357/') def _check_filtering(filtered, all, included, excluded): filtered = set(filtered) @@ -1531,9 +1512,7 @@ class Backup(GridTestMixin, CLITestMixin, StallMixin, unittest.TestCase): # read exclude patterns from file exclusion_string = "_darcs\n*py\n.svn" excl_filepath = os.path.join(basedir, 'exclusion') - excl_file = file(excl_filepath, 'w') - excl_file.write(exclusion_string) - excl_file.close() + fileutil.write(excl_filepath, exclusion_string) backup_options = cli.BackupOptions() backup_options.parseOptions(['--exclude-from', excl_filepath, '--node-directory', basedir, 'from', 'to']) -- 2.45.2