diff -r 49017c391564 Lib/test/test_turtle_textonly.py --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Lib/test/test_turtle_textonly.py Thu Jun 19 03:15:11 2014 -0400 @@ -0,0 +1,192 @@ +import unittest +from test import support + +turtle = support.import_module('turtle') + +class TPenCase(unittest.TestCase): + def tearDown(self): + turtle.bye() + + def test_reset(self): + p = turtle.TPen() + + p._pensize = 2 + p._shown = False + p._pencolor = 'red' + p._fillcolor = 'blue' + p._drawing = False + p._speed = 1 + p._stretchfactor = (2., 2.) + p._shearfactor = 1. + p._tilt = 1. + p._shapetrafo = (0., 1., 1., 0.) + p._outlinewidth = 3 + + p._reset(pencolor='blue', fillcolor='red') + + self.assertTrue(p._pensize == 1) + self.assertTrue(p._shown == True) + self.assertTrue(p._pencolor == 'blue') + self.assertTrue(p._fillcolor == 'red') + self.assertTrue(p._drawing == True) + self.assertTrue(p._speed == 3) + self.assertTrue(p._stretchfactor == (1., 1.)) + self.assertTrue(p._shearfactor == 0.) + self.assertTrue(p._tilt == 0.) + self.assertTrue(p._shapetrafo == (1., 0., 0., 1.)) + self.assertTrue(p._outlinewidth == 1) + + def test_resizemode(self): + p = turtle.TPen() + + p.resizemode('auto') + self.assertTrue(p.resizemode() == 'auto') + + p.resizemode('user') + self.assertTrue(p.resizemode() == 'user') + + p.resizemode('noresize') + self.assertTrue(p.resizemode() == 'noresize') + + # Invalid string. + p.resizemode('resize') + self.assertTrue(p.resizemode() == 'noresize') + + # This is broken, you shouldn't be able to set a negative penwidth, + # but at the moment you can, so skipping this test for now. + @unittest.skip + def test_pensize(self): + p = turtle.TPen() + + p.pensize(5) + self.assertTrue(p.pensize() == 5) + + p.pensize(0) + self.assertTrue(p.pensize() == 0) + + p.pensize(-5) + self.assertTrue(p.pensize() == 0) + + + def test_penup(self): + p = turtle.TPen() + + p.penup() + self.assertTrue(p._drawing == False) + + # Making sure this doesn't break with successive calls. + p.penup() + self.assertTrue(p._drawing == False) + + def test_pendown(self): + p = turtle.TPen() + + p.pendown() + self.assertTrue(p._drawing == True) + + # Making sure this doesn't break with successive calls. + p.pendown() + self.assertTrue(p._drawing == True) + + def test_isdown(self): + p = turtle.TPen() + + p.pendown() + self.assertTrue(p.isdown() == True) + + p.penup() + self.assertTrue(p.isdown() == False) + + def test_speed(self): + p = turtle.TPen() + + p.speed(5) + self.assertTrue(p.speed() == 5) + + p.speed(0) + self.assertTrue(p.speed() == 0) + + p.speed(5.5) + self.assertTrue(p.speed() == 6) + + p.speed(-5) + self.assertTrue(p.speed() == 0) + + # An invalid string current raises a type error. Since the function + # accepts strings, an invalid string should either default to 0, like + # negative numbers, or raise a more appropriate error. Skipping this + # out for now. + @unittest.skip + def test_speed_strings(self): + p = turtle.TPen() + + p.speed('fastest') + self.assertTrue(p.speed() == 0) + + p.speed('fast') + self.assertTrue(p.speed() == 10) + + p.speed('normal') + self.assertTrue(p.speed() == 6) + + p.speed('slow') + self.assertTrue(p.speed() == 3) + + p.speed('slowest') + self.assertTrue(p.speed() == 1) + + # Invalid string. + p.speed('speed') + self.assertTrue(p.speed() == 0) + + def test_showturtle(self): + p = turtle.TPen() + + p.hideturtle() + + p.showturtle() + self.assertTrue(p._shown == True) + + def test_hideturtle(self): + p = turtle.TPen() + + p.hideturtle() + self.assertTrue(p._shown == False) + + def test_isinvisible(self): + p = turtle.TPen() + + p.hideturtle() + self.assertTrue(p.isvisible() == False) + + p.showturtle() + self.assertTrue(p.isvisible() == True) + + def test_pen(self): + p = turtle.TPen() + + p.pen(outline=10, + fillcolor='red', + shearfactor=1.0, + shown=False, + resizemode='auto', + pensize=10, + stretchfactor=(2.0, 2.0), + pendown=False, + pencolor='blue', + speed=0, + tilt=1.0) + + pen_results = p.pen() + + self.assertTrue(pen_results['outline'] == 10), + self.assertTrue(pen_results['fillcolor'] == 'red'), + self.assertTrue(pen_results['shearfactor'] == 1.0), + self.assertTrue(pen_results['shown'] == False), + self.assertTrue(pen_results['resizemode'] == 'auto'), + self.assertTrue(pen_results['pensize'] == 10), + self.assertTrue(pen_results['stretchfactor'] == (2.0, 2.0)), + self.assertTrue(pen_results['pendown'] == False), + self.assertTrue(pen_results['pencolor'] == 'blue'), + self.assertTrue(pen_results['speed'] == 0), + self.assertTrue(pen_results['tilt'] == 1.0)