From 46398fba4d66ad342cf2504ef947b5fb857423b2 Mon Sep 17 00:00:00 2001 From: kernc Date: Thu, 11 Jun 2020 20:03:29 +0200 Subject: bpo-29620: iterate over a copy of sys.modules (GH-4800) unittest.TestCase.assertWarns no longer raises a RuntimeException when accessing a module's ``__warningregistry__`` causes importation of a new module, or when a new module is imported in another thread. Patch by Kernc. --- Lib/unittest/case.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'Lib/unittest/case.py') diff --git a/Lib/unittest/case.py b/Lib/unittest/case.py index f8bc865ee8..52eb7d05ed 100644 --- a/Lib/unittest/case.py +++ b/Lib/unittest/case.py @@ -252,7 +252,7 @@ class _AssertWarnsContext(_AssertRaisesBaseContext): def __enter__(self): # The __warningregistry__'s need to be in a pristine state for tests # to work properly. - for v in sys.modules.values(): + for v in list(sys.modules.values()): if getattr(v, '__warningregistry__', None): v.__warningregistry__ = {} self.warnings_manager = warnings.catch_warnings(record=True) -- cgit v1.2.1