Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
argname,
inner_value,
inner_expected_type,
*args,
globals: Optional[Dict[str, Any]] = None,
locals: Optional[Dict[str, Any]] = None,
**kwargs,
):
if _is_a_mock(inner_value):
inner_type = _extract_mock_template(inner_value)
if inner_type is None:
return
# Ugly hack to make mock objects not be subclass of Mock
inner_value = WrappedMock(spec=inner_type)
# typeguard only checks the previous caller stack, so in order to be
# able to do forward type references we have to extract the caller
# stack ourselves.
if kwargs.get("memo") is None and globals is None and locals is None:
globals, locals = _get_caller_vars()
return original_check_type(
argname,
inner_value,
inner_expected_type,
*args,
globals=globals,
locals=locals,
**kwargs,
)
def wrapped_qualified_name(obj):
"""Needed to be able to show the useful qualified name for mock specs"""
if isinstance(obj, WrappedMock):
return obj.get_qualified_name()
return original_qualified_name(obj)