summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJohan Dahlin <johan@src.gnome.org>2005-05-09 20:55:00 +0000
committerJohan Dahlin <johan@src.gnome.org>2005-05-09 20:55:00 +0000
commitbf35a4f1362a2f9d93613590de96c8331bcae132 (patch)
tree677236e987747ffaeed260a10c1ce5f40367b9f8
parentd774bbeb97ff5b3cbd6d1fcbae629bf83574d6e9 (diff)
downloadpygobject-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.py91
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()