@@ -379,7 +379,7 @@ def __new__(cls, *args, **kw):
379379 def __init__ (
380380 self , spec = None , wraps = None , name = None , spec_set = None ,
381381 parent = None , _spec_state = None , _new_name = '' , _new_parent = None ,
382- _spec_as_instance = False , _eat_self = None , ** kwargs
382+ _spec_as_instance = False , _eat_self = None , unsafe = False , ** kwargs
383383 ):
384384 if _new_parent is None :
385385 _new_parent = parent
@@ -409,6 +409,7 @@ def __init__(
409409 __dict__ ['_mock_mock_calls' ] = _CallList ()
410410
411411 __dict__ ['method_calls' ] = _CallList ()
412+ __dict__ ['_mock_unsafe' ] = unsafe
412413
413414 if kwargs :
414415 self .configure_mock (** kwargs )
@@ -565,13 +566,16 @@ def configure_mock(self, **kwargs):
565566
566567
567568 def __getattr__ (self , name ):
568- if name == '_mock_methods' :
569+ if name in { '_mock_methods' , '_mock_unsafe' } :
569570 raise AttributeError (name )
570571 elif self ._mock_methods is not None :
571572 if name not in self ._mock_methods or name in _all_magics :
572573 raise AttributeError ("Mock object has no attribute %r" % name )
573574 elif _is_magic (name ):
574575 raise AttributeError (name )
576+ if not self ._mock_unsafe :
577+ if name .startswith (('assert' , 'assret' )):
578+ raise AttributeError (name )
575579
576580 result = self ._mock_children .get (name )
577581 if result is _deleted :
0 commit comments