def test_eq(): class Dummy: def __eq__(self, other: Any) -> bool: return NotImplemented dummy_proxy_1 = MagicProxy(Dummy()) dummy_proxy_2 = MagicProxy(Dummy()) assert not dummy_proxy_1._hasError assert not dummy_proxy_2._hasError dummy_proxy_1 == dummy_proxy_2 assert dummy_proxy_1._hasError assert dummy_proxy_2._hasError
def test_call(int_proxy: MagicProxy): def test_callable(fst: int, snd: int = 0) -> int: return fst + 2 + snd call_proxy = MagicProxy(test_callable) with pytest.raises(TypeError): int_proxy() assert int_proxy._hasError result = call_proxy(2) assert result == 4 assert not call_proxy._hasError result = call_proxy(2, 2) assert result == 6 assert not call_proxy._hasError
def test_set_private_attribute(int_proxy: MagicProxy): assert not int_proxy._hasError int_proxy._errorCode = 42 assert int_proxy._errorCode == 42 assert not int_proxy._hasError
def test_retrieve_obj(): real = 5 proxy = MagicProxy(real) assert proxy._obj is real
def none_proxy() -> MagicProxy: return MagicProxy(None)
def float_proxy() -> MagicProxy: return MagicProxy(2.5)
def str_proxy() -> MagicProxy: return MagicProxy("Test")
def test_none_attr(none_proxy: MagicProxy): assert not none_proxy._hasError with pytest.raises(AttributeError): none_proxy.test() assert none_proxy._hasError
def int_proxy() -> MagicProxy: return MagicProxy(42)