bpo-2661: Make mapping tests better usable for custom mapping classes. (GH-11157)
In test_fromkeys() the derived test class now supports all arguments in its constructor so that the class to be tested can use its own constructor in its fromkeys() implementation. In test_mutatingiteration() the test fails as soon as iterating over a dictionary with one entry and adding new entries in the loop iterates more than once (to avoid endless loops in faulty implementations). https://bugs.python.org/issue2661
This commit is contained in:
parent
cb65202520
commit
6af230359e
|
@ -448,7 +448,7 @@ class TestMappingProtocol(BasicTestMappingProtocol):
|
||||||
class Exc(Exception): pass
|
class Exc(Exception): pass
|
||||||
|
|
||||||
class baddict1(self.type2test):
|
class baddict1(self.type2test):
|
||||||
def __init__(self):
|
def __init__(self, *args, **kwargs):
|
||||||
raise Exc()
|
raise Exc()
|
||||||
|
|
||||||
self.assertRaises(Exc, baddict1.fromkeys, [1])
|
self.assertRaises(Exc, baddict1.fromkeys, [1])
|
||||||
|
@ -595,12 +595,14 @@ class TestHashMappingProtocol(TestMappingProtocol):
|
||||||
d = self._empty_mapping()
|
d = self._empty_mapping()
|
||||||
d[1] = 1
|
d[1] = 1
|
||||||
try:
|
try:
|
||||||
|
count = 0
|
||||||
for i in d:
|
for i in d:
|
||||||
d[i+1] = 1
|
d[i+1] = 1
|
||||||
|
if count >= 1:
|
||||||
|
self.fail("changing dict size during iteration doesn't raise Error")
|
||||||
|
count += 1
|
||||||
except RuntimeError:
|
except RuntimeError:
|
||||||
pass
|
pass
|
||||||
else:
|
|
||||||
self.fail("changing dict size during iteration doesn't raise Error")
|
|
||||||
|
|
||||||
def test_repr(self):
|
def test_repr(self):
|
||||||
d = self._empty_mapping()
|
d = self._empty_mapping()
|
||||||
|
|
Loading…
Reference in New Issue