diff --git a/src/allmydata/test/common_py3.py b/src/allmydata/test/common_py3.py index f917cf8fb..0dae05aa6 100644 --- a/src/allmydata/test/common_py3.py +++ b/src/allmydata/test/common_py3.py @@ -12,17 +12,12 @@ from __future__ import print_function from future.utils import PY2 if PY2: from builtins import filter, map, zip, ascii, chr, hex, input, next, oct, open, pow, round, super, bytes, dict, list, object, range, str, max, min # noqa: F401 -from past.builtins import unicode import os import time import signal from twisted.internet import reactor -from twisted.trial import unittest - -from ..util.assertutil import precondition -from ..util.encodingutil import unicode_platform, get_filesystem_encoding class TimezoneMixin(object): @@ -70,20 +65,3 @@ class SignalMixin(object): if self.sigchldHandler: signal.signal(signal.SIGCHLD, self.sigchldHandler) return super(SignalMixin, self).tearDown() - - -class ReallyEqualMixin(object): - def failUnlessReallyEqual(self, a, b, msg=None): - self.assertEqual(a, b, msg) - self.assertEqual(type(a), type(b), "a :: %r (%s), b :: %r (%s), %r" % (a, type(a), b, type(b), msg)) - - -def skip_if_cannot_represent_filename(u): - precondition(isinstance(u, unicode)) - - enc = get_filesystem_encoding() - if not unicode_platform(): - try: - u.encode(enc) - except UnicodeEncodeError: - raise unittest.SkipTest("A non-ASCII filename could not be encoded on this platform.") diff --git a/src/allmydata/test/common_util.py b/src/allmydata/test/common_util.py index 3b81be109..ce6271399 100644 --- a/src/allmydata/test/common_util.py +++ b/src/allmydata/test/common_util.py @@ -10,15 +10,23 @@ from twisted.trial import unittest from ..util.assertutil import precondition from ..scripts import runner -from allmydata.util.encodingutil import get_io_encoding +from allmydata.util.encodingutil import unicode_platform, get_filesystem_encoding, get_io_encoding # Imported for backwards compatibility: from future.utils import bord, bchr, binary_type from past.builtins import unicode -from .common_py3 import ( - SignalMixin, skip_if_cannot_represent_filename, ReallyEqualMixin -) +from .common_py3 import SignalMixin +def skip_if_cannot_represent_filename(u): + precondition(isinstance(u, unicode)) + + enc = get_filesystem_encoding() + if not unicode_platform(): + try: + u.encode(enc) + except UnicodeEncodeError: + raise unittest.SkipTest("A non-ASCII filename could not be encoded on this platform.") + def skip_if_cannot_represent_argv(u): precondition(isinstance(u, unicode)) try: @@ -80,6 +88,12 @@ def flip_one_bit(s, offset=0, size=None): return result +class ReallyEqualMixin(object): + def failUnlessReallyEqual(self, a, b, msg=None): + self.assertEqual(a, b, msg) + self.assertEqual(type(a), type(b), "a :: %r (%s), b :: %r (%s), %r" % (a, type(a), b, type(b), msg)) + + class StallMixin(object): def stall(self, res=None, delay=1): d = defer.Deferred() diff --git a/src/allmydata/test/test_encodingutil.py b/src/allmydata/test/test_encodingutil.py index 376bd6ec6..cbc9143b7 100644 --- a/src/allmydata/test/test_encodingutil.py +++ b/src/allmydata/test/test_encodingutil.py @@ -77,7 +77,7 @@ from twisted.trial import unittest from twisted.python.filepath import FilePath -from allmydata.test.common_py3 import ( +from allmydata.test.common_util import ( ReallyEqualMixin, skip_if_cannot_represent_filename, ) from allmydata.util import encodingutil, fileutil