mirror of
https://github.com/RustPython/RustPython.git
synced 2026-10-28 18:59:04 +08:00
Bump types module to CPython 3.9.7
This commit is contained in:
1 parent
07c6d9f298
commit
2462d167d1
2 files changed
+36
-4
No files matched your search
Vendored
+33
-4
@@ -474,7 +474,7 @@ class TypesTests(unittest.TestCase):
|
||||
|
||||
# No format code means use g, but must have a decimal
|
||||
# and a number after the decimal. This is tricky, because
|
||||
# a totaly empty format specifier means something else.
|
||||
# a totally empty format specifier means something else.
|
||||
# So, just use a sign flag
|
||||
test(1e200, '+g', '+1e+200')
|
||||
test(1e200, '+', '+1e+200')
|
||||
@@ -638,8 +638,13 @@ class MappingProxyTests(unittest.TestCase):
|
||||
self.assertEqual(attrs, {
|
||||
'__contains__',
|
||||
'__getitem__',
|
||||
'__class_getitem__',
|
||||
'__ior__',
|
||||
'__iter__',
|
||||
'__len__',
|
||||
'__or__',
|
||||
'__reversed__',
|
||||
'__ror__',
|
||||
'copy',
|
||||
'get',
|
||||
'items',
|
||||
@@ -788,6 +793,14 @@ class MappingProxyTests(unittest.TestCase):
|
||||
self.assertEqual(set(view.values()), set(values))
|
||||
self.assertEqual(set(view.items()), set(items))
|
||||
|
||||
def test_reversed(self):
|
||||
d = {'a': 1, 'b': 2, 'foo': 0, 'c': 3, 'd': 4}
|
||||
mp = self.mappingproxy(d)
|
||||
del d['foo']
|
||||
r = reversed(mp)
|
||||
self.assertEqual(list(r), list('dcba'))
|
||||
self.assertRaises(StopIteration, next, r)
|
||||
|
||||
def test_copy(self):
|
||||
original = {'key1': 27, 'key2': 51, 'key3': 93}
|
||||
view = self.mappingproxy(original)
|
||||
@@ -798,6 +811,22 @@ class MappingProxyTests(unittest.TestCase):
|
||||
self.assertEqual(view['key1'], 70)
|
||||
self.assertEqual(copy['key1'], 27)
|
||||
|
||||
def test_union(self):
|
||||
mapping = {'a': 0, 'b': 1, 'c': 2}
|
||||
view = self.mappingproxy(mapping)
|
||||
with self.assertRaises(TypeError):
|
||||
view | [('r', 2), ('d', 2)]
|
||||
with self.assertRaises(TypeError):
|
||||
[('r', 2), ('d', 2)] | view
|
||||
with self.assertRaises(TypeError):
|
||||
view |= [('r', 2), ('d', 2)]
|
||||
other = {'c': 3, 'p': 0}
|
||||
self.assertDictEqual(view | other, {'a': 0, 'b': 1, 'c': 3, 'p': 0})
|
||||
self.assertDictEqual(other | view, {'c': 2, 'p': 0, 'a': 0, 'b': 1})
|
||||
self.assertEqual(view, {'a': 0, 'b': 1, 'c': 2})
|
||||
self.assertDictEqual(mapping, {'a': 0, 'b': 1, 'c': 2})
|
||||
self.assertDictEqual(other, {'c': 3, 'p': 0})
|
||||
|
||||
|
||||
class ClassCreationTests(unittest.TestCase):
|
||||
|
||||
@@ -1261,8 +1290,8 @@ class SimpleNamespaceTests(unittest.TestCase):
|
||||
ns2._y = 5
|
||||
name = "namespace"
|
||||
|
||||
self.assertEqual(repr(ns1), "{name}(w=3, x=1, y=2)".format(name=name))
|
||||
self.assertEqual(repr(ns2), "{name}(_y=5, x='spam')".format(name=name))
|
||||
self.assertEqual(repr(ns1), "{name}(x=1, y=2, w=3)".format(name=name))
|
||||
self.assertEqual(repr(ns2), "{name}(x='spam', _y=5)".format(name=name))
|
||||
|
||||
# TODO: RUSTPYTHON
|
||||
@unittest.expectedFailure
|
||||
@@ -1315,7 +1344,7 @@ class SimpleNamespaceTests(unittest.TestCase):
|
||||
ns3.spam = ns2
|
||||
name = "namespace"
|
||||
repr1 = "{name}(c='cookie', spam={name}(...))".format(name=name)
|
||||
repr2 = "{name}(spam={name}(spam={name}(...), x=1))".format(name=name)
|
||||
repr2 = "{name}(spam={name}(x=1, spam={name}(...)))".format(name=name)
|
||||
|
||||
self.assertEqual(repr(ns1), repr1)
|
||||
self.assertEqual(repr(ns2), repr2)
|
||||
|
||||
Vendored
+3
@@ -296,4 +296,7 @@ def coroutine(func):
|
||||
return wrapped
|
||||
|
||||
|
||||
GenericAlias = type(list[int])
|
||||
|
||||
|
||||
__all__ = [n for n in globals() if n[:1] != '_']
|
||||
Reference in new issue
Block a user