summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorWalter Dörwald <walter@livinglogic.de>2019-06-06 10:13:08 (GMT)
committerMiss Islington (bot) <31488909+miss-islington@users.noreply.github.com>2019-06-06 10:13:08 (GMT)
commit6af230359e57122708247dac970e05e05529cde6 (patch)
tree749b45804a0090b9db925be91cddf11249ae9c31
parentcb65202520e7959196a2df8215692de155bf0cc8 (diff)
downloadcpython-6af230359e57122708247dac970e05e05529cde6.zip
cpython-6af230359e57122708247dac970e05e05529cde6.tar.gz
cpython-6af230359e57122708247dac970e05e05529cde6.tar.bz2
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
-rw-r--r--Lib/test/mapping_tests.py8
1 files changed, 5 insertions, 3 deletions
diff --git a/Lib/test/mapping_tests.py b/Lib/test/mapping_tests.py
index 53f29f6..613206a 100644
--- a/Lib/test/mapping_tests.py
+++ b/Lib/test/mapping_tests.py
@@ -448,7 +448,7 @@ class TestMappingProtocol(BasicTestMappingProtocol):
class Exc(Exception): pass
class baddict1(self.type2test):
- def __init__(self):
+ def __init__(self, *args, **kwargs):
raise Exc()
self.assertRaises(Exc, baddict1.fromkeys, [1])
@@ -595,12 +595,14 @@ class TestHashMappingProtocol(TestMappingProtocol):
d = self._empty_mapping()
d[1] = 1
try:
+ count = 0
for i in d:
d[i+1] = 1
+ if count >= 1:
+ self.fail("changing dict size during iteration doesn't raise Error")
+ count += 1
except RuntimeError:
pass
- else:
- self.fail("changing dict size during iteration doesn't raise Error")
def test_repr(self):
d = self._empty_mapping()