diff options
author | Johan Dahlin <johan@gnome.org> | 2008-03-21 18:06:56 +0000 |
---|---|---|
committer | Johan Dahlin <johan@src.gnome.org> | 2008-03-21 18:06:56 +0000 |
commit | 6ee167447336570b83e41ca2c4216d6e9058fd43 (patch) | |
tree | 4d444ea4a3626cc1a5e34f717828f4e133c451f9 /tests/test_properties.py | |
parent | 56a637d7d8b19277f2eb947a250385fd6bba9a4e (diff) | |
download | pygobject-6ee167447336570b83e41ca2c4216d6e9058fd43.tar.gz pygobject-6ee167447336570b83e41ca2c4216d6e9058fd43.tar.xz pygobject-6ee167447336570b83e41ca2c4216d6e9058fd43.zip |
Allow gobject.property work with subclasses. Add tests.
2008-03-21 Johan Dahlin <johan@gnome.org>
* gobject/__init__.py:
* tests/test_properties.py:
Allow gobject.property work with subclasses. Add tests.
(#523352, Tomeu Vizoso)
svn path=/trunk/; revision=752
Diffstat (limited to 'tests/test_properties.py')
-rw-r--r-- | tests/test_properties.py | 35 |
1 files changed, 35 insertions, 0 deletions
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() |