summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMiss Islington (bot) <31488909+miss-islington@users.noreply.github.com>2018-12-11 10:17:29 (GMT)
committerGitHub <noreply@github.com>2018-12-11 10:17:29 (GMT)
commit45a31a1ec11e75cd0ef487dd4cea7f9fc4f885c8 (patch)
tree01087f7c7ac08f707011bcb60f2aec9494116438
parent3cae16d2e98ffaa89ddd311df70a857dfaff4020 (diff)
downloadcpython-45a31a1ec11e75cd0ef487dd4cea7f9fc4f885c8.zip
cpython-45a31a1ec11e75cd0ef487dd4cea7f9fc4f885c8.tar.gz
cpython-45a31a1ec11e75cd0ef487dd4cea7f9fc4f885c8.tar.bz2
[3.7] bpo-33747: Avoid mutating the global sys.modules dict in unittest.mock tests (GH-8520) (GH-11031)
(cherry picked from commit 3cf74384b53b998fa846dc2590cedf9ad2a0d5fd) Co-authored-by: Anirudha Bose <ani07nov@gmail.com> https://bugs.python.org/issue33747
-rw-r--r--Lib/unittest/test/testmock/testpatch.py27
1 files changed, 16 insertions, 11 deletions
diff --git a/Lib/unittest/test/testmock/testpatch.py b/Lib/unittest/test/testmock/testpatch.py
index fe4ecef..f052257 100644
--- a/Lib/unittest/test/testmock/testpatch.py
+++ b/Lib/unittest/test/testmock/testpatch.py
@@ -9,6 +9,7 @@ import unittest
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 @@ class PatchTest(unittest.TestCase):
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 @@ class PatchTest(unittest.TestCase):
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')