def test_MockObject(): mock = _MockObject() assert isinstance(mock.some_attr, _MockObject) assert isinstance(mock.some_method, _MockObject) assert isinstance(mock.attr1.attr2, _MockObject) assert isinstance(mock.attr1.attr2.meth(), _MockObject) # subclassing class SubClass(mock.SomeClass): """docstring of SubClass""" def method(self): return "string" obj = SubClass() assert SubClass.__doc__ == "docstring of SubClass" assert isinstance(obj, SubClass) assert obj.method() == "string" assert isinstance(obj.other_method(), SubClass) # parametrized type T = TypeVar('T') class SubClass2(mock.SomeClass[T]): """docstring of SubClass""" obj2 = SubClass2() assert SubClass2.__doc__ == "docstring of SubClass" assert isinstance(obj2, SubClass2)
def test_mock_decorator(): mock = _MockObject() @mock.function_deco def func(): pass class Foo: @mock.method_deco def meth(self): pass @classmethod @mock.method_deco def class_meth(cls): pass @mock.class_deco class Bar: pass @mock.funcion_deco(Foo) class Baz: pass assert undecorate(func).__name__ == "func" assert undecorate(Foo.meth).__name__ == "meth" assert undecorate(Foo.class_meth).__name__ == "class_meth" assert undecorate(Bar).__name__ == "Bar" assert undecorate(Baz).__name__ == "Baz"
def test_abc_MockObject(): mock = _MockObject() class Base: @abc.abstractmethod def __init__(self): pass class Derived(Base, mock.SubClass): pass obj = Derived() assert isinstance(obj, Base) assert isinstance(obj, _MockObject) assert isinstance(obj.some_method(), Derived)
def test_MockObject(): mock = _MockObject() assert isinstance(mock.some_attr, _MockObject) assert isinstance(mock.some_method, _MockObject) assert isinstance(mock.attr1.attr2, _MockObject) assert isinstance(mock.attr1.attr2.meth(), _MockObject) class SubClass(mock.SomeClass): """docstring of SubClass""" def method(self): return "string" obj = SubClass() assert SubClass.__doc__ == "docstring of SubClass" assert isinstance(obj, SubClass) assert obj.method() == "string" assert isinstance(obj.other_method(), SubClass)
def test_mock_decorator(): mock = _MockObject() @mock.function_deco def func(): """docstring""" class Foo: @mock.method_deco def meth(self): """docstring""" @mock.class_deco class Bar: """docstring""" assert func.__doc__ == "docstring" assert Foo.meth.__doc__ == "docstring" assert Bar.__doc__ == "docstring"