Closes Issue 21262: New method assert_not_called for Mock.

It raises AssertionError if the mock has been called.
This commit is contained in:
Kushal Das 2014-04-17 01:36:14 +05:30
parent 8c14534df6
commit 8af9db3e4f
4 changed files with 34 additions and 0 deletions

View file

@ -758,6 +758,14 @@ class NonCallableMock(Base):
else:
return _call
def assert_not_called(_mock_self, *args, **kwargs):
"""assert that the mock was never called.
"""
self = _mock_self
if self.call_count != 0:
msg = ("Expected '%s' to not have been called. Called %s times." %
(self._mock_name or 'mock', self.call_count))
raise AssertionError(msg)
def assert_called_with(_mock_self, *args, **kwargs):
"""assert that the mock was called with the specified arguments.

View file

@ -1198,6 +1198,15 @@ class MockTest(unittest.TestCase):
m.assert_foo_call()
m.assret_foo_call()
#Issue21262
def test_assert_not_called(self):
m = Mock()
m.hello.assert_not_called()
m.hello()
with self.assertRaises(AssertionError):
m.hello.assert_not_called()
def test_mock_add_spec(self):
class _One(object):
one = 1