1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107
|
import unittest
import gtk
from kiwi.enums import ComboMode
from kiwi.ui.comboentry import ComboEntry
from kiwi.ui.widgets.combo import ProxyComboEntry
class TestComboEntry(unittest.TestCase):
def setUp(self):
self.called = False
def testSimple(self):
entry = ComboEntry()
self.failUnless(isinstance(entry, ComboEntry))
def testPopup(self):
entry = ComboEntry()
win = gtk.Window()
win.add(entry)
win.show_all()
entry.hide()
entry.popup()
entry.popdown()
def _on_activate(self, combo):
self.called = True
def testActivate(self):
entry = ComboEntry()
entry.connect('activate', self._on_activate)
entry.entry.emit('activate')
self.assertEqual(self.called, True)
class TestProxyComboEntry(unittest.TestCase):
def testSelectItemByLabel(self):
entry = ProxyComboEntry()
entry.prefill(['one', 'two'])
entry.select_item_by_label('one')
self.assertEqual(entry.get_text(), 'one')
entry.select_item_by_label('two')
self.assertEqual(entry.get_text(), 'two')
self.assertRaises(KeyError, entry.select_item_by_label, 'three')
def testSelectItemByLabelInDataMode(self):
entry = ProxyComboEntry()
entry.prefill([('one', 1), ('two', 2)])
entry.select_item_by_label('one')
self.assertEqual(entry.get_text(), 'one')
entry.select_item_by_label('two')
self.assertEqual(entry.get_text(), 'two')
self.assertRaises(KeyError, entry.select_item_by_label, 'three')
def testSelectItemByData(self):
entry = ProxyComboEntry()
entry.prefill([('one', 1), ('two', 2)])
entry.select_item_by_data(1)
self.assertEqual(entry.get_text(), 'one')
entry.select_item_by_data(2)
self.assertEqual(entry.get_text(), 'two')
self.assertRaises(KeyError, entry.select_item_by_data, 3)
def testSelectItemByDataInTextMode(self):
entry = ProxyComboEntry()
entry.prefill(['one', 'two'])
self.assertRaises(TypeError, entry.select_item_by_data, 1)
def testGetSelectedInTextMode(self):
entry = ProxyComboEntry()
self.assertEqual(entry.get_selected(), None)
entry.prefill(['one', 'two'])
entry.select_item_by_label('two')
self.assertEqual(entry.get_selected(), 'two')
def testGetSelectedInDataMode(self):
entry = ProxyComboEntry()
self.assertEqual(entry.get_selected(), None)
entry.prefill([('one', 1), ('two', 2)])
entry.select_item_by_label('two')
self.assertEqual(entry.get_selected(), 2)
def testSelectInTextMode(self):
entry = ProxyComboEntry()
entry.prefill(['one', 'two'])
entry.select('two')
self.assertEqual(entry.get_selected(), 'two')
def testSelectInDataMode(self):
entry = ProxyComboEntry()
entry.prefill([('one', 1), ('two', 2)])
entry.select(2)
self.assertEqual(entry.get_selected(), 2)
def testDataMode(self):
entry = ProxyComboEntry()
self.assertEqual(entry.get_mode(), ComboMode.UNKNOWN)
entry.prefill([('one', 1), ('two', 2)])
self.assertEqual(entry.get_mode(), ComboMode.DATA)
def testStringMode(self):
entry = ProxyComboEntry()
self.assertEqual(entry.get_mode(), ComboMode.UNKNOWN)
entry.prefill(['one', 'two'])
self.assertEqual(entry.get_mode(), ComboMode.STRING)
if __name__ == '__main__':
unittest.main()
|