test_system.py: improve 'cp -r' coverage: exercise copy from tahoe to local disk
authorBrian Warner <warner@allmydata.com>
Thu, 22 May 2008 01:36:25 +0000 (18:36 -0700)
committerBrian Warner <warner@allmydata.com>
Thu, 22 May 2008 01:36:25 +0000 (18:36 -0700)
src/allmydata/test/test_system.py

index deb07c82babe872faa8f217a63d365631e918c3b..1b6dc495c3c786784a453f5ed7200a06a980167e 100644 (file)
@@ -1812,6 +1812,23 @@ class SystemTest(testutil.SignalMixin, testutil.PollMixin, testutil.StallMixin,
         d.addCallback(run, "get", "dir1/subdir2/rfile4")
         d.addCallback(_check_stdout_against, data="rfile4")
 
+        # and back out again
+        dn_copy = os.path.join(self.basedir, "dir1-copy")
+        d.addCallback(run, "cp", "--verbose", "-r", "tahoe:dir1", dn_copy)
+        def _check_cp_r_out((out,err)):
+            def _cmp(name):
+                old = open(os.path.join(dn, name), "rb").read()
+                newfn = os.path.join(dn_copy, name)
+                self.failUnless(os.path.exists(newfn))
+                new = open(newfn, "rb").read()
+                self.failUnlessEqual(old, new)
+            _cmp("rfile1")
+            _cmp("rfile2")
+            _cmp("rfile3")
+            _cmp(os.path.join("subdir2", "rfile4"))
+            _cmp(os.path.join("subdir2", "rfile5"))
+        d.addCallback(_check_cp_r_out)
+
         # tahoe_ls doesn't currently handle the error correctly: it tries to
         # JSON-parse a traceback.
 ##         def _ls_missing(res):