summaryrefslogtreecommitdiffstats
path: root/Lib/unittest/test/testmock/testmock.py
diff options
context:
space:
mode:
authorMichael Foord <michael@voidspace.org.uk>2012-04-21 14:52:11 (GMT)
committerMichael Foord <michael@voidspace.org.uk>2012-04-21 14:52:11 (GMT)
commit2cd48738ba0a593a6edf6f4f41b420ead3719e71 (patch)
tree767327ab8cb7c811e009645623cd29ecc588cc20 /Lib/unittest/test/testmock/testmock.py
parent24117a748b02e0d2d028956c7b118f4ecd55361c (diff)
downloadcpython-2cd48738ba0a593a6edf6f4f41b420ead3719e71.zip
cpython-2cd48738ba0a593a6edf6f4f41b420ead3719e71.tar.gz
cpython-2cd48738ba0a593a6edf6f4f41b420ead3719e71.tar.bz2
Closes issue 14636. mock objects raise exceptions from an iterable side_effect
Diffstat (limited to 'Lib/unittest/test/testmock/testmock.py')
-rw-r--r--Lib/unittest/test/testmock/testmock.py10
1 files changed, 10 insertions, 0 deletions
diff --git a/Lib/unittest/test/testmock/testmock.py b/Lib/unittest/test/testmock/testmock.py
index ae9822e..64fd1a1 100644
--- a/Lib/unittest/test/testmock/testmock.py
+++ b/Lib/unittest/test/testmock/testmock.py
@@ -868,6 +868,16 @@ class MockTest(unittest.TestCase):
self.assertRaises(StopIteration, mock)
+ def test_side_effect_iterator_exceptions(self):
+ for Klass in Mock, MagicMock:
+ iterable = (ValueError, 3, KeyError, 6)
+ m = Klass(side_effect=iterable)
+ self.assertRaises(ValueError, m)
+ self.assertEqual(m(), 3)
+ self.assertRaises(KeyError, m)
+ self.assertEqual(m(), 6)
+
+
def test_side_effect_setting_iterator(self):
mock = Mock()
mock.side_effect = iter([1, 2, 3])