You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
gentoo-overlay/dev-python/future/files/future-0.18.2-tests.patch

270 lines
12 KiB

diff --git a/tests/test_future/test_backports.py b/tests/test_future/test_backports.py
index 9eeb741..63b1afe 100644
--- a/tests/test_future/test_backports.py
+++ b/tests/test_future/test_backports.py
@@ -87,7 +87,8 @@ class TestChainMap(unittest.TestCase):
d['b'] = 20
d['c'] = 30
self.assertEqual(d.maps, [{'b':20, 'c':30}, {'a':1, 'b':2}]) # check internal state
- self.assertEqual(d.items(), dict(a=1, b=20, c=30).items()) # check items/iter/getitem
+ self.assertEqual(sorted(d.items()),
+ sorted(dict(a=1, b=20, c=30).items())) # check items/iter/getitem
self.assertEqual(len(d), 3) # check len
for key in 'abc': # check contains
self.assertIn(key, d)
@@ -96,7 +97,8 @@ class TestChainMap(unittest.TestCase):
del d['b'] # unmask a value
self.assertEqual(d.maps, [{'c':30}, {'a':1, 'b':2}]) # check internal state
- self.assertEqual(d.items(), dict(a=1, b=2, c=30).items()) # check items/iter/getitem
+ self.assertEqual(sorted(d.items()),
+ sorted(dict(a=1, b=2, c=30).items())) # check items/iter/getitem
self.assertEqual(len(d), 3) # check len
for key in 'abc': # check contains
self.assertIn(key, d)
diff --git a/tests/test_future/test_builtins.py b/tests/test_future/test_builtins.py
index ca07b9e..944d97b 100644
--- a/tests/test_future/test_builtins.py
+++ b/tests/test_future/test_builtins.py
@@ -8,7 +8,7 @@ from future.builtins import (bytes, dict, int, range, round, str, super,
ascii, chr, hex, input, next, oct, open, pow,
filter, map, zip, min, max)
-from future.utils import PY3, exec_, native_str, implements_iterator
+from future.utils import PYPY, PY2, PY3, exec_, native_str, implements_iterator
from future.tests.base import (unittest, skip26, expectedFailurePY2,
expectedFailurePY26)
@@ -699,12 +699,13 @@ class BuiltinTest(unittest.TestCase):
self.assertEqual(eval('dir()', g, m), list('xyz'))
self.assertEqual(eval('globals()', g, m), g)
self.assertEqual(eval('locals()', g, m), m)
- self.assertRaises(TypeError, eval, 'a', m)
+ if not (PYPY and PY2):
+ self.assertRaises(TypeError, eval, 'a', m)
class A:
"Non-mapping"
pass
m = A()
- self.assertRaises(TypeError, eval, 'a', g, m)
+ self.assertRaises((AttributeError, TypeError), eval, 'a', g, m)
# Verify that dict subclasses work as well
class D(dict):
@@ -784,8 +785,9 @@ class BuiltinTest(unittest.TestCase):
# self.assertRaisesRegex(NameError, "name 'print' is not defined",
# exec_, code, {'__builtins__': {}})
# Now:
- self.assertRaises(NameError,
- exec_, code, {'__builtins__': {}})
+ if not PYPY:
+ self.assertRaises(NameError,
+ exec_, code, {'__builtins__': {}})
# __builtins__ must be a mapping type
# Was:
# self.assertRaises(TypeError,
@@ -797,8 +799,9 @@ class BuiltinTest(unittest.TestCase):
# Was:
# self.assertRaisesRegex(NameError, "__build_class__ not found",
# exec_, code, {'__builtins__': {}})
- self.assertRaises(NameError,
- exec_, code, {'__builtins__': {}})
+ if not PYPY:
+ self.assertRaises(NameError,
+ exec_, code, {'__builtins__': {}})
class frozendict_error(Exception):
pass
@@ -1304,8 +1307,9 @@ class BuiltinTest(unittest.TestCase):
self.assertAlmostEqual(pow(-1, 0.5), 1j)
self.assertAlmostEqual(pow(-1, 1/3), 0.5 + 0.8660254037844386j)
- # Raises TypeError in Python < v3.5, ValueError in v3.5:
- self.assertRaises((TypeError, ValueError), pow, -1, -2, 3)
+ if sys.hexversion < 0x03080000:
+ # Raises TypeError in Python < v3.5, ValueError in v3.5:
+ self.assertRaises((TypeError, ValueError), pow, -1, -2, 3)
self.assertRaises(ValueError, pow, 1, 2, 0)
self.assertRaises(TypeError, pow)
diff --git a/tests/test_future/test_futurize.py b/tests/test_future/test_futurize.py
index 0d7c42d..4590185 100644
--- a/tests/test_future/test_futurize.py
+++ b/tests/test_future/test_futurize.py
@@ -13,7 +13,7 @@ from lib2to3.pygram import token
from future.tests.base import (CodeHandler, unittest, skip26, reformat_code,
order_future_lines, expectedFailurePY26)
-from future.utils import PY2
+from future.utils import PY2, PY3, PYPY
class TestLibFuturize(unittest.TestCase):
@@ -565,6 +565,7 @@ class TestFuturizeSimple(CodeHandler):
# tarball.write(r2.content)
@expectedFailurePY26
+ @unittest.skipIf(PYPY and PY3, '')
def test_raw_input(self):
"""
Passes in a string to the waiting input() after futurize
diff --git a/tests/test_future/test_int.py b/tests/test_future/test_int.py
index 573a0d5..6172e48 100644
--- a/tests/test_future/test_int.py
+++ b/tests/test_future/test_int.py
@@ -6,7 +6,7 @@ from __future__ import (absolute_import, division,
print_function, unicode_literals)
from future.builtins import *
from future.tests.base import unittest, expectedFailurePY2
-from future.utils import PY26, PY2, raise_from
+from future.utils import PY26, PY2, PY3, PYPY, raise_from
import sys
import random
@@ -357,7 +357,8 @@ class IntTestCases(unittest.TestCase):
self.assertEqual(int(Foo0()), 42)
self.assertEqual(int(Foo1()), 42)
self.assertEqual(int(Foo2()), 42)
- self.assertEqual(int(Foo3()), 0)
+ if not (PYPY and PY3):
+ self.assertEqual(int(Foo3()), 0)
self.assertEqual(int(Foo4()), 42)
self.assertRaises(TypeError, int, Foo5())
diff --git a/tests/test_future/test_isinstance.py b/tests/test_future/test_isinstance.py
index 33c0a58..ccda709 100644
--- a/tests/test_future/test_isinstance.py
+++ b/tests/test_future/test_isinstance.py
@@ -4,6 +4,7 @@ From the Python 3.3 test suite
from __future__ import (absolute_import, division, unicode_literals)
from future.builtins import *
+from future.utils import PYPY
# Tests some corner cases with isinstance() and issubclass(). While these
# tests use new style classes and properties, they actually do whitebox
@@ -264,11 +265,13 @@ class TestIsInstanceIsSubclass(unittest.TestCase):
self.assertEqual(True, issubclass(int, (int, (float, int))))
self.assertEqual(True, issubclass(str, (str, (Child, NewChild, str))))
+ @unittest.skipIf(PYPY, '')
def test_subclass_recursion_limit(self):
# make sure that issubclass raises RuntimeError before the C stack is
# blown
self.assertRaises(RuntimeError, blowstack, issubclass, str, str)
+ @unittest.skipIf(PYPY, '')
def test_isinstance_recursion_limit(self):
# make sure that issubclass raises RuntimeError before the C stack is
# blown
diff --git a/tests/test_future/test_str.py b/tests/test_future/test_str.py
index 5108548..eac602f 100644
--- a/tests/test_future/test_str.py
+++ b/tests/test_future/test_str.py
@@ -201,6 +201,7 @@ class TestStr(unittest.TestCase):
with self.assertRaises(TypeError):
s.join(byte_strings2)
+ @unittest.skipIf(utils.PYPY and utils.PY2, '')
def test_str_join_staticmethod(self):
"""
Issue #33
@@ -430,10 +431,11 @@ class TestStr(unittest.TestCase):
e = s * long(4)
self.assertTrue(isinstance(e, str))
self.assertEqual(e, u'ABCABCABCABC')
- with self.assertRaises(TypeError):
- s * 3.3
- with self.assertRaises(TypeError):
- s * (3.3 + 3j)
+ if not (utils.PYPY and utils.PY2):
+ with self.assertRaises(TypeError):
+ s * 3.3
+ with self.assertRaises(TypeError):
+ s * (3.3 + 3j)
def test_rmul(self):
s = str(u'XYZ')
@@ -447,10 +449,11 @@ class TestStr(unittest.TestCase):
e = long(3) * s
self.assertTrue(isinstance(e, str))
self.assertEqual(e, u'XYZXYZXYZ')
- with self.assertRaises(TypeError):
- 3.3 * s
- with self.assertRaises(TypeError):
- (3.3 + 3j) * s
+ if not (utils.PYPY and utils.PY2):
+ with self.assertRaises(TypeError):
+ 3.3 * s
+ with self.assertRaises(TypeError):
+ (3.3 + 3j) * s
@unittest.skip('Fails on Python <= 2.7.6 due to string subclass slicing bug')
def test_slice(self):
diff --git a/tests/test_future/test_urllib2.py b/tests/test_future/test_urllib2.py
index 2d69dad..3750737 100644
--- a/tests/test_future/test_urllib2.py
+++ b/tests/test_future/test_urllib2.py
@@ -691,10 +691,7 @@ class HandlerTests(unittest.TestCase):
h = NullFTPHandler(data)
h.parent = MockOpener()
- # MIME guessing works in Python 3.8!
guessed_mime = None
- if sys.hexversion >= 0x03080000:
- guessed_mime = "image/gif"
for url, host, port, user, passwd, type_, dirs, filename, mimetype in [
("ftp://localhost/foo/bar/baz.html",
"localhost", ftplib.FTP_PORT, "", "", "I",
diff --git a/tests/test_past/test_builtins.py b/tests/test_past/test_builtins.py
index d16978e..f37b26c 100644
--- a/tests/test_past/test_builtins.py
+++ b/tests/test_past/test_builtins.py
@@ -21,6 +21,7 @@ import random
from os import unlink
from operator import neg
from future.tests.base import unittest, expectedFailurePY3, skip26
+from future.utils import PYPY, PY2
# count the number of test runs.
# used to skip running test_execfile() multiple times
@@ -423,6 +424,7 @@ class BuiltinTest(unittest.TestCase):
self.assertRaises(TypeError, eval, ())
@expectedFailurePY3
+ @unittest.skipIf(PYPY and PY2, '')
def test_general_eval(self):
# Tests that general mappings can be used for the locals argument
@@ -1174,7 +1176,8 @@ class BuiltinTest(unittest.TestCase):
def __cmp__(self, other):
raise RuntimeError
__hash__ = None # Invalid cmp makes this unhashable
- self.assertRaises(RuntimeError, range, a, a + 1, badzero(1))
+ if not (PYPY and PY2):
+ self.assertRaises(RuntimeError, range, a, a + 1, badzero(1))
# Reject floats.
self.assertRaises(TypeError, range, 1., 1., 1.)
diff --git a/tests/test_past/test_olddict.py b/tests/test_past/test_olddict.py
index 9f21060..539c277 100644
--- a/tests/test_past/test_olddict.py
+++ b/tests/test_past/test_olddict.py
@@ -7,7 +7,7 @@ from __future__ import absolute_import, unicode_literals, print_function
import os
import sys
-from future.utils import implements_iterator, PY3
+from future.utils import implements_iterator, PYPY, PY2, PY3
from future.tests.base import unittest, skip26
from past.builtins import dict
@@ -415,6 +415,7 @@ class Py2DictTest(unittest.TestCase):
self.assertRaises(Exc, d.setdefault, x, [])
@skip26
+ @unittest.skipIf(PYPY, '')
def test_setdefault_atomic(self):
# Issue #13521: setdefault() calls __hash__ and __eq__ only once.
class Hashed(object):