[Python-checkins] r73237 - python/branches/tk_and_idle_maintenance/Lib/lib-tk/test/test_tkinter/test_canvas.py

guilherme.polo python-checkins at python.org
Fri Jun 5 04:36:12 CEST 2009


Author: guilherme.polo
Date: Fri Jun  5 04:36:12 2009
New Revision: 73237

Log:
Started tests for Tkinter.Canvas.

Added:
   python/branches/tk_and_idle_maintenance/Lib/lib-tk/test/test_tkinter/test_canvas.py   (contents, props changed)

Added: python/branches/tk_and_idle_maintenance/Lib/lib-tk/test/test_tkinter/test_canvas.py
==============================================================================
--- (empty file)
+++ python/branches/tk_and_idle_maintenance/Lib/lib-tk/test/test_tkinter/test_canvas.py	Fri Jun  5 04:36:12 2009
@@ -0,0 +1,162 @@
+import unittest
+import Tkinter
+from test.test_support import requires, run_unittest
+from ttk import setup_master
+
+requires('gui')
+
+class CanvasTest(unittest.TestCase):
+
+    def setUp(self):
+        self.root = setup_master()
+        self.canvas = Tkinter.Canvas(self.root)
+
+    def tearDown(self):
+        self.canvas.destroy()
+
+
+    def test_addtag(self): pass
+
+    def test_bbox(self):
+        self.assertIs(self.canvas.bbox('a'), None)
+        self.assertRaises(Tkinter.TclError, self.canvas.bbox)
+
+        self.canvas.create_line(1, 1, 10, 10, tags='a')
+        self.canvas.create_line(5, 5, 12, 12, tags='b')
+        res = self.canvas.bbox('a', 'b')
+        self.assertTrue(isinstance(res, tuple))
+        self.assertEqual(len(res), 4)
+        for item in res:
+            self.assertTrue(isinstance(item, int))
+
+        ba = self.canvas.bbox('a')
+        bb = self.canvas.bbox('b')
+        for indx, item in enumerate(zip(ba[:2], bb[:2])):
+            self.assertEqual(min(item), res[indx])
+        for indx, item in enumerate(zip(ba[2:], bb[2:])):
+            self.assertEqual(max(item), res[indx + 2])
+
+    def test_tag(self): pass
+    def test_canvasxy(self): pass
+
+    def test_coords(self):
+        coords = self.canvas.coords('x')
+        self.assertFalse(coords)
+        self.assertEqual(coords, [])
+
+        item_id = self.canvas.create_line(5, 5, 10, 10)
+        coords = self.canvas.coords(item_id)
+        self.assertTrue(isinstance(coords, list))
+        self.assertEqual(len(coords), 4)
+        for item in coords:
+            self.assertTrue(isinstance(item, float))
+
+        t = (1, 2, 3, 4)
+        self.canvas.coords(item_id, 1, 2, 3, 4)
+        for item in zip(self.canvas.coords(item_id), t):
+            self.assertAlmostEqual(item[0], item[1])
+
+        self.canvas.coords(item_id, t)
+        for item in zip(self.canvas.coords(item_id), t):
+            self.assertAlmostEqual(item[0], item[1])
+
+    def test_create(self):
+        self.assertIs(self.canvas.type('x'), None)
+        self.assertRaises(Tkinter.TclError, self.canvas.create_arc)
+        self.assertRaises(Tkinter.TclError, self.canvas.create_arc,
+                1, 2, 3, 4, badoption=2)
+
+        arcid = self.canvas.create_arc(1, 2, 3, 4, tags=('a', 'b', 'c'))
+        self.assertEqual(self.canvas.type(arcid), 'arc')
+        self.assertEqual(self.canvas.gettags(arcid), ('a', 'b', 'c'))
+
+        bmpid = self.canvas.create_bitmap(1, 2, state='hidden', anchor='n')
+        self.assertEqual(self.canvas.type(bmpid), 'bitmap')
+        self.assertEqual(self.canvas.itemcget(bmpid, 'state'), 'hidden')
+        self.assertEqual(self.canvas.itemcget(bmpid, 'anchor'), 'n')
+
+        imgid = self.canvas.create_image(1, 2)
+        self.assertEqual(self.canvas.type(imgid), 'image')
+        # line needs at least 4 coordinates
+        self.assertRaises(Tkinter.TclError, self.canvas.create_line, 1, 10)
+        lineid = self.canvas.create_line(1, 10, 30, 10, 60, 30,
+                width=3, smooth=True)
+        self.assertEqual(self.canvas.type(lineid), 'line')
+        ovalid = self.canvas.create_oval(1, 2, 3, 4)
+        self.assertEqual(self.canvas.type(ovalid), 'oval')
+        rectid = self.canvas.create_rectangle(1, 2, 3, 4)
+        self.assertEqual(self.canvas.type(rectid), 'rectangle')
+        textid = self.canvas.create_text(1, 2)
+        self.assertEqual(self.canvas.type(textid), 'text')
+        winid = self.canvas.create_window(1, 2)
+        self.assertEqual(self.canvas.type(winid), 'window')
+
+        for key, val in locals().iteritems():
+            if key.endswith('id'):
+                self.assertTrue(isinstance(val, int))
+
+    def test_dchars(self):
+        tid = self.canvas.create_text(10, 10, text='testing', tags='t')
+        self.canvas.dchars('t', 4)
+        self.assertEqual(self.canvas.itemcget(tid, 'text'), 'testng')
+        self.assertRaises(Tkinter.TclError, self.canvas.dchars, 't', 'badindex')
+        self.canvas.dchars('t', 4, 'end')
+        self.assertEqual(self.canvas.itemcget(tid, 'text'), 'test')
+
+        lid = self.canvas.create_line(10, 10, 20, 20, tags='t')
+        self.assertEqual(self.canvas.coords(lid), [10, 10, 20, 20])
+        self.canvas.dchars('t', 2, 3)
+        self.assertEqual(self.canvas.coords(lid), [10, 10])
+        self.assertEqual(self.canvas.itemcget(tid, 'text'), 'te')
+
+        self.canvas.dchars('t', 0, 'end')
+        self.assertEqual(self.canvas.coords(lid), [])
+        self.assertEqual(self.canvas.itemcget(tid, 'text'), '')
+
+    def test_delete(self):
+        t1 = self.canvas.create_text(5, 5, tags='a')
+        t2 = self.canvas.create_text(5, 5, tags='a')
+        t3 = self.canvas.create_text(20, 20, tags='a')
+        self.assertTrue(self.canvas.itemconfigure(t1), {})
+        self.canvas.delete(t1)
+        self.assertEqual(self.canvas.itemconfigure(t1), {})
+
+        t4 = self.canvas.create_text(15, 15, tags='b')
+        self.assertTrue(self.canvas.itemconfigure(t2))
+        self.canvas.delete('b', 'a', t3)
+        self.assertEqual(self.canvas.itemconfigure(t2),
+                self.canvas.itemconfigure(t3))
+        self.assertEqual(self.canvas.itemconfigure(t3),
+                self.canvas.itemconfigure(t4))
+        self.assertEqual(self.canvas.itemconfigure(t4), {})
+
+    def test_dtag(self): pass
+    def test_find(self): pass
+    def test_focus(self): pass
+    def test_gettags(self): pass
+    def test_icursor(self): pass
+    def test_index(self): pass
+    def test_insert(self): pass
+    def test_itemcget(self): pass
+    def test_itemconfigure(self): pass
+    def test_move(self): pass
+    def test_postscript(self): pass # XXX
+    def test_scale(self): pass
+    def test_scan(self): pass
+    def test_select(self): pass
+
+    def test_xview(self, method='xview'):
+        view = getattr(self.canvas, method)()
+        self.assertTrue(isinstance(view, tuple))
+        self.assertEqual(len(view), 2)
+        for item in view:
+            self.assertTrue(isinstance(item, float))
+
+    def test_yview(self):
+        self.test_xview('yview')
+
+
+tests_gui = (CanvasTest, )
+
+if __name__ == "__main__":
+    run_unittest(*tests_gui)


More information about the Python-checkins mailing list