示例#1
0
    def test_two_deletes_only_call_canvas_delete_once(self):

        sprite = sprites.VectorSprite(self.canvas, UnitSquare())

        sprite.delete()
        sprite.delete()
        self.canvas.delete.assert_called_once()
示例#2
0
    def test_direct_rotate_to_does_not_change_anchor(self):

        sprite = sprites.VectorSprite(self.canvas, UnitSquare(), angle=42)
        original_anchor = sprite.anchor

        sprite.direct_rotate_to(0)
        self.assert_almost_equal_anchor(original_anchor, sprite.anchor, places=1)
示例#3
0
    def test_direct_rotate_around_calls_canvas_update_once(self):

        canvas = fake_tkinter.Canvas()
        sprite = sprites.VectorSprite(canvas, UnitSquare(), update=True)

        sprite.direct_rotate(30, around=(10, 10))
        canvas.update.assert_called_once_with()
示例#4
0
    def test_direct_rotate_around_point_updates_coords(self):

        sprite = sprites.VectorSprite(self.canvas, UnitSquare())

        sprite.direct_rotate(180, around=(1, 1))
        # Half-circle rotated coords around (1, 1) are these.
        expected_coords = [1.5, 2.5, 1.5, 1.5, 2.5, 1.5, 2.5, 2.5]
        for orig, new in zip(expected_coords, sprite.coords):
            self.assertAlmostEqual(orig, new, places=5)
示例#5
0
    def test_shape_fill_color_passed_to_create_polygon_fill_kwarg(self):

        _sprite = sprites.VectorSprite(self.canvas, UnitSquare(fill_color='#009fff'))

        self.canvas.create_polygon.assert_called_once_with(
            mock.ANY,
            fill='#009fff',
            outline=mock.ANY,
            width=mock.ANY,
        )
示例#6
0
    def test_shape_line_width_passed_to_create_polygon_width_kwarg(self):

        _sprite = sprites.VectorSprite(self.canvas, UnitSquare(line_width=2))

        self.canvas.create_polygon.assert_called_once_with(
            mock.ANY,
            fill=mock.ANY,
            outline=mock.ANY,
            width=2,
        )
示例#7
0
    def test_direct_move_to_moves_coords(self):

        sprite = sprites.VectorSprite(self.canvas, UnitSquare(), anchor=(5, 5))
        sprite.direct_move_to(2, 1)
        expected_coords = [2.5, 0.5, 2.5, 1.5, 1.5, 1.5, 1.5, 0.5]
        self.assert_almost_equal_coords(
            sprite.coords,
            expected_coords,
            places=1,
        )
示例#8
0
    def test_custom_angle_coords(self):

        sprite = sprites.VectorSprite(self.canvas, UnitSquare(), angle=180)

        expected_coords = [-0.5, 0.5, -0.5, -0.5, 0.5, -0.5, 0.5, 0.5]
        self.assert_almost_equal_coords(
            sprite.coords,
            expected_coords,
            places=1,
        )
示例#9
0
    def test_custom_anchor_coords(self):

        sprite = sprites.VectorSprite(self.canvas, UnitSquare(), anchor=(2, 1))

        expected_coords = [2.5, 0.5, 2.5, 1.5, 1.5, 1.5, 1.5, 0.5]
        self.assert_almost_equal_coords(
            sprite.coords,
            expected_coords,
            places=1,
        )
示例#10
0
    def test_direct_rotate_around_point_updates_coords(self):

        sprite = sprites.VectorSprite(self.canvas, UnitSquare(), anchor=(1, 1))

        sprite.direct_rotate(180, around=(0, 0))
        expected_coords = [-1.5, -0.5, -1.5, -1.5, -0.5, -1.5, -0.5, -0.5]
        self.assert_almost_equal_coords(
            sprite.coords,
            expected_coords,
            places=1,
        )
示例#11
0
    def test_direct_rotate_updates_coords(self):

        sprite = sprites.VectorSprite(self.canvas, UnitSquare(), angle=180)
        original_coords = list(sprite.coords)

        sprite.direct_rotate(180)
        # Half-circle rotated coords are easy to determine.
        expected_coords = original_coords[4:] + original_coords[:5]
        self.assert_almost_equal_coords(
            sprite.coords,
            expected_coords,
            places=1,
        )
示例#12
0
    def test_default_angle(self):

        sprite = sprites.VectorSprite(self.canvas, UnitSquare())
        self.assertAlmostEqual(sprite.angle, 0, places=1)
示例#13
0
    def test_default_anchor(self):

        sprite = sprites.VectorSprite(self.canvas, UnitSquare())
        self.assert_almost_equal_anchor(sprite.anchor, (0, 0), places=1)
示例#14
0
    def test_create(self):

        _sprite = sprites.VectorSprite(self.canvas, UnitSquare())
示例#15
0
    def test_direct_rotate_to_with_update_calls_canvas_update(self):

        sprite = sprites.VectorSprite(self.canvas, UnitSquare())
        sprite.direct_rotate_to(0, update=True)
        self.canvas.update.assert_called_once_with()
示例#16
0
    def test_custom_anchor(self):

        sprite = sprites.VectorSprite(self.canvas, UnitSquare(), anchor=(2, 1))
        self.assert_almost_equal_anchor(sprite.anchor, (2, 1), places=1)
示例#17
0
    def test_direct_rotate_to_does_not_call_canvas_update(self):

        sprite = sprites.VectorSprite(self.canvas, UnitSquare())
        sprite.direct_rotate_to(0)
        self.canvas.update.assert_not_called()
示例#18
0
    def test_custom_angle(self):

        sprite = sprites.VectorSprite(self.canvas, UnitSquare(), angle=42)
        self.assertAlmostEqual(sprite.angle, 42, places=1)
示例#19
0
    def test_shape_coords(self):

        square = UnitSquare()
        sprite = sprites.VectorSprite(self.canvas, square)
        expected_coords = square[0]
        self.assert_almost_equal_coords(sprite.coords, expected_coords, places=1)
示例#20
0
    def test_direct_rotate_around_point_rotates_anchor(self):

        sprite = sprites.VectorSprite(self.canvas, UnitSquare(), anchor=(2, 1))

        sprite.direct_rotate(180, around=(0, 0))
        self.assert_almost_equal_anchor(sprite.anchor, (-2, -1), places=1)