summaryrefslogtreecommitdiff
path: root/tests/test_ComboBox.py
diff options
context:
space:
mode:
authorSVN-Git Migration <python-modules-team@lists.alioth.debian.org>2015-10-08 09:27:57 -0700
committerSVN-Git Migration <python-modules-team@lists.alioth.debian.org>2015-10-08 09:27:57 -0700
commit928ccf929c26a5344c224303b5108e99c2eb597a (patch)
tree6d371148311fe4467b0c9a208e9c36d24380c75e /tests/test_ComboBox.py
Imported Upstream version 1.9.8
Diffstat (limited to 'tests/test_ComboBox.py')
-rw-r--r--tests/test_ComboBox.py116
1 files changed, 116 insertions, 0 deletions
diff --git a/tests/test_ComboBox.py b/tests/test_ComboBox.py
new file mode 100644
index 0000000..da7ac5f
--- /dev/null
+++ b/tests/test_ComboBox.py
@@ -0,0 +1,116 @@
+#!/usr/bin/env python
+import utils
+
+import unittest
+
+from kiwi.python import disabledeprecationcall, Settable
+from kiwi.ui.proxy import Proxy
+from kiwi.ui.widgets.combobox import ProxyComboBox, ProxyComboBoxEntry
+
+class TestComboBox(unittest.TestCase):
+ def setUp(self):
+ self.combo = ProxyComboBox()
+
+ def _prefill(self):
+ self.combo.prefill((('Johan', 1981),
+ ('Lorenzo', 1979),
+ ('Christian', 1976)))
+
+ def testPrefill(self):
+ self.combo.prefill(('foo', 'bar'))
+ model = self.combo.get_model()
+ self.assertEqual(tuple(model[0]), ('foo', None))
+ self.assertEqual(tuple(model[1]), ('bar', None))
+
+ def testPrefillWithData(self):
+ self.combo.prefill((('foo', 42), ('bar', 138)))
+ model = self.combo.get_model()
+ self.assertEqual(tuple(model[0]), ('foo', 42))
+ self.assertEqual(tuple(model[1]), ('bar', 138))
+ self.combo.prefill([])
+ self.assertEqual(len(self.combo.get_model()), 0)
+ self.assertEqual(len(model), 0)
+ self.assertEqual(len(self.combo), 0)
+
+ def testSelectItemByPosition(self):
+ self._prefill()
+ self.combo.select_item_by_position(1)
+ model = self.combo.get_model()
+ iter = self.combo.get_active_iter()
+ self.assertEqual(model.get_value(iter, 0), 'Lorenzo')
+ self.assertEqual(model.get_value(iter, 1), 1979)
+ self.assertRaises(KeyError, self.combo.select_item_by_label, 4)
+
+ def testSelectItemByLabel(self):
+ self._prefill()
+ self.combo.select_item_by_label('Christian')
+ model = self.combo.get_model()
+ iter = self.combo.get_active_iter()
+ rowNo = model.get_path(iter)[0]
+ self.assertEqual(rowNo, 2)
+ self.assertRaises(KeyError, self.combo.select_item_by_label, 'Salgado')
+
+ def testSelectByData(self):
+ self._prefill()
+ self.combo.select_item_by_data(1976)
+ model = self.combo.get_model()
+ iter = self.combo.get_active_iter()
+ rowNo = model.get_path(iter)[0]
+ self.assertEqual(rowNo, 2)
+ self.assertEqual(model.get_value(iter, 0), 'Christian')
+ self.assertEqual(model.get_value(iter, 1), 1976)
+ self.assertRaises(KeyError, self.combo.select_item_by_data, 1980)
+
+ def testGetSelectedData(self):
+ self._prefill()
+ self.combo.select_item_by_position(0)
+ self.assertEqual(self.combo.get_selected_data(), 1981)
+ self.assertRaises(TypeError,
+ self.combo.select_item_by_position, 'foobar')
+
+ def testGetSelectedLabel(self):
+ self._prefill()
+
+ def testClear(self):
+ self._prefill()
+ self.combo.clear()
+ self.assertEqual(map(list, self.combo.get_model()), [])
+
+class FakeView:
+ def handler_block(self, widget):
+ pass
+
+ def handler_unblock(self, widget):
+ pass
+
+class BaseModelTest:
+ def setUp(self):
+ self.model = Settable(attr=0)
+ proxy = Proxy(FakeView(), self.model)
+ self.combo = disabledeprecationcall(self.type)
+ self.combo.data_type = int
+ self.combo.model_attribute = 'attr'
+ self.combo.prefill([('foo', 0),
+ ('bar', 1)])
+ proxy.add_widget('attr', self.combo)
+
+ def testSelectItemByData(self):
+ self.combo.select_item_by_data(1)
+ self.assertEqual(self.model.attr, 1)
+ self.combo.select_item_by_data(0)
+ self.assertEqual(self.model.attr, 0)
+
+ def testSelectItemBylabel(self):
+ self.combo.select_item_by_label('bar')
+ self.assertEqual(self.model.attr, 1)
+ self.combo.select_item_by_label('foo')
+ self.assertEqual(self.model.attr, 0)
+
+class ComboModelTest(BaseModelTest, unittest.TestCase):
+ type = ProxyComboBox
+
+class ComboEntryModelTest(BaseModelTest, unittest.TestCase):
+ type = ProxyComboBoxEntry
+
+if __name__ == '__main__':
+ unittest.main()