bpo-24758: Improve the error msg for unittest.mock.Mock()'s unsafe mode (#12991)

* bpo-24758: Improve the error msg for unittest.mock.Mock()'s unsafe mode

* Make the requested changes.
This commit is contained in:
Zackery Spytz 2019-05-08 11:32:24 -06:00 committed by Kushal Das
parent 6bd81734de
commit b9b08cd948
2 changed files with 5 additions and 3 deletions

View File

@ -572,7 +572,8 @@ class NonCallableMock(Base):
raise AttributeError(name)
if not self._mock_unsafe:
if name.startswith(('assert', 'assret')):
raise AttributeError(name)
raise AttributeError("Attributes cannot start with 'assert' "
"or 'assret'")
result = self._mock_children.get(name)
if result is _deleted:

View File

@ -1453,9 +1453,10 @@ class MockTest(unittest.TestCase):
#Issue21238
def test_mock_unsafe(self):
m = Mock()
with self.assertRaises(AttributeError):
msg = "Attributes cannot start with 'assert' or 'assret'"
with self.assertRaisesRegex(AttributeError, msg):
m.assert_foo_call()
with self.assertRaises(AttributeError):
with self.assertRaisesRegex(AttributeError, msg):
m.assret_foo_call()
m = Mock(unsafe=True)
m.assert_foo_call()