mirror of
https://github.com/tahoe-lafs/tahoe-lafs.git
synced 2024-12-20 05:28:04 +00:00
All of test_storage passes on Python 3.
This commit is contained in:
parent
2b37da9ca0
commit
1cfe58a52d
@ -1,3 +1,5 @@
|
||||
from future.utils import bytes_to_native_str
|
||||
|
||||
import os, stat, struct, time
|
||||
|
||||
from foolscap.api import Referenceable
|
||||
@ -298,7 +300,9 @@ class BucketReader(Referenceable):
|
||||
|
||||
def __repr__(self):
|
||||
return "<%s %s %s>" % (self.__class__.__name__,
|
||||
base32.b2a(self.storage_index[:8])[:12],
|
||||
bytes_to_native_str(
|
||||
base32.b2a(self.storage_index[:8])[:12]
|
||||
),
|
||||
self.shnum)
|
||||
|
||||
def remote_read(self, offset, length):
|
||||
@ -309,7 +313,7 @@ class BucketReader(Referenceable):
|
||||
return data
|
||||
|
||||
def remote_advise_corrupt_share(self, reason):
|
||||
return self.ss.remote_advise_corrupt_share("immutable",
|
||||
return self.ss.remote_advise_corrupt_share(b"immutable",
|
||||
self.storage_index,
|
||||
self.shnum,
|
||||
reason)
|
||||
|
@ -1,3 +1,4 @@
|
||||
from future.utils import bytes_to_native_str
|
||||
import os, re, struct, time
|
||||
import weakref
|
||||
import six
|
||||
@ -676,6 +677,10 @@ class StorageServer(service.MultiService, Referenceable):
|
||||
|
||||
def remote_advise_corrupt_share(self, share_type, storage_index, shnum,
|
||||
reason):
|
||||
# This is a remote API, I believe, so this has to be bytes for legacy
|
||||
# protocol backwards compatibility reasons.
|
||||
assert isinstance(share_type, bytes)
|
||||
assert isinstance(reason, bytes)
|
||||
fileutil.make_dirs(self.corruption_advisory_dir)
|
||||
now = time_format.iso_utc(sep="T")
|
||||
si_s = si_b2a(storage_index)
|
||||
@ -684,11 +689,11 @@ class StorageServer(service.MultiService, Referenceable):
|
||||
"%s--%s-%d" % (now, si_s, shnum)).replace(":","")
|
||||
with open(fn, "w") as f:
|
||||
f.write("report: Share Corruption\n")
|
||||
f.write("type: %s\n" % share_type)
|
||||
f.write("storage_index: %s\n" % si_s)
|
||||
f.write("type: %s\n" % bytes_to_native_str(share_type))
|
||||
f.write("storage_index: %s\n" % bytes_to_native_str(si_s))
|
||||
f.write("share_number: %d\n" % shnum)
|
||||
f.write("\n")
|
||||
f.write(reason)
|
||||
f.write(bytes_to_native_str(reason))
|
||||
f.write("\n")
|
||||
log.msg(format=("client claims corruption in (%(share_type)s) " +
|
||||
"%(si)s-%(shnum)d: %(reason)s"),
|
||||
|
@ -1,4 +1,4 @@
|
||||
from future.utils import native_str, PY3
|
||||
from future.utils import native_str, PY3, bytes_to_native_str
|
||||
|
||||
import time
|
||||
import os.path
|
||||
@ -731,7 +731,7 @@ class Server(unittest.TestCase):
|
||||
|
||||
si0_s = base32.b2a(b"si0")
|
||||
ss.remote_advise_corrupt_share(b"immutable", b"si0", 0,
|
||||
"This share smells funny.\n")
|
||||
b"This share smells funny.\n")
|
||||
reportdir = os.path.join(workdir, "corruption-advisories")
|
||||
reports = os.listdir(reportdir)
|
||||
self.failUnlessEqual(len(reports), 1)
|
||||
@ -755,11 +755,11 @@ class Server(unittest.TestCase):
|
||||
|
||||
b = ss.remote_get_buckets(b"si1")
|
||||
self.failUnlessEqual(set(b.keys()), set([1]))
|
||||
b[1].remote_advise_corrupt_share("This share tastes like dust.\n")
|
||||
b[1].remote_advise_corrupt_share(b"This share tastes like dust.\n")
|
||||
|
||||
reports = os.listdir(reportdir)
|
||||
self.failUnlessEqual(len(reports), 2)
|
||||
report_si1 = [r for r in reports if si1_s in r][0]
|
||||
report_si1 = [r for r in reports if bytes_to_native_str(si1_s) in r][0]
|
||||
f = open(os.path.join(reportdir, report_si1), "rb")
|
||||
report = f.read()
|
||||
f.close()
|
||||
|
Loading…
Reference in New Issue
Block a user