From 6ee167447336570b83e41ca2c4216d6e9058fd43 Mon Sep 17 00:00:00 2001 From: Johan Dahlin Date: Fri, 21 Mar 2008 18:06:56 +0000 Subject: Allow gobject.property work with subclasses. Add tests. 2008-03-21 Johan Dahlin * gobject/__init__.py: * tests/test_properties.py: Allow gobject.property work with subclasses. Add tests. (#523352, Tomeu Vizoso) svn path=/trunk/; revision=752 --- tests/test_properties.py | 35 +++++++++++++++++++++++++++++++++++ 1 file changed, 35 insertions(+) (limited to 'tests') diff --git a/tests/test_properties.py b/tests/test_properties.py index de93f62..a691b32 100644 --- a/tests/test_properties.py +++ b/tests/test_properties.py @@ -327,6 +327,41 @@ class TestProperty(unittest.TestCase): b.prop1 = 20 self.assertEquals(b.prop1, 20) + def testPropertySubclassCustomSetter(self): + # test for #523352 + class A(GObject): + def get_first(self): + return 'first' + first = gobject.property(type=str, getter=get_first) + + class B(A): + def get_second(self): + return 'second' + second = gobject.property(type=str, getter=get_second) + + a = A() + self.assertEquals(a.first, 'first') + self.assertRaises(TypeError, setattr, a, 'first', 'foo') + + b = B() + self.assertEquals(b.first, 'first') + self.assertRaises(TypeError, setattr, b, 'first', 'foo') + self.assertEquals(b.second, 'second') + self.assertRaises(TypeError, setattr, b, 'second', 'foo') + + def testPropertySubclassCustomSetterError(self): + try: + class A(GObject): + def get_first(self): + return 'first' + first = gobject.property(type=str, getter=get_first) + + def do_get_property(self, pspec): + pass + except TypeError: + pass + else: + raise AssertionError if __name__ == '__main__': unittest.main() -- cgit