From 078439f05b12ed4756e87f0e8c1c6ff1e93da880 Mon Sep 17 00:00:00 2001 From: "Gustavo J. A. M. Carneiro" Date: Mon, 27 Aug 2007 13:10:39 +0000 Subject: Bug 470230 – check for default value in boolean type is wrong MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit svn path=/trunk/; revision=698 --- ChangeLog | 8 ++++++++ gobject/propertyhelper.py | 4 +--- tests/test_properties.py | 14 +++++++++++++- 3 files changed, 22 insertions(+), 4 deletions(-) diff --git a/ChangeLog b/ChangeLog index 9689e28..ca14101 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,11 @@ +2007-08-27 Marco Giusti + + reviewed by: Gustavo J. A. M. Carneiro + + * gobject/propertyhelper.py: + * tests/test_properties.py: + Bug 470230 – check for default value in boolean type is wrong. + 2007-08-27 Gustavo J. A. M. Carneiro * tests/Makefile.am, diff --git a/gobject/propertyhelper.py b/gobject/propertyhelper.py index c382c83..cc987ec 100644 --- a/gobject/propertyhelper.py +++ b/gobject/propertyhelper.py @@ -203,9 +203,7 @@ class property(object): def _check_default(self): ptype = self.type default = self.default - if (ptype == TYPE_BOOLEAN and - (default is not True or - default is not False)): + if (ptype == TYPE_BOOLEAN and (default not in (True, False))): raise TypeError( "default must be True or False, not %r" % (default,)) elif ptype == TYPE_PYOBJECT: diff --git a/tests/test_properties.py b/tests/test_properties.py index a82c1fb..2b9e1a1 100644 --- a/tests/test_properties.py +++ b/tests/test_properties.py @@ -233,13 +233,22 @@ class TestProperty(unittest.TestCase): self.assertRaises(TypeError, gobject.property, type='str') self.assertRaises(TypeError, gobject.property, nick=False) self.assertRaises(TypeError, gobject.property, blurb=False) - self.assertRaises(TypeError, gobject.property, type=bool, default=0) + # this never fail while bool is a subclass of int + # >>> bool.__bases__ + # (,) + # self.assertRaises(TypeError, gobject.property, type=bool, default=0) + self.assertRaises(TypeError, gobject.property, type=bool, default='ciao mamma') + self.assertRaises(TypeError, gobject.property, type=bool) self.assertRaises(TypeError, gobject.property, type=GEnum) self.assertRaises(TypeError, gobject.property, type=GEnum, default=0) self.assertRaises(TypeError, gobject.property, type=object, default=0) self.assertRaises(TypeError, gobject.property, type=complex) self.assertRaises(TypeError, gobject.property, flags=-10) + def testDefaults(self): + p1 = gobject.property(type=bool, default=True) + p2 = gobject.property(type=bool, default=False) + def testNameWithUnderscore(self): class C(gobject.GObject): prop_name = gobject.property(type=int) @@ -304,3 +313,6 @@ class TestProperty(unittest.TestCase): pobj1 = pobj2.obj self.assertEqual(hash(pobj1), obj1_hash) + +if __name__ == '__main__': + unittest.main() -- cgit