]> git.rkrishnan.org Git - tahoe-lafs/tahoe-lafs.git/blobdiff - src/allmydata/test/test_cli.py
Fix some potential bugs in test code exposed by check-miscaptures.py. refs #1556
[tahoe-lafs/tahoe-lafs.git] / src / allmydata / test / test_cli.py
index 9a60c5fdd5d9dcccae56596a05dcccefae09a160..f9acbc0630a9c0eb61f8a0b1071d6968523181c2 100644 (file)
@@ -757,9 +757,9 @@ class CreateAlias(GridTestMixin, CLITestMixin, unittest.TestCase):
             self.failUnlessIn("cannot contain", stderr)
 
         for invalid in ['foo:bar', 'foo bar', 'foobar::']:
-            d.addCallback(lambda res: self.do_cli("create-alias", invalid))
+            d.addCallback(lambda res, invalid=invalid: self.do_cli("create-alias", invalid))
             d.addCallback(_check_invalid)
-            d.addCallback(lambda res: self.do_cli("add-alias", invalid, self.two_uri))
+            d.addCallback(lambda res, invalid=invalid: self.do_cli("add-alias", invalid, self.two_uri))
             d.addCallback(_check_invalid)
 
         def _test_urls(junk):
@@ -1145,7 +1145,7 @@ class Put(GridTestMixin, CLITestMixin, unittest.TestCase):
     def _check_mdmf_json(self, (rc, json, err)):
          self.failUnlessEqual(rc, 0)
          self.failUnlessEqual(err, "")
-         self.failUnlessIn('"mutable-type": "mdmf"', json)
+         self.failUnlessIn('"format": "MDMF"', json)
          # We also want a valid MDMF cap to be in the json.
          self.failUnlessIn("URI:MDMF", json)
          self.failUnlessIn("URI:MDMF-RO", json)
@@ -1154,7 +1154,7 @@ class Put(GridTestMixin, CLITestMixin, unittest.TestCase):
     def _check_sdmf_json(self, (rc, json, err)):
         self.failUnlessEqual(rc, 0)
         self.failUnlessEqual(err, "")
-        self.failUnlessIn('"mutable-type": "sdmf"', json)
+        self.failUnlessIn('"format": "SDMF"', json)
         # We also want to see the appropriate SDMF caps.
         self.failUnlessIn("URI:SSK", json)
         self.failUnlessIn("URI:SSK-RO", json)
@@ -1171,6 +1171,9 @@ class Put(GridTestMixin, CLITestMixin, unittest.TestCase):
         def _put_and_ls(ign, mutable_type, filename):
             d2 = self.do_cli("put", "--mutable", "--mutable-type="+mutable_type,
                              fn1, filename)
+            def _dont_fail((rc, out, err)):
+                self.failUnlessEqual(rc, 0)
+            d2.addCallback(_dont_fail)
             d2.addCallback(lambda ign: self.do_cli("ls", "--json", filename))
             return d2
 
@@ -1229,7 +1232,7 @@ class Put(GridTestMixin, CLITestMixin, unittest.TestCase):
         d = self.do_cli("put", "--mutable", "--mutable-type=mdmf", fn1)
         def _got_cap((rc, out, err)):
             self.failUnlessEqual(rc, 0)
-            self.cap = out
+            self.cap = out.strip()
         d.addCallback(_got_cap)
         # Now try to write something to the cap using put.
         data2 = "data2" * 100000
@@ -1248,13 +1251,11 @@ class Put(GridTestMixin, CLITestMixin, unittest.TestCase):
             self.failUnlessEqual(rc, 0)
             self.failUnlessEqual(out, data2)
         d.addCallback(_got_data)
-        # Now strip the extension information off of the cap and try
-        # to put something to it.
-        def _make_bare_cap(ignored):
-            cap = self.cap.split(":")
-            cap = ":".join(cap[:len(cap) - 2])
-            self.cap = cap
-        d.addCallback(_make_bare_cap)
+        # add some extension information to the cap and try to put something
+        # to it.
+        def _make_extended_cap(ignored):
+            self.cap = self.cap + ":Extension-Stuff"
+        d.addCallback(_make_extended_cap)
         data3 = "data3" * 100000
         fn3 = os.path.join(self.basedir, "data3")
         fileutil.write(fn3, data3)
@@ -1277,7 +1278,7 @@ class Put(GridTestMixin, CLITestMixin, unittest.TestCase):
         d = self.do_cli("put", "--mutable", "--mutable-type=sdmf", fn1)
         def _got_cap((rc, out, err)):
             self.failUnlessEqual(rc, 0)
-            self.cap = out
+            self.cap = out.strip()
         d.addCallback(_got_cap)
         # Now try to write something to the cap using put.
         data2 = "data2" * 100000
@@ -1617,8 +1618,8 @@ class List(GridTestMixin, CLITestMixin, unittest.TestCase):
             self.failUnlessIn(self._sdmf_uri, out)
             self.failUnlessIn(self._sdmf_readonly_uri, out)
             self.failUnlessIn(self._imm_uri, out)
-            self.failUnlessIn('"mutable-type": "sdmf"', out)
-            self.failUnlessIn('"mutable-type": "mdmf"', out)
+            self.failUnlessIn('"format": "SDMF"', out)
+            self.failUnlessIn('"format": "MDMF"', out)
         d.addCallback(_got_json)
         return d
 
@@ -3301,36 +3302,29 @@ class Mkdir(GridTestMixin, CLITestMixin, unittest.TestCase):
         self.basedir = os.path.dirname(self.mktemp())
         self.set_up_grid()
         d = self.do_cli("create-alias", "tahoe")
-        d.addCallback(lambda ignored:
-            self.do_cli("mkdir", "--mutable-type=sdmf", "tahoe:foo"))
         def _check((rc, out, err), st):
             self.failUnlessReallyEqual(rc, 0)
             self.failUnlessReallyEqual(err, "")
             self.failUnlessIn(st, out)
             return out
-        def _stash_dircap(cap):
-            self._dircap = cap
-            u = uri.from_string(cap)
-            fn_uri = u.get_filenode_cap()
-            self._filecap = fn_uri.to_string()
-        d.addCallback(_check, "URI:DIR2")
-        d.addCallback(_stash_dircap)
-        d.addCallback(lambda ignored:
-            self.do_cli("ls", "--json", "tahoe:foo"))
-        d.addCallback(_check, "URI:DIR2")
-        d.addCallback(lambda ignored:
-            self.do_cli("ls", "--json", self._filecap))
-        d.addCallback(_check, '"mutable-type": "sdmf"')
-        d.addCallback(lambda ignored:
-            self.do_cli("mkdir", "--mutable-type=MDMF", "tahoe:bar"))
-        d.addCallback(_check, "URI:DIR2-MDMF")
-        d.addCallback(_stash_dircap)
-        d.addCallback(lambda ignored:
-            self.do_cli("ls", "--json", "tahoe:bar"))
-        d.addCallback(_check, "URI:DIR2-MDMF")
-        d.addCallback(lambda ignored:
-            self.do_cli("ls", "--json", self._filecap))
-        d.addCallback(_check, '"mutable-type": "mdmf"')
+        def _mkdir(ign, mutable_type, uri_prefix, dirname):
+            d2 = self.do_cli("mkdir", "--mutable-type="+mutable_type, dirname)
+            d2.addCallback(_check, uri_prefix)
+            def _stash_filecap(cap):
+                u = uri.from_string(cap)
+                fn_uri = u.get_filenode_cap()
+                self._filecap = fn_uri.to_string()
+            d2.addCallback(_stash_filecap)
+            d2.addCallback(lambda ign: self.do_cli("ls", "--json", dirname))
+            d2.addCallback(_check, uri_prefix)
+            d2.addCallback(lambda ign: self.do_cli("ls", "--json", self._filecap))
+            d2.addCallback(_check, '"format": "%s"' % (mutable_type.upper(),))
+            return d2
+
+        d.addCallback(_mkdir, "sdmf", "URI:DIR2", "tahoe:foo")
+        d.addCallback(_mkdir, "SDMF", "URI:DIR2", "tahoe:foo2")
+        d.addCallback(_mkdir, "mdmf", "URI:DIR2-MDMF", "tahoe:bar")
+        d.addCallback(_mkdir, "MDMF", "URI:DIR2-MDMF", "tahoe:bar2")
         return d
 
     def test_mkdir_mutable_type_unlinked(self):
@@ -3354,13 +3348,13 @@ class Mkdir(GridTestMixin, CLITestMixin, unittest.TestCase):
         d.addCallback(_stash_dircap)
         d.addCallback(lambda res: self.do_cli("ls", "--json",
                                               self._filecap))
-        d.addCallback(_check, '"mutable-type": "sdmf"')
+        d.addCallback(_check, '"format": "SDMF"')
         d.addCallback(lambda res: self.do_cli("mkdir", "--mutable-type=mdmf"))
         d.addCallback(_check, "URI:DIR2-MDMF")
         d.addCallback(_stash_dircap)
         d.addCallback(lambda res: self.do_cli("ls", "--json",
                                               self._filecap))
-        d.addCallback(_check, '"mutable-type": "mdmf"')
+        d.addCallback(_check, '"format": "MDMF"')
         return d
 
     def test_mkdir_bad_mutable_type(self):