Raise exception for invalid mock assert calls
Several test cases were using the wrong mock assert methods. The following patch corrects these calls and adds a method in test.py (sourced from nova/test.py) to make sure they are properly caught in the future. Closes-Bug: #1429669 Change-Id: Ic6e5bca0c3ddbfb402e412b51e882859cb49108c
This commit is contained in:
@@ -100,6 +100,29 @@ class Database(fixtures.Fixture):
|
||||
os.path.join(CONF.state_path, self.sqlite_db))
|
||||
|
||||
|
||||
def _patch_mock_to_raise_for_invalid_assert_calls():
|
||||
def raise_for_invalid_assert_calls(wrapped):
|
||||
def wrapper(_self, name):
|
||||
valid_asserts = [
|
||||
'assert_called_with',
|
||||
'assert_called_once_with',
|
||||
'assert_has_calls',
|
||||
'assert_any_calls']
|
||||
|
||||
if name.startswith('assert') and name not in valid_asserts:
|
||||
raise AttributeError('%s is not a valid mock assert method'
|
||||
% name)
|
||||
|
||||
return wrapped(_self, name)
|
||||
return wrapper
|
||||
mock.Mock.__getattr__ = raise_for_invalid_assert_calls(
|
||||
mock.Mock.__getattr__)
|
||||
|
||||
# NOTE(gibi): needs to be called only once at import time
|
||||
# to patch the mock lib
|
||||
_patch_mock_to_raise_for_invalid_assert_calls()
|
||||
|
||||
|
||||
class TestCase(testtools.TestCase):
|
||||
"""Test case base class for all unit tests."""
|
||||
|
||||
|
||||
Reference in New Issue
Block a user