class UnboundAttr_Test(TestCase): def setUp(self): self.unboundattr = UnboundAttribute(Class.descAttr, Class) def test_creation(self): instance = Class() instance.descAttr = 5 result = self.unboundattr(instance) self.assertEqual(result, 5) def test_attribute_forwarding(self): self.assertIs(self.unboundattr.__get__.__func__, Descriptor.__get__) self.assertIs(self.unboundattr.__set__.__func__, Descriptor.__set__) def test_setter(self): instance = Class() self.unboundattr.set(instance, 5) self.assertEqual(instance.descAttr, 5) def test_deleter(self): instance = Class() instance.descAttr = 5 self.unboundattr.delete(instance) self.assertFalse(hasattr(instance, "descAttr"))