Exemple #1
0
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)
Exemple #2
0
 def test_special(self):
     self.assertIs(Proxy.delegate(self.proxy), self.delegate)
     self.assertIsNot(self.proxy, self.value)
Exemple #3
0
 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)