def _debug(n): fso = debug.FindSharesOptions() storage_index = base32.b2a(n.get_storage_index()) fso.si_s = str( storage_index, "utf-8") # command-line options are unicode on Python 3 fso.nodedirs = [ os.path.dirname(abspath_expanduser_unicode(str(storedir))) for (i, ss, storedir) in self.iterate_servers() ] fso.stdout = StringIO() fso.stderr = StringIO() debug.find_shares(fso) sharefiles = fso.stdout.getvalue().splitlines() expected = self.nm.default_encoding_parameters["n"] self.failUnlessEqual(len(sharefiles), expected) do = debug.DumpOptions() do["filename"] = sharefiles[0] do.stdout = StringIO() debug.dump_share(do) output = do.stdout.getvalue() lines = set(output.splitlines()) self.failUnless("Mutable slot found:" in lines, output) self.failUnless(" share_type: MDMF" in lines, output) self.failUnless(" num_extra_leases: 0" in lines, output) self.failUnless(" MDMF contents:" in lines, output) self.failUnless(" seqnum: 1" in lines, output) self.failUnless(" required_shares: 3" in lines, output) self.failUnless(" total_shares: 10" in lines, output) self.failUnless(" segsize: 131073" in lines, output) self.failUnless(" datalen: %d" % len(self.data) in lines, output) vcap = str(n.get_verify_cap().to_string(), "utf-8") self.failUnless(" verify-cap: %s" % vcap in lines, output) cso = debug.CatalogSharesOptions() cso.nodedirs = fso.nodedirs cso.stdout = StringIO() cso.stderr = StringIO() debug.catalog_shares(cso) shares = cso.stdout.getvalue().splitlines() oneshare = shares[0] # all shares should be MDMF self.failIf(oneshare.startswith("UNKNOWN"), oneshare) self.failUnless(oneshare.startswith("MDMF"), oneshare) fields = oneshare.split() self.failUnlessEqual(fields[0], "MDMF") self.failUnlessEqual(fields[1].encode("ascii"), storage_index) self.failUnlessEqual(fields[2], "3/10") self.failUnlessEqual(fields[3], "%d" % len(self.data)) self.failUnless(fields[4].startswith("#1:"), fields[3])
def _debug(n): fso = debug.FindSharesOptions() storage_index = base32.b2a(n.get_storage_index()) fso.si_s = storage_index fso.nodedirs = [os.path.dirname(abspath_expanduser_unicode(unicode(storedir))) for (i,ss,storedir) in self.iterate_servers()] fso.stdout = StringIO() fso.stderr = StringIO() debug.find_shares(fso) sharefiles = fso.stdout.getvalue().splitlines() expected = self.nm.default_encoding_parameters["n"] self.failUnlessEqual(len(sharefiles), expected) do = debug.DumpOptions() do["filename"] = sharefiles[0] do.stdout = StringIO() debug.dump_share(do) output = do.stdout.getvalue() lines = set(output.splitlines()) self.failUnless("Mutable slot found:" in lines, output) self.failUnless(" share_type: MDMF" in lines, output) self.failUnless(" num_extra_leases: 0" in lines, output) self.failUnless(" MDMF contents:" in lines, output) self.failUnless(" seqnum: 1" in lines, output) self.failUnless(" required_shares: 3" in lines, output) self.failUnless(" total_shares: 10" in lines, output) self.failUnless(" segsize: 131073" in lines, output) self.failUnless(" datalen: %d" % len(self.data) in lines, output) vcap = n.get_verify_cap().to_string() self.failUnless(" verify-cap: %s" % vcap in lines, output) cso = debug.CatalogSharesOptions() cso.nodedirs = fso.nodedirs cso.stdout = StringIO() cso.stderr = StringIO() debug.catalog_shares(cso) shares = cso.stdout.getvalue().splitlines() oneshare = shares[0] # all shares should be MDMF self.failIf(oneshare.startswith("UNKNOWN"), oneshare) self.failUnless(oneshare.startswith("MDMF"), oneshare) fields = oneshare.split() self.failUnlessEqual(fields[0], "MDMF") self.failUnlessEqual(fields[1], storage_index) self.failUnlessEqual(fields[2], "3/10") self.failUnlessEqual(fields[3], "%d" % len(self.data)) self.failUnless(fields[4].startswith("#1:"), fields[3])