Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit97106d3

Browse files
miss-islingtonserhiy-storchakaAlexWaygood
authored
[3.10] Add more tkinter.Canvas tests (GH-98475) (#98477)
Add more tkinter.Canvas tests (GH-98475)It is a prerequisite forGH-94473. Add tests for the coords() method andfor creation of some Canvas items.(cherry picked from commitff173ed)Co-authored-by: Serhiy Storchaka <storchaka@gmail.com>Co-authored-by: Alex Waygood <Alex.Waygood@Gmail.com>
1 parente77af82 commit97106d3

File tree

1 file changed

+158
-0
lines changed

1 file changed

+158
-0
lines changed

‎Lib/tkinter/test/test_tkinter/test_widgets.py‎

Lines changed: 158 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -781,6 +781,164 @@ def test_configure_yscrollincrement(self):
781781
self.checkPixelsParam(widget,'yscrollincrement',
782782
10,0,11.2,13.6,-10,'0.1i')
783783

784+
def_test_option_joinstyle(self,c,factory):
785+
forjoinstylein'bevel','miter','round':
786+
i=factory(joinstyle=joinstyle)
787+
self.assertEqual(c.itemcget(i,'joinstyle'),joinstyle)
788+
self.assertRaises(TclError,factory,joinstyle='spam')
789+
790+
def_test_option_smooth(self,c,factory):
791+
forsmoothin1,True,'1','true','yes','on':
792+
i=factory(smooth=smooth)
793+
self.assertEqual(c.itemcget(i,'smooth'),'true')
794+
forsmoothin0,False,'0','false','no','off':
795+
i=factory(smooth=smooth)
796+
self.assertEqual(c.itemcget(i,'smooth'),'0')
797+
i=factory(smooth=True,splinestep=30)
798+
self.assertEqual(c.itemcget(i,'smooth'),'true')
799+
self.assertEqual(c.itemcget(i,'splinestep'),'30')
800+
i=factory(smooth='raw',splinestep=30)
801+
self.assertEqual(c.itemcget(i,'smooth'),'raw')
802+
self.assertEqual(c.itemcget(i,'splinestep'),'30')
803+
self.assertRaises(TclError,factory,smooth='spam')
804+
805+
deftest_create_rectangle(self):
806+
c=self.create()
807+
i1=c.create_rectangle(20,30,60,10)
808+
self.assertEqual(c.coords(i1), [20.0,10.0,60.0,30.0])
809+
self.assertEqual(c.bbox(i1), (19,9,61,31))
810+
811+
i2=c.create_rectangle([21,31,61,11])
812+
self.assertEqual(c.coords(i2), [21.0,11.0,61.0,31.0])
813+
self.assertEqual(c.bbox(i2), (20,10,62,32))
814+
815+
i3=c.create_rectangle((22,32), (62,12))
816+
self.assertEqual(c.coords(i3), [22.0,12.0,62.0,32.0])
817+
self.assertEqual(c.bbox(i3), (21,11,63,33))
818+
819+
i4=c.create_rectangle([(23,33), (63,13)])
820+
self.assertEqual(c.coords(i4), [23.0,13.0,63.0,33.0])
821+
self.assertEqual(c.bbox(i4), (22,12,64,34))
822+
823+
self.assertRaises(TclError,c.create_rectangle,20,30,60)
824+
self.assertRaises(TclError,c.create_rectangle, [20,30,60])
825+
self.assertRaises(TclError,c.create_rectangle,20,30,40,50,60,10)
826+
self.assertRaises(TclError,c.create_rectangle, [20,30,40,50,60,10])
827+
self.assertRaises(TclError,c.create_rectangle,20,30)
828+
self.assertRaises(TclError,c.create_rectangle, [20,30])
829+
self.assertRaises(IndexError,c.create_rectangle)
830+
self.assertRaises(IndexError,c.create_rectangle, [])
831+
832+
deftest_create_line(self):
833+
c=self.create()
834+
i1=c.create_line(20,30,40,50,60,10)
835+
self.assertEqual(c.coords(i1), [20.0,30.0,40.0,50.0,60.0,10.0])
836+
self.assertEqual(c.bbox(i1), (18,8,62,52))
837+
self.assertEqual(c.itemcget(i1,'arrow'),'none')
838+
self.assertEqual(c.itemcget(i1,'arrowshape'),'8 10 3')
839+
self.assertEqual(c.itemcget(i1,'capstyle'),'butt')
840+
self.assertEqual(c.itemcget(i1,'joinstyle'),'round')
841+
self.assertEqual(c.itemcget(i1,'smooth'),'0')
842+
self.assertEqual(c.itemcget(i1,'splinestep'),'12')
843+
844+
i2=c.create_line([21,31,41,51,61,11])
845+
self.assertEqual(c.coords(i2), [21.0,31.0,41.0,51.0,61.0,11.0])
846+
self.assertEqual(c.bbox(i2), (19,9,63,53))
847+
848+
i3=c.create_line((22,32), (42,52), (62,12))
849+
self.assertEqual(c.coords(i3), [22.0,32.0,42.0,52.0,62.0,12.0])
850+
self.assertEqual(c.bbox(i3), (20,10,64,54))
851+
852+
i4=c.create_line([(23,33), (43,53), (63,13)])
853+
self.assertEqual(c.coords(i4), [23.0,33.0,43.0,53.0,63.0,13.0])
854+
self.assertEqual(c.bbox(i4), (21,11,65,55))
855+
856+
self.assertRaises(TclError,c.create_line,20,30,60)
857+
self.assertRaises(TclError,c.create_line, [20,30,60])
858+
self.assertRaises(TclError,c.create_line,20,30)
859+
self.assertRaises(TclError,c.create_line, [20,30])
860+
self.assertRaises(IndexError,c.create_line)
861+
self.assertRaises(IndexError,c.create_line, [])
862+
863+
forarrowin'none','first','last','both':
864+
i=c.create_line(20,30,60,10,arrow=arrow)
865+
self.assertEqual(c.itemcget(i,'arrow'),arrow)
866+
i=c.create_line(20,30,60,10,arrow='first',arrowshape=[10,15,5])
867+
self.assertEqual(c.itemcget(i,'arrowshape'),'10 15 5')
868+
self.assertRaises(TclError,c.create_line,20,30,60,10,arrow='spam')
869+
870+
forcapstylein'butt','projecting','round':
871+
i=c.create_line(20,30,60,10,capstyle=capstyle)
872+
self.assertEqual(c.itemcget(i,'capstyle'),capstyle)
873+
self.assertRaises(TclError,c.create_line,20,30,60,10,capstyle='spam')
874+
875+
self._test_option_joinstyle(c,
876+
lambda**kwargs:c.create_line(20,30,40,50,60,10,**kwargs))
877+
self._test_option_smooth(c,
878+
lambda**kwargs:c.create_line(20,30,60,10,**kwargs))
879+
880+
deftest_create_polygon(self):
881+
c=self.create()
882+
i1=c.create_polygon(20,30,40,50,60,10)
883+
self.assertEqual(c.coords(i1), [20.0,30.0,40.0,50.0,60.0,10.0])
884+
self.assertEqual(c.bbox(i1), (19,9,61,51))
885+
self.assertEqual(c.itemcget(i1,'joinstyle'),'round')
886+
self.assertEqual(c.itemcget(i1,'smooth'),'0')
887+
self.assertEqual(c.itemcget(i1,'splinestep'),'12')
888+
889+
i2=c.create_polygon([21,31,41,51,61,11])
890+
self.assertEqual(c.coords(i2), [21.0,31.0,41.0,51.0,61.0,11.0])
891+
self.assertEqual(c.bbox(i2), (20,10,62,52))
892+
893+
i3=c.create_polygon((22,32), (42,52), (62,12))
894+
self.assertEqual(c.coords(i3), [22.0,32.0,42.0,52.0,62.0,12.0])
895+
self.assertEqual(c.bbox(i3), (21,11,63,53))
896+
897+
i4=c.create_polygon([(23,33), (43,53), (63,13)])
898+
self.assertEqual(c.coords(i4), [23.0,33.0,43.0,53.0,63.0,13.0])
899+
self.assertEqual(c.bbox(i4), (22,12,64,54))
900+
901+
self.assertRaises(TclError,c.create_polygon,20,30,60)
902+
self.assertRaises(TclError,c.create_polygon, [20,30,60])
903+
self.assertRaises(IndexError,c.create_polygon)
904+
self.assertRaises(IndexError,c.create_polygon, [])
905+
906+
self._test_option_joinstyle(c,
907+
lambda**kwargs:c.create_polygon(20,30,40,50,60,10,**kwargs))
908+
self._test_option_smooth(c,
909+
lambda**kwargs:c.create_polygon(20,30,40,50,60,10,**kwargs))
910+
911+
deftest_coords(self):
912+
c=self.create()
913+
i=c.create_line(20,30,40,50,60,10,tags='x')
914+
self.assertEqual(c.coords(i), [20.0,30.0,40.0,50.0,60.0,10.0])
915+
self.assertEqual(c.coords('x'), [20.0,30.0,40.0,50.0,60.0,10.0])
916+
self.assertEqual(c.bbox(i), (18,8,62,52))
917+
918+
c.coords(i,50,60,70,80,90,40)
919+
self.assertEqual(c.coords(i), [50.0,60.0,70.0,80.0,90.0,40.0])
920+
self.assertEqual(c.bbox(i), (48,38,92,82))
921+
922+
c.coords(i, [21,31,41,51,61,11])
923+
self.assertEqual(c.coords(i), [21.0,31.0,41.0,51.0,61.0,11.0])
924+
925+
c.coords(i,20,30,60,10)
926+
self.assertEqual(c.coords(i), [20.0,30.0,60.0,10.0])
927+
self.assertEqual(c.bbox(i), (18,8,62,32))
928+
929+
self.assertRaises(TclError,c.coords,i,20,30,60)
930+
self.assertRaises(TclError,c.coords,i, [20,30,60])
931+
self.assertRaises(TclError,c.coords,i,20,30)
932+
self.assertRaises(TclError,c.coords,i, [20,30])
933+
934+
c.coords(i,'20','30c','60i','10p')
935+
coords=c.coords(i)
936+
self.assertIsInstance(coords,list)
937+
self.assertEqual(len(coords),4)
938+
self.assertEqual(coords[0],20)
939+
foriinrange(4):
940+
self.assertIsInstance(coords[i],float)
941+
784942
@requires_tcl(8,6)
785943
deftest_moveto(self):
786944
widget=self.create()

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp