Closes issue 14636. mock objects raise exceptions from an iterable side_effect

This commit is contained in:
Michael Foord 2012-04-21 15:52:11 +01:00
parent 24117a748b
commit 2cd48738ba
4 changed files with 31 additions and 53 deletions

View file

@ -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])