mirror of
https://github.com/python/cpython.git
synced 2024-11-30 21:34:17 +08:00
bpo-41403: Improve error message for invalid mock target (GH-30833)
This commit is contained in:
parent
ca78130d7e
commit
f7955a82e3
@ -1589,9 +1589,9 @@ class _patch(object):
|
||||
def _get_target(target):
|
||||
try:
|
||||
target, attribute = target.rsplit('.', 1)
|
||||
except (TypeError, ValueError):
|
||||
raise TypeError("Need a valid target to patch. You supplied: %r" %
|
||||
(target,))
|
||||
except (TypeError, ValueError, AttributeError):
|
||||
raise TypeError(
|
||||
f"Need a valid target to patch. You supplied: {target!r}")
|
||||
return partial(pkgutil.resolve_name, target), attribute
|
||||
|
||||
|
||||
|
@ -1933,8 +1933,13 @@ class PatchTest(unittest.TestCase):
|
||||
|
||||
|
||||
def test_invalid_target(self):
|
||||
with self.assertRaises(TypeError):
|
||||
patch('')
|
||||
class Foo:
|
||||
pass
|
||||
|
||||
for target in ['', 12, Foo()]:
|
||||
with self.subTest(target=target):
|
||||
with self.assertRaises(TypeError):
|
||||
patch(target)
|
||||
|
||||
|
||||
def test_cant_set_kwargs_when_passing_a_mock(self):
|
||||
|
@ -0,0 +1,3 @@
|
||||
Make :meth:`mock.patch` raise a :exc:`TypeError` with a relevant error
|
||||
message on invalid arg. Previously it allowed a cryptic
|
||||
:exc:`AttributeError` to escape.
|
Loading…
Reference in New Issue
Block a user