diff options
Diffstat (limited to 'tests/test_enum.py')
-rw-r--r-- | tests/test_enum.py | 249 |
1 files changed, 145 insertions, 104 deletions
diff --git a/tests/test_enum.py b/tests/test_enum.py index 45bc0dc..508ad16 100644 --- a/tests/test_enum.py +++ b/tests/test_enum.py @@ -1,25 +1,37 @@ import unittest import warnings -from gobject import GEnum, GFlags, GObject, GType +from gobject import GEnum, GFlags, GObject, GType, PARAM_READWRITE from common import gobject, atk, pango, gtk, gdk +class PObject(GObject): + __gproperties__ = { + 'enum': (gtk.WindowType, 'blurb', 'description', + gtk.WINDOW_TOPLEVEL, PARAM_READWRITE), + 'enum2': (gtk.WindowType, 'blurb', 'description', + int(gtk.WINDOW_TOPLEVEL), PARAM_READWRITE), + 'flags': (gtk.AttachOptions, 'blurb', 'description', + gtk.EXPAND, PARAM_READWRITE), + 'flags2': (gtk.AttachOptions, 'blurb', 'description', + int(gtk.EXPAND), PARAM_READWRITE), + } + class EnumTest(unittest.TestCase): def testEnums(self): - assert issubclass(GEnum, int) - assert isinstance(atk.LAYER_OVERLAY, atk.Layer) - assert isinstance(atk.LAYER_OVERLAY, int) - assert 'LAYER_OVERLAY' in repr(atk.LAYER_OVERLAY) - assert int(atk.LAYER_OVERLAY) - assert atk.LAYER_INVALID == 0 - assert atk.LAYER_INVALID != 1 - assert atk.LAYER_INVALID != -1 - assert atk.LAYER_INVALID != atk.LAYER_BACKGROUND + self.failUnless(issubclass(GEnum, int)) + self.failUnless(isinstance(atk.LAYER_OVERLAY, atk.Layer)) + self.failUnless(isinstance(atk.LAYER_OVERLAY, int)) + self.failUnless('LAYER_OVERLAY' in repr(atk.LAYER_OVERLAY)) + self.failUnless(int(atk.LAYER_OVERLAY)) + self.assertEquals(atk.LAYER_INVALID, 0) + self.assertNotEquals(atk.LAYER_INVALID, 1) + self.assertNotEquals(atk.LAYER_INVALID, -1) + self.assertNotEquals(atk.LAYER_INVALID, atk.LAYER_BACKGROUND) def testComparisionWarning(self): warnings.filterwarnings("error", "", Warning, "", 0) try: - assert atk.LAYER_INVALID != atk.RELATION_NULL + self.assertNotEquals(atk.LAYER_INVALID, atk.RELATION_NULL) except Warning: pass else: @@ -31,72 +43,81 @@ class EnumTest(unittest.TestCase): win.realize() state = win.window.get_state() - assert state == gdk.WINDOW_STATE_WITHDRAWN - assert isinstance(state, gdk.WindowState) - assert 'WINDOW_STATE_WITHDRAWN' in repr(state) + self.assertEquals(state, gdk.WINDOW_STATE_WITHDRAWN) + self.failUnless(isinstance(state, gdk.WindowState)) + self.failUnless('WINDOW_STATE_WITHDRAWN' in repr(state)) def testProperty(self): win = gtk.Window() wtype = win.get_property('type') - assert wtype == gtk.WINDOW_TOPLEVEL - assert isinstance(wtype, gtk.WindowType) - assert 'WINDOW_TOPLEVEL' in repr(wtype) + self.assertEquals(wtype, gtk.WINDOW_TOPLEVEL) + self.failUnless(isinstance(wtype, gtk.WindowType)) + self.failUnless('WINDOW_TOPLEVEL' in repr(wtype)) def testAtkObj(self): obj = atk.NoOpObject(GObject()) - assert obj.get_role() == atk.ROLE_INVALID + self.assertEquals(obj.get_role(), atk.ROLE_INVALID) def testGParam(self): win = gtk.Window() enums = filter(lambda x: GType.is_a(x.value_type, GEnum), gobject.list_properties(win)) - assert enums + self.failUnless(enums) enum = enums[0] - assert hasattr(enum, 'enum_class') - assert issubclass(enum.enum_class, GEnum) + self.failUnless(hasattr(enum, 'enum_class')) + self.failUnless(issubclass(enum.enum_class, GEnum)) def testWeirdEnumValues(self): - assert int(gdk.NOTHING) == -1 - assert int(gdk.BUTTON_PRESS) == 4 + self.assertEquals(int(gdk.NOTHING), -1) + self.assertEquals(int(gdk.BUTTON_PRESS), 4) def testParamSpec(self): props = filter(lambda prop: GType.is_a(prop.value_type, GEnum), gobject.list_properties(gtk.Window)) - assert len(props)>= 6 + self.failUnless(len(props)>= 6) props = filter(lambda prop: prop.name == 'type', props) - assert props - prop = props[0] - klass = prop.enum_class - assert klass == gtk.WindowType - assert hasattr(klass, '__enum_values__') - assert isinstance(klass.__enum_values__, dict) - assert len(klass.__enum_values__) >= 2 + self.failUnless(props) + pspec = props[0] + klass = pspec.enum_class + self.assertEquals(klass, gtk.WindowType) + self.failUnless(hasattr(klass, '__enum_values__')) + self.failUnless(isinstance(klass.__enum_values__, dict)) + self.failUnless(len(klass.__enum_values__) >= 2) + self.failUnless(isinstance(pspec.default_value, gtk.WindowType)) def testOutofBounds(self): val = gtk.icon_size_register('fake', 24, 24) - assert isinstance(val, gobject.GEnum) - assert int(val) == 7 - assert '7' in repr(val) - assert 'GtkIconSize' in repr(val) + self.failUnless(isinstance(val, gobject.GEnum)) + self.assertEquals(int(val), 7) + self.failUnless('7' in repr(val)) + self.failUnless('GtkIconSize' in repr(val)) + + def testEnumProperty(self): + default = PObject.props.enum.default_value + self.failUnless(isinstance(default, gtk.WindowType)) + self.assertEqual(default, gtk.WINDOW_TOPLEVEL) + default = PObject.props.enum2.default_value + self.failUnless(isinstance(default, gtk.WindowType)) + self.assertEqual(default, gtk.WINDOW_TOPLEVEL) class FlagsTest(unittest.TestCase): def testFlags(self): - assert issubclass(GFlags, int) - assert isinstance(gdk.BUTTON_PRESS_MASK, gdk.EventMask) - assert isinstance(gdk.BUTTON_PRESS_MASK, int) - assert gdk.BUTTON_PRESS_MASK == 256 - assert gdk.BUTTON_PRESS_MASK != 0 - assert gdk.BUTTON_PRESS_MASK != -256 - assert gdk.BUTTON_PRESS_MASK != gdk.BUTTON_RELEASE_MASK + self.failUnless(issubclass(GFlags, int)) + self.failUnless(isinstance(gdk.BUTTON_PRESS_MASK, gdk.EventMask)) + self.failUnless(isinstance(gdk.BUTTON_PRESS_MASK, int)) + self.assertEquals(gdk.BUTTON_PRESS_MASK, 256) + self.assertNotEquals(gdk.BUTTON_PRESS_MASK, 0) + self.assertNotEquals(gdk.BUTTON_PRESS_MASK, -256) + self.assertNotEquals(gdk.BUTTON_PRESS_MASK, gdk.BUTTON_RELEASE_MASK) - assert gdk.EventMask.__bases__[0] == GFlags - assert len(gdk.EventMask.__flags_values__) == 22 + self.assertEquals(gdk.EventMask.__bases__[0], GFlags) + self.assertEquals(len(gdk.EventMask.__flags_values__), 22) def testComparisionWarning(self): warnings.filterwarnings("error", "", Warning, "", 0) try: - assert gtk.ACCEL_VISIBLE != gtk.EXPAND + self.assertNotEquals(gtk.ACCEL_VISIBLE, gtk.EXPAND) except Warning: pass else: @@ -105,35 +126,45 @@ class FlagsTest(unittest.TestCase): def testFlagOperations(self): a = gdk.BUTTON_PRESS_MASK - assert isinstance(a, GFlags) - assert a.first_value_name == 'GDK_BUTTON_PRESS_MASK' - assert a.first_value_nick == 'button-press-mask' - assert a.value_names == ['GDK_BUTTON_PRESS_MASK'], a.value_names - assert a.value_nicks == ['button-press-mask'], a.value_names + self.failUnless(isinstance(a, GFlags)) + self.assertEquals(a.first_value_name, 'GDK_BUTTON_PRESS_MASK') + self.assertEquals(a.first_value_nick, 'button-press-mask') + self.assertEquals(a.value_names, ['GDK_BUTTON_PRESS_MASK'], + a.value_names) + self.assertEquals(a.value_nicks, ['button-press-mask'], + a.value_names) b = gdk.BUTTON_PRESS_MASK | gdk.BUTTON_RELEASE_MASK - assert isinstance(b, GFlags) - assert b.first_value_name == 'GDK_BUTTON_PRESS_MASK' - assert b.first_value_nick == 'button-press-mask' - assert b.value_names == ['GDK_BUTTON_PRESS_MASK', 'GDK_BUTTON_RELEASE_MASK'] - assert b.value_nicks == ['button-press-mask', 'button-release-mask'] - c = gdk.BUTTON_PRESS_MASK | gdk.BUTTON_RELEASE_MASK | gdk.ENTER_NOTIFY_MASK - assert isinstance(c, GFlags) - assert c.first_value_name == 'GDK_BUTTON_PRESS_MASK' - assert c.first_value_nick == 'button-press-mask' - assert c.value_names == ['GDK_BUTTON_PRESS_MASK', 'GDK_BUTTON_RELEASE_MASK', - 'GDK_ENTER_NOTIFY_MASK'] - assert c.value_nicks == ['button-press-mask', 'button-release-mask', - 'enter-notify-mask'] - assert int(a) - assert int(a) == int(gdk.BUTTON_PRESS_MASK) - assert int(b) - assert int(b) == (int(gdk.BUTTON_PRESS_MASK) | - int(gdk.BUTTON_RELEASE_MASK)) - assert int(c) - assert int(c) == (int(gdk.BUTTON_PRESS_MASK) | - int(gdk.BUTTON_RELEASE_MASK) | - int(gdk.ENTER_NOTIFY_MASK)) - + self.failUnless(isinstance(b, GFlags)) + self.assertEquals(b.first_value_name, 'GDK_BUTTON_PRESS_MASK') + self.assertEquals(b.first_value_nick, 'button-press-mask') + self.assertEquals(b.value_names, ['GDK_BUTTON_PRESS_MASK', + 'GDK_BUTTON_RELEASE_MASK']) + self.assertEquals(b.value_nicks, ['button-press-mask', + 'button-release-mask']) + c = (gdk.BUTTON_PRESS_MASK | + gdk.BUTTON_RELEASE_MASK | + gdk.ENTER_NOTIFY_MASK) + self.failUnless(isinstance(c, GFlags)) + self.assertEquals(c.first_value_name, 'GDK_BUTTON_PRESS_MASK') + self.assertEquals(c.first_value_nick, 'button-press-mask') + self.assertEquals(c.value_names, + ['GDK_BUTTON_PRESS_MASK', + 'GDK_BUTTON_RELEASE_MASK', + 'GDK_ENTER_NOTIFY_MASK']) + self.assertEquals(c.value_nicks, + ['button-press-mask', + 'button-release-mask', + 'enter-notify-mask']) + self.failUnless(int(a)) + self.assertEquals(int(a), int(gdk.BUTTON_PRESS_MASK)) + self.failUnless(int(b)) + self.assertEquals(int(b), (int(gdk.BUTTON_PRESS_MASK) | + int(gdk.BUTTON_RELEASE_MASK))) + self.failUnless(int(c)) + self.assertEquals(int(c), (int(gdk.BUTTON_PRESS_MASK) | + int(gdk.BUTTON_RELEASE_MASK) | + int(gdk.ENTER_NOTIFY_MASK))) + def testUnsupportedOpertionWarning(self): warnings.filterwarnings("error", "", Warning, "", 0) try: @@ -147,42 +178,52 @@ class FlagsTest(unittest.TestCase): def testParamSpec(self): props = filter(lambda x: GType.is_a(x.value_type, GFlags), gtk.container_class_list_child_properties(gtk.Table)) - assert len(props) >= 2 - klass = props[0].flags_class - assert klass == gtk.AttachOptions - assert hasattr(klass, '__flags_values__') - assert isinstance(klass.__flags_values__, dict) - assert len(klass.__flags_values__) >= 3 - + self.failUnless(len(props) >= 2) + pspec = props[0] + klass = pspec.flags_class + self.assertEquals(klass, gtk.AttachOptions) + self.failUnless(hasattr(klass, '__flags_values__')) + self.failUnless(isinstance(klass.__flags_values__, dict)) + self.failUnless(len(klass.__flags_values__) >= 3) + self.failUnless(isinstance(pspec.default_value, gtk.AttachOptions)) + def testEnumComparision(self): enum = gtk.TREE_VIEW_DROP_BEFORE - assert enum == 0 - assert not enum == 10 - assert not enum != 0 - assert enum != 10 - assert not enum < 0 - assert enum < 10 - assert not enum > 0 - assert not enum > 10 - assert enum >= 0 - assert not enum >= 10 - assert enum <= 0 - assert enum <= 10 + self.assertEquals(enum, 0) + self.failUnless(not enum == 10) + self.failUnless(not enum != 0) + self.assertNotEquals(enum, 10) + self.failUnless(not enum < 0) + self.failUnless(enum < 10) + self.failUnless(not enum > 0) + self.failUnless(not enum > 10) + self.failUnless(enum >= 0) + self.failUnless(not enum >= 10) + self.failUnless(enum <= 0) + self.failUnless(enum <= 10) def testFlagComparision(self): flag = gdk.EXPOSURE_MASK - assert flag == 2 - assert not flag == 10 - assert not flag != 2 - assert flag != 10 - assert not flag < 2 - assert flag < 10 - assert not flag > 2 - assert not flag > 10 - assert flag >= 2 - assert not flag >= 10 - assert flag <= 2 - assert flag <= 10 + self.assertEquals(flag, 2) + self.failUnless(not flag == 10) + self.failUnless(not flag != 2) + self.assertNotEquals(flag, 10) + self.failUnless(not flag < 2) + self.failUnless(flag < 10) + self.failUnless(not flag > 2) + self.failUnless(not flag > 10) + self.failUnless(flag >= 2) + self.failUnless(not flag >= 10) + self.failUnless(flag <= 2) + self.failUnless(flag <= 10) + + def testFlagsProperty(self): + default = PObject.props.flags.default_value + self.failUnless(isinstance(default, gtk.AttachOptions)) + self.assertEqual(default, gtk.EXPAND) + default = PObject.props.flags2.default_value + self.failUnless(isinstance(default, gtk.AttachOptions)) + self.assertEqual(default, gtk.EXPAND) if __name__ == '__main__': unittest.main() |