class InstanceDelegateTest(unittest.TestCase): # W0201 (variable declared outside __init__) # C0103 (invalid name for method): camel case "setUp" is a special name # pylint: disable=W0201,C0103 def setUp(self): self.value = TestClass(TestClass(None, 20), 10) self.resolver = StaticResolver(self.value) self.delegate = ResolvingDelegate(self.resolver) self.proxy = Proxy(self.delegate) def test_special(self): self.assertIs(Proxy.delegate(self.proxy), self.delegate) self.assertIsNot(self.proxy, self.value) def test_attribute_get(self): self.assertEqual(self.proxy.parent, self.value.parent) self.assertEqual(self.proxy.method, self.value.method) # W0212 (access to protected member): needed for test # pylint: disable=W0212 self.assertEqual(self.proxy._var, self.value._var) def test_call(self): self.assertEqual(self.proxy.parent(), self.value.parent()) self.assertEqual(self.proxy.method(), self.value.method()) def test_equality(self): self.assertEqual(self.proxy, self.value) def test_hash(self): self.assertEqual(hash(self.proxy), hash(self.value)) def test_casts(self): self.assertEqual(str(self.proxy), str(self.value)) self.assertEqual(bool(self.proxy), bool(self.value)) self.assertEqual(int(self.proxy), int(self.value)) self.assertEqual(float(self.proxy), float(self.value)) self.assertEqual(complex(self.proxy), complex(self.value)) def test_repr(self): self.assertNotEqual(repr(self.proxy), repr(self.value)) def test_static_method_collision(self): parameter = 10 self.assertEqual(self.proxy.for_instance(parameter), self.value.for_instance(parameter)) def test_descriptor(self): delegate = TestDescriptorDelegate() class DescriptedClass(object): descriptor = Proxy(delegate) instance = DescriptedClass() value = instance.descriptor self.assertEqual(value, instance)
def test_special(self): self.assertIs(Proxy.delegate(self.proxy), self.delegate) self.assertIsNot(self.proxy, self.value)
def setUp(self): self.value = TestClass(TestClass(None, 20), 10) self.resolver = StaticResolver(self.value) self.delegate = ResolvingDelegate(self.resolver) self.proxy = Proxy(self.delegate)