[Python-checkins] [3.6] bpo-33747: Avoid mutating the global sys.modules dict in unittest.mock tests (GH-8520) (GH-11032)

Miss Islington (bot) webhook-mailer at python.org
Tue Dec 11 05:17:42 EST 2018


https://github.com/python/cpython/commit/7d9f21950927e7c7fe69e5edeb06023a963c6f68
commit: 7d9f21950927e7c7fe69e5edeb06023a963c6f68
branch: 3.6
author: Miss Islington (bot) <31488909+miss-islington at users.noreply.github.com>
committer: GitHub <noreply at github.com>
date: 2018年12月11日T02:17:37-08:00
summary:
[3.6] bpo-33747: Avoid mutating the global sys.modules dict in unittest.mock tests (GH-8520) (GH-11032)
(cherry picked from commit 3cf74384b53b998fa846dc2590cedf9ad2a0d5fd)
Co-authored-by: Anirudha Bose <ani07nov at gmail.com>
https://bugs.python.org/issue33747
files:
M Lib/unittest/test/testmock/testpatch.py
diff --git a/Lib/unittest/test/testmock/testpatch.py b/Lib/unittest/test/testmock/testpatch.py
index fe4ecefd4405..f05225730daf 100644
--- a/Lib/unittest/test/testmock/testpatch.py
+++ b/Lib/unittest/test/testmock/testpatch.py
@@ -9,6 +9,7 @@
 from unittest.test.testmock import support
 from unittest.test.testmock.support import SomeClass, is_instance
 
+from test.test_importlib.util import uncache
 from unittest.mock import (
 NonCallableMock, CallableMixin, sentinel,
 MagicMock, Mock, NonCallableMagicMock, patch, _patch,
@@ -1660,20 +1661,19 @@ def test_mock_calls_with_patch(self):
 
 
 def test_patch_imports_lazily(self):
- sys.modules.pop('squizz', None)
-
 p1 = patch('squizz.squozz')
 self.assertRaises(ImportError, p1.start)
 
- squizz = Mock()
- squizz.squozz = 6
- sys.modules['squizz'] = squizz
- p1 = patch('squizz.squozz')
- squizz.squozz = 3
- p1.start()
- p1.stop()
- self.assertEqual(squizz.squozz, 3)
+ with uncache('squizz'):
+ squizz = Mock()
+ sys.modules['squizz'] = squizz
 
+ squizz.squozz = 6
+ p1 = patch('squizz.squozz')
+ squizz.squozz = 3
+ p1.start()
+ p1.stop()
+ self.assertEqual(squizz.squozz, 3)
 
 def test_patch_propogrates_exc_on_exit(self):
 class holder:
@@ -1696,7 +1696,12 @@ def with_custom_patch(target):
 def test(mock):
 raise RuntimeError
 
- self.assertRaises(RuntimeError, test)
+ with uncache('squizz'):
+ squizz = Mock()
+ sys.modules['squizz'] = squizz
+
+ self.assertRaises(RuntimeError, test)
+
 self.assertIs(holder.exc_info[0], RuntimeError)
 self.assertIsNotNone(holder.exc_info[1],
 'exception value not propgated')


More information about the Python-checkins mailing list

AltStyle によって変換されたページ (->オリジナル) /