diff options
author | Walter Dörwald <walter@livinglogic.de> | 2019-06-06 10:13:08 (GMT) |
---|---|---|
committer | Miss Islington (bot) <31488909+miss-islington@users.noreply.github.com> | 2019-06-06 10:13:08 (GMT) |
commit | 6af230359e57122708247dac970e05e05529cde6 (patch) | |
tree | 749b45804a0090b9db925be91cddf11249ae9c31 | |
parent | cb65202520e7959196a2df8215692de155bf0cc8 (diff) | |
download | cpython-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.py | 8 |
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() |