diff options
-rw-r--r-- | gobject/gobjectmodule.c | 3 | ||||
-rw-r--r-- | tests/test_conversion.py | 108 |
2 files changed, 63 insertions, 48 deletions
diff --git a/gobject/gobjectmodule.c b/gobject/gobjectmodule.c index 8882c0c..c4931f4 100644 --- a/gobject/gobjectmodule.c +++ b/gobject/gobjectmodule.c @@ -1505,7 +1505,8 @@ pyg_object_new (PyGObject *self, PyObject *args, PyObject *kwargs) } g_value_init(¶ms[n_params].value, G_PARAM_SPEC_VALUE_TYPE(pspec)); - if (pyg_value_from_pyobject(¶ms[n_params].value, value)) { + if (pyg_param_gvalue_from_pyobject(¶ms[n_params].value, + value, pspec) < 0) { PyErr_Format(PyExc_TypeError, "could not convert value for property `%s'", key_str); diff --git a/tests/test_conversion.py b/tests/test_conversion.py index e621e1f..72dc5c4 100644 --- a/tests/test_conversion.py +++ b/tests/test_conversion.py @@ -2,58 +2,72 @@ import unittest -from common import gtk +from common import gtk, gobject class Tests(unittest.TestCase): - def testUnicharArg(self): - """ Test unichar values when used as arguments. """ - - entry = gtk.Entry() - for valid_value in ['a', u'b', u'\ufff0', u'\ufff0'.encode()]: - entry.set_invisible_char(valid_value) - assert entry.get_invisible_char() == unicode(valid_value) - - for invalid_value in ['12', None, 1, '']: - try: - entry.set_invisible_char(invalid_value) - except: - pass - else: - raise AssertionError('exception not raised on invalid value w/ set_invisible_char: %s' - % invalid_value) + def testUnicharArg(self): + """ Test unichar values when used as arguments. """ - def testUnicharProperty(self): - """ Test unichar values when used as properties. """ + entry = gtk.Entry() + for valid_value in ['a', u'b', u'\ufff0', u'\ufff0'.encode()]: + entry.set_invisible_char(valid_value) + self.assertEqual(entry.get_invisible_char(), + unicode(valid_value), + valid_value) + + for invalid_value in ('12', None, 1, ''): + try: + entry.set_invisible_char(invalid_value) + except: + pass + else: + raise AssertionError( + 'exception not raised on invalid value w/ ' + 'set_invisible_char: %s' % invalid_value) + + + def testUnicharProperty(self): + """ Test unichar values when used as properties. """ + + entry = gtk.Entry() + for valid_value in ['a', u'b', u'\ufff0', u'\ufff0'.encode()]: + entry.set_property('invisible_char', valid_value) + self.assertEqual(entry.get_property('invisible_char'), + valid_value, valid_value) + + for invalid_value in ('12', None, 1, ''): + try: + entry.set_property('invisible_char', invalid_value) + except TypeError: + pass + else: + raise AssertionError( + 'exception not raised on invalid value w/ ' + 'set_invisible_char: %s' % invalid_value) + + def testUnicharConstructor(self): + for valid_value in ['a', u'b', u'\ufff0', u'\ufff0'.encode()]: + entry = gobject.new(gtk.Entry, invisible_char=valid_value) + self.assertEqual(entry.get_property('invisible_char'), + valid_value, valid_value) - entry = gtk.Entry() - for valid_value in ['a', u'b', u'\ufff0', u'\ufff0'.encode()]: - entry.set_property('invisible_char', valid_value) - assert entry.get_property('invisible_char') == valid_value - - for invalid_value in ['12', None, 1, '']: - try: - entry.set_property('invisible_char', invalid_value) - except: - pass - else: - raise AssertionError('exception not raised on invalid value w/ set_property: %s' - % invalid_value) - - def testColorCreation(self): - """ Test GdkColor creation """ - - c = gtk.gdk.Color(1, 2, 3) - assert c.red == 1 and c.green == 2 and c.blue == 3 - - c = gtk.gdk.Color(pixel = 0xffff) - assert c.pixel == 0xffff - - c = gtk.gdk.Color(pixel = 0xffffL) - assert c.pixel == 0xffff - - c = gtk.gdk.Color(pixel = 0xffffffffL) - assert c.pixel == 0xffffffffL + def testColorCreation(self): + """ Test GdkColor creation """ + + c = gtk.gdk.Color(1, 2, 3) + self.assertEqual(c.red, 1) + self.assertEqual(c.green, 2) + self.assertEqual(c.blue, 3) + + c = gtk.gdk.Color(pixel=0xffff) + self.assertEqual(c.pixel, 0xffff) + + c = gtk.gdk.Color(pixel=0xffffL) + self.assertEqual(c.pixel, 0xffff) + + c = gtk.gdk.Color(pixel=0xffffffffL) + self.assertEqual(c.pixel, 0xffffffffL) if __name__ == '__main__': unittest.main() |