[Python-checkins] r73098 - python/branches/tk_and_idle_maintenance/Lib/lib-tk/test/test_tkinter/test_spinbox.py
guilherme.polo
python-checkins at python.org
Mon Jun 1 05:18:43 CEST 2009
Author: guilherme.polo
Date: Mon Jun 1 05:18:43 2009
New Revision: 73098
Log:
Some tests for Tkinter.Spinbox
Added:
python/branches/tk_and_idle_maintenance/Lib/lib-tk/test/test_tkinter/test_spinbox.py (contents, props changed)
Added: python/branches/tk_and_idle_maintenance/Lib/lib-tk/test/test_tkinter/test_spinbox.py
==============================================================================
--- (empty file)
+++ python/branches/tk_and_idle_maintenance/Lib/lib-tk/test/test_tkinter/test_spinbox.py Mon Jun 1 05:18:43 2009
@@ -0,0 +1,87 @@
+import unittest
+import Tkinter
+from test.test_support import requires, run_unittest
+from ttk import setup_master
+
+requires('gui')
+
+class SpinboxTest(unittest.TestCase):
+
+ def setUp(self):
+ self.root = setup_master()
+ self.sb = Tkinter.Spinbox(self.root)
+
+ def tearDown(self):
+ self.sb.destroy()
+
+
+ def test_bbox(self):
+ res = self.sb.bbox('end')
+ self.assertTrue(isinstance(res, tuple))
+ self.assertEqual(len(res), 4)
+
+ self.assertRaises(Tkinter.TclError, self.sb.bbox, '2.0')
+
+ def test_get_delete(self):
+ self.sb.insert('0', 'hi there')
+ self.sb.delete('0')
+ self.assertEqual(self.sb.get(), 'i there')
+ self.sb.delete(0, 1)
+ self.assertEqual(self.sb.get(), ' there')
+ self.sb.delete(0, 'end')
+ self.assertEqual(self.sb.get(), '')
+
+ def test_icursor(self):
+ self.sb.insert(0, 'avocado')
+ self.sb.icursor(3)
+ self.sb.delete('insert', 'end')
+ self.assertEqual(self.sb.get(), 'avo')
+
+ def test_identify(self):
+ self.sb.pack()
+ self.sb.update_idletasks()
+
+ # XXX Based on Tk's code it doesn't seem like the identify command
+ # in Tcl can return the string 'none'. I also can't make it return
+ # this value, so it's more like a documentation bug in tk or even a
+ # tk bug that should be tested on tk side.
+ self.assertEqual(self.sb.identify(0, 0), 'entry')
+
+ buttons = ['buttonup', 'buttondown']
+ for i in xrange(self.sb.winfo_width(), 0, -1):
+ name = self.sb.identify(i, 1)
+ if name in buttons:
+ buttons.remove(name)
+ break
+ for j in xrange(self.sb.winfo_height(), 0, -1):
+ name = self.sb.identify(i, j)
+ if name in buttons:
+ buttons.remove(name)
+ break
+ self.assertFalse(buttons)
+
+ def test_index(self):
+ self.assertEqual(self.sb.index('end'), 0)
+ self.sb.insert(0, 'airplane')
+ self.assertEqual(self.sb.index('end'), 8)
+
+ def test_invoke(self):
+ self.sb.configure(from_=1.0, to=10.0, increment=0.5)
+
+ val = self.sb.get()
+ self.sb.invoke('buttondown')
+ self.assertEqual(self.sb.get(), val)
+ self.sb.invoke('buttonup')
+ self.assertEqual(self.sb.get(), str(float(val) + 0.5))
+
+ def test_scan(self): pass
+ def test_selection(self): pass
+
+ # XXX Tkinter.Spinbox is missing set, validate, xview and some
+ # selection methods.
+
+
+tests_gui = (SpinboxTest, )
+
+if __name__ == "__main__":
+ run_unittest(*tests_gui)
More information about the Python-checkins
mailing list