diff options
author | Michael Foord <michael@voidspace.org.uk> | 2012-04-21 15:52:11 +0100 |
---|---|---|
committer | Michael Foord <michael@voidspace.org.uk> | 2012-04-21 15:52:11 +0100 |
commit | 0882eb46fdeb45eeea066f32aa1b6d59c07ea513 (patch) | |
tree | fbba4393eee529468df218885394a49ee3617854 /Lib/unittest/test/testmock/testmock.py | |
parent | e08fb7844832da2ffa6f7deb444afa2159473614 (diff) | |
download | cpython-0882eb46fdeb45eeea066f32aa1b6d59c07ea513.tar.gz |
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.py | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/Lib/unittest/test/testmock/testmock.py b/Lib/unittest/test/testmock/testmock.py index ae9822eac6..64fd1a11c9 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]) |