mirror of
https://github.com/tahoe-lafs/tahoe-lafs.git
synced 2024-12-20 05:28:04 +00:00
make test_util pass under both pythons
This commit is contained in:
parent
361de05980
commit
93c474c39b
@ -741,7 +741,7 @@ class _Client(node.Node, pollmixin.PollMixin):
|
||||
private_key_str = self.config.get_or_create_private_config("node.privkey", _make_key)
|
||||
private_key, public_key = ed25519.signing_keypair_from_string(private_key_str)
|
||||
public_key_str = ed25519.string_from_verifying_key(public_key)
|
||||
self.config.write_config_file("node.pubkey", public_key_str + "\n")
|
||||
self.config.write_config_file("node.pubkey", public_key_str + "\n", "w")
|
||||
self._node_private_key = private_key
|
||||
self._node_public_key = public_key
|
||||
|
||||
|
@ -1,6 +1,7 @@
|
||||
from __future__ import print_function
|
||||
|
||||
import os, signal
|
||||
from future.utils import PY2
|
||||
from random import randrange
|
||||
from six.moves import StringIO
|
||||
|
||||
@ -10,8 +11,12 @@ from twisted.trial import unittest
|
||||
|
||||
from ..util.assertutil import precondition
|
||||
from allmydata.util.encodingutil import (unicode_platform, get_filesystem_encoding,
|
||||
|
||||
get_io_encoding)
|
||||
#from ..scripts import runner
|
||||
|
||||
if PY2: # XXX this is a hack that makes some tests pass on Python3, remove
|
||||
# in the future
|
||||
from ..scripts import runner
|
||||
|
||||
def skip_if_cannot_represent_filename(u):
|
||||
precondition(isinstance(u, unicode))
|
||||
|
@ -36,12 +36,12 @@ def sha256(data):
|
||||
|
||||
:returns: a hex-encoded SHA256 hash of the data
|
||||
"""
|
||||
return binascii.hexlify(hashlib.sha256(data).digest())
|
||||
return binascii.hexlify(hashlib.sha256(data.encode('utf8')).digest()).decode("utf8")
|
||||
|
||||
|
||||
class IDLib(unittest.TestCase):
|
||||
def test_nodeid_b2a(self):
|
||||
self.failUnlessEqual(idlib.nodeid_b2a("\x00"*20), "a"*32)
|
||||
self.failUnlessEqual(idlib.nodeid_b2a(b"\x00"*20), "a"*32)
|
||||
|
||||
|
||||
class MyList(list):
|
||||
@ -244,10 +244,10 @@ class FileUtil(ReallyEqualMixin, unittest.TestCase):
|
||||
basedir = "util/FileUtil/test_write_atomically"
|
||||
fileutil.make_dirs(basedir)
|
||||
fn = os.path.join(basedir, "here")
|
||||
fileutil.write_atomically(fn, u"one")
|
||||
self.failUnlessEqual(fileutil.read(fn), "one")
|
||||
fileutil.write_atomically(fn, b"one")
|
||||
self.failUnlessEqual(fileutil.read(fn), b"one")
|
||||
fileutil.write_atomically(fn, u"two", mode="") # non-binary
|
||||
self.failUnlessEqual(fileutil.read(fn), "two")
|
||||
self.failUnlessEqual(fileutil.read(fn), b"two")
|
||||
|
||||
def test_rename(self):
|
||||
basedir = "util/FileUtil/test_rename"
|
||||
@ -270,20 +270,20 @@ class FileUtil(ReallyEqualMixin, unittest.TestCase):
|
||||
self.failUnlessRaises(OSError, fileutil.rename_no_overwrite, source_path, dest_path)
|
||||
|
||||
# when only dest exists
|
||||
fileutil.write(dest_path, "dest")
|
||||
fileutil.write(dest_path, b"dest")
|
||||
self.failUnlessRaises(OSError, fileutil.rename_no_overwrite, source_path, dest_path)
|
||||
self.failUnlessEqual(fileutil.read(dest_path), "dest")
|
||||
self.failUnlessEqual(fileutil.read(dest_path), b"dest")
|
||||
|
||||
# when both exist
|
||||
fileutil.write(source_path, "source")
|
||||
fileutil.write(source_path, b"source")
|
||||
self.failUnlessRaises(OSError, fileutil.rename_no_overwrite, source_path, dest_path)
|
||||
self.failUnlessEqual(fileutil.read(source_path), "source")
|
||||
self.failUnlessEqual(fileutil.read(dest_path), "dest")
|
||||
self.failUnlessEqual(fileutil.read(source_path), b"source")
|
||||
self.failUnlessEqual(fileutil.read(dest_path), b"dest")
|
||||
|
||||
# when only source exists
|
||||
os.remove(dest_path)
|
||||
fileutil.rename_no_overwrite(source_path, dest_path)
|
||||
self.failUnlessEqual(fileutil.read(dest_path), "source")
|
||||
self.failUnlessEqual(fileutil.read(dest_path), b"source")
|
||||
self.failIf(os.path.exists(source_path))
|
||||
|
||||
def test_replace_file(self):
|
||||
@ -297,21 +297,21 @@ class FileUtil(ReallyEqualMixin, unittest.TestCase):
|
||||
self.failUnlessRaises(fileutil.ConflictError, fileutil.replace_file, replaced_path, replacement_path)
|
||||
|
||||
# when only replaced exists
|
||||
fileutil.write(replaced_path, "foo")
|
||||
fileutil.write(replaced_path, b"foo")
|
||||
self.failUnlessRaises(fileutil.ConflictError, fileutil.replace_file, replaced_path, replacement_path)
|
||||
self.failUnlessEqual(fileutil.read(replaced_path), "foo")
|
||||
self.failUnlessEqual(fileutil.read(replaced_path), b"foo")
|
||||
|
||||
# when both replaced and replacement exist
|
||||
fileutil.write(replacement_path, "bar")
|
||||
fileutil.write(replacement_path, b"bar")
|
||||
fileutil.replace_file(replaced_path, replacement_path)
|
||||
self.failUnlessEqual(fileutil.read(replaced_path), "bar")
|
||||
self.failUnlessEqual(fileutil.read(replaced_path), b"bar")
|
||||
self.failIf(os.path.exists(replacement_path))
|
||||
|
||||
# when only replacement exists
|
||||
os.remove(replaced_path)
|
||||
fileutil.write(replacement_path, "bar")
|
||||
fileutil.write(replacement_path, b"bar")
|
||||
fileutil.replace_file(replaced_path, replacement_path)
|
||||
self.failUnlessEqual(fileutil.read(replaced_path), "bar")
|
||||
self.failUnlessEqual(fileutil.read(replaced_path), b"bar")
|
||||
self.failIf(os.path.exists(replacement_path))
|
||||
|
||||
def test_du(self):
|
||||
@ -331,7 +331,9 @@ class FileUtil(ReallyEqualMixin, unittest.TestCase):
|
||||
def test_abspath_expanduser_unicode(self):
|
||||
self.failUnlessRaises(AssertionError, fileutil.abspath_expanduser_unicode, b"bytestring")
|
||||
|
||||
saved_cwd = os.path.normpath(os.getcwd()).decode("utf8")
|
||||
saved_cwd = os.path.normpath(os.getcwd())
|
||||
if PY2:
|
||||
saved_cwd = saved_cwd.decode("utf8")
|
||||
abspath_cwd = fileutil.abspath_expanduser_unicode(u".")
|
||||
abspath_cwd_notlong = fileutil.abspath_expanduser_unicode(u".", long_path=False)
|
||||
self.failUnless(isinstance(saved_cwd, str), saved_cwd)
|
||||
@ -452,9 +454,9 @@ class FileUtil(ReallyEqualMixin, unittest.TestCase):
|
||||
fileutil.remove(long_path)
|
||||
self.addCleanup(_cleanup)
|
||||
|
||||
fileutil.write(long_path, "test")
|
||||
fileutil.write(long_path, b"test")
|
||||
self.failUnless(os.path.exists(long_path))
|
||||
self.failUnlessEqual(fileutil.read(long_path), "test")
|
||||
self.failUnlessEqual(fileutil.read(long_path), b"test")
|
||||
_cleanup()
|
||||
self.failIf(os.path.exists(long_path))
|
||||
|
||||
@ -512,7 +514,7 @@ class FileUtil(ReallyEqualMixin, unittest.TestCase):
|
||||
|
||||
# create a file
|
||||
f = os.path.join(basedir, "1.txt")
|
||||
fileutil.write(f, "a"*10)
|
||||
fileutil.write(f, b"a"*10)
|
||||
fileinfo = fileutil.get_pathinfo(f)
|
||||
self.failUnlessTrue(fileinfo.isfile)
|
||||
self.failUnlessTrue(fileinfo.exists)
|
||||
@ -540,7 +542,7 @@ class FileUtil(ReallyEqualMixin, unittest.TestCase):
|
||||
fileutil.make_dirs(basedir)
|
||||
|
||||
f = os.path.join(basedir, "1.txt")
|
||||
fileutil.write(f, "a"*10)
|
||||
fileutil.write(f, b"a"*10)
|
||||
|
||||
# create a symlink pointing to 1.txt
|
||||
slname = os.path.join(basedir, "linkto1.txt")
|
||||
@ -568,7 +570,7 @@ class PollMixinTests(unittest.TestCase):
|
||||
|
||||
def test_PollMixin_False_then_True(self):
|
||||
i = iter([False, True])
|
||||
d = self.pm.poll(check_f=i.next,
|
||||
d = self.pm.poll(check_f=lambda: next(i),
|
||||
pollinterval=0.1)
|
||||
return d
|
||||
|
||||
@ -813,7 +815,7 @@ class SimpleSpans(object):
|
||||
yield (prevstart, prevend-prevstart+1)
|
||||
|
||||
def __bool__(self): # this gets us bool()
|
||||
return self.len()
|
||||
return bool(self.len())
|
||||
|
||||
def len(self):
|
||||
return len(self._have)
|
||||
@ -1107,7 +1109,7 @@ class SimpleDataSpans(object):
|
||||
self.add(start, data)
|
||||
|
||||
def __bool__(self): # this gets us bool()
|
||||
return self.len()
|
||||
return bool(self.len())
|
||||
def len(self):
|
||||
return len(self.missing.replace("1", ""))
|
||||
def _dump(self):
|
||||
|
@ -21,6 +21,7 @@ PORTED_MODULES = [
|
||||
"allmydata.util.base32",
|
||||
"allmydata.util.base62",
|
||||
"allmydata.util.deferredutil",
|
||||
"allmydata.util.fileutil",
|
||||
"allmydata.util.hashutil",
|
||||
"allmydata.util.humanreadable",
|
||||
"allmydata.util.mathutil",
|
||||
@ -47,6 +48,7 @@ PORTED_TEST_MODULES = [
|
||||
"allmydata.test.test_pipeline",
|
||||
"allmydata.test.test_python3",
|
||||
"allmydata.test.test_time_format",
|
||||
"allmydata.test.test_util",
|
||||
]
|
||||
|
||||
|
||||
|
@ -10,7 +10,7 @@ class DictOfSets(dict):
|
||||
self[key] = set([value])
|
||||
|
||||
def update(self, otherdictofsets):
|
||||
for key, values in otherdictofsets.iteritems():
|
||||
for key, values in otherdictofsets.items():
|
||||
if key in self:
|
||||
self[key].update(values)
|
||||
else:
|
||||
|
@ -1,5 +1,9 @@
|
||||
from __future__ import print_function
|
||||
|
||||
from future.utils import PY2
|
||||
if PY2:
|
||||
from future.builtins import object
|
||||
|
||||
|
||||
class Spans(object):
|
||||
"""I represent a compressed list of booleans, one per index (an integer).
|
||||
@ -155,7 +159,7 @@ class Spans(object):
|
||||
for s in self._spans:
|
||||
yield s
|
||||
|
||||
def __nonzero__(self): # this gets us bool()
|
||||
def __bool__(self): # this gets us bool()
|
||||
return bool(self.len())
|
||||
|
||||
def len(self):
|
||||
@ -235,7 +239,7 @@ class DataSpans(object):
|
||||
for (start, data) in other.get_chunks():
|
||||
self.add(start, data)
|
||||
|
||||
def __nonzero__(self): # this gets us bool()
|
||||
def __bool__(self): # this gets us bool()
|
||||
return bool(self.len())
|
||||
|
||||
def len(self):
|
||||
|
@ -8,6 +8,7 @@
|
||||
from __future__ import division, print_function
|
||||
from allmydata.util.mathutil import round_sigfigs
|
||||
import math
|
||||
from functools import reduce
|
||||
import sys
|
||||
|
||||
def pr_file_loss(p_list, k):
|
||||
|
Loading…
Reference in New Issue
Block a user