summaryrefslogtreecommitdiff
path: root/dev-python/future/files/future-0.18.2-tests.patch
blob: 3742adb72821219ac8ce2a8434cbd97a825ff77b (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
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):