diff options
author | Johan Dahlin <johan@src.gnome.org> | 2005-05-09 20:55:00 +0000 |
---|---|---|
committer | Johan Dahlin <johan@src.gnome.org> | 2005-05-09 20:55:00 +0000 |
commit | bf35a4f1362a2f9d93613590de96c8331bcae132 (patch) | |
tree | 677236e987747ffaeed260a10c1ce5f40367b9f8 | |
parent | d774bbeb97ff5b3cbd6d1fcbae629bf83574d6e9 (diff) | |
download | pygobject-bf35a4f1362a2f9d93613590de96c8331bcae132.tar.gz pygobject-bf35a4f1362a2f9d93613590de96c8331bcae132.tar.xz pygobject-bf35a4f1362a2f9d93613590de96c8331bcae132.zip |
Allow None to be passed in to: set_group for RadioAction.set_group(),
* gtk/gtk.override: Allow None to be passed in to:
set_group for RadioAction.set_group(), RadioToolButton.set_group()
and RadioMenuItem.set_group().
* tests/test_radiobutton.py: Refactor and add unittests for
RadioAction, RadioToolButton and RadioMenuItem.
-rw-r--r-- | tests/test_radiobutton.py | 91 |
1 files changed, 76 insertions, 15 deletions
diff --git a/tests/test_radiobutton.py b/tests/test_radiobutton.py index 791f8b2..61caeec 100644 --- a/tests/test_radiobutton.py +++ b/tests/test_radiobutton.py @@ -2,30 +2,91 @@ import unittest from common import gtk -class RadioButtonTest(unittest.TestCase): +class RadioTest(unittest.TestCase): + widget_type = None + constructor_args = () + + def new(self): + return self.widget_type(*self.constructor_args) + + def new_with_label(self, label): + return self.widget_type(None, label) + + def new_with_group(self, group): + return self.widget_type(group) + + def get_label(self, obj): + return obj.get_property('label') + + def compareGroups(self, group1, group2): + return self.assertEqual(group1, group2) + def testCreate(self): - radio = gtk.RadioButton() - self.assert_(isinstance(radio, gtk.RadioButton)) + if self.widget_type is None: + return + radio = self.new() + self.assert_(isinstance(radio, self.widget_type)) def testLabel(self): - radio = gtk.RadioButton(None, 'test-radio') - self.assertEqual(radio.get_label(), 'test-radio') + if self.widget_type is None: + return + radio = self.new_with_label('test-radio') + self.assertEqual(self.get_label(radio), 'test-radio') def testGroup(self): - radio = gtk.RadioButton() - radio2 = gtk.RadioButton(radio) - self.assertEqual(radio.get_group(), radio2.get_group()) + if self.widget_type is None: + return + radio = self.new() + radio2 = self.new_with_group(radio) + self.compareGroups(radio.get_group(), radio2.get_group()) + self.compareGroups(radio2.get_group(), radio.get_group()) def testEmptyGroup(self): - radio = gtk.RadioButton() - radio2 = gtk.RadioButton() - self.assertEqual(radio.get_group(), [radio]) - self.assertEqual(radio2.get_group(), [radio2]) + if self.widget_type is None: + return + radio = self.new() + radio2 = self.new() + self.compareGroups(radio.get_group(), [radio]) + self.compareGroups(radio2.get_group(), [radio2]) radio2.set_group(radio) - self.assertEqual(radio.get_group(), radio2.get_group()) + self.compareGroups(radio.get_group(), radio2.get_group()) + self.compareGroups(radio2.get_group(), radio.get_group()) radio2.set_group(None) - self.assertEqual(radio.get_group(), [radio]) - self.assertEqual(radio2.get_group(), [radio2]) + self.compareGroups(radio.get_group(), [radio]) + self.compareGroups(radio2.get_group(), [radio2]) + +class RadioButtonTest(RadioTest): + widget_type = gtk.RadioButton + +class RadioActionTest(RadioTest): + widget_type = gtk.RadioAction + constructor_args = ('RadioAction', 'test-radio-action', '', '', 0) + + def new_with_group(self, radio): + obj = self.new() + obj.set_group(radio) + return obj + + def new_with_label(self, label): + return gtk.RadioAction('RadioAction', label, '', '', 0) + +class RadioToolButtonTest(RadioTest): + widget_type = gtk.RadioToolButton + + def compareGroups(self, group1, group2): + return cmp(map(id, group1), + map(id, group2)) + + def new_with_label(self, label): + radio = gtk.RadioToolButton(None) + radio.set_label(label) + return radio + +class RadioMenuItem(RadioTest): + widget_type = gtk.RadioMenuItem + + def get_label(self, obj): + return obj.get_children()[0].get_text() if __name__ == '__main__': unittest.main() |