Fixes issue28380: unittest.mock Mock autospec functions now properly support

assert_called, assert_not_called, and assert_called_once.
This commit is contained in:
Gregory P. Smith 2016-10-06 14:31:23 -07:00
parent 0ebdd0776c
commit ac5084b6c7
3 changed files with 18 additions and 0 deletions

View File

@ -193,6 +193,12 @@ def _setup_func(funcopy, mock):
def assert_called_with(*args, **kwargs): def assert_called_with(*args, **kwargs):
return mock.assert_called_with(*args, **kwargs) return mock.assert_called_with(*args, **kwargs)
def assert_called(*args, **kwargs):
return mock.assert_called(*args, **kwargs)
def assert_not_called(*args, **kwargs):
return mock.assert_not_called(*args, **kwargs)
def assert_called_once(*args, **kwargs):
return mock.assert_called_once(*args, **kwargs)
def assert_called_once_with(*args, **kwargs): def assert_called_once_with(*args, **kwargs):
return mock.assert_called_once_with(*args, **kwargs) return mock.assert_called_once_with(*args, **kwargs)
def assert_has_calls(*args, **kwargs): def assert_has_calls(*args, **kwargs):
@ -223,6 +229,9 @@ def _setup_func(funcopy, mock):
funcopy.assert_has_calls = assert_has_calls funcopy.assert_has_calls = assert_has_calls
funcopy.assert_any_call = assert_any_call funcopy.assert_any_call = assert_any_call
funcopy.reset_mock = reset_mock funcopy.reset_mock = reset_mock
funcopy.assert_called = assert_called
funcopy.assert_not_called = assert_not_called
funcopy.assert_called_once = assert_called_once
mock._mock_delegate = funcopy mock._mock_delegate = funcopy

View File

@ -969,8 +969,14 @@ class PatchTest(unittest.TestCase):
def test_autospec_function(self): def test_autospec_function(self):
@patch('%s.function' % __name__, autospec=True) @patch('%s.function' % __name__, autospec=True)
def test(mock): def test(mock):
function.assert_not_called()
self.assertRaises(AssertionError, function.assert_called)
self.assertRaises(AssertionError, function.assert_called_once)
function(1) function(1)
self.assertRaises(AssertionError, function.assert_not_called)
function.assert_called_with(1) function.assert_called_with(1)
function.assert_called()
function.assert_called_once()
function(2, 3) function(2, 3)
function.assert_called_with(2, 3) function.assert_called_with(2, 3)

View File

@ -53,6 +53,9 @@ Core and Builtins
Library Library
------- -------
- Issue #28380: unittest.mock Mock autospec functions now properly support
assert_called, assert_not_called, and assert_called_once.
- Issue #27181 remove statistics.geometric_mean and defer until 3.7. - Issue #27181 remove statistics.geometric_mean and defer until 3.7.
- Issue #28229: lzma module now supports pathlib. - Issue #28229: lzma module now supports pathlib.