Ejemplo n.º 1
0
class SnakeSpriteTests(TestCase):
    def setUp(self):
        self.gf = GameFactory("data/settings.txt")
        frame = Frame(self.gf.screen, Rect(0, 0, 512, 256))
        self.snake = SnakeSprite(frame, self.gf, Vector(5, 5))

    def run_snake(self):
        while self.snake.is_moving():
            self.gf.screen.clear()
            self.snake.update()
            self.snake.draw()
            pygame.display.update()
            time.sleep(0.03)

    def test_draw_snake(self):
        """Display snake head"""
        self.snake.draw()
        pygame.display.update()
        time.sleep(0.5)

    def test_move_snake(self):
        """Snake moves into four directions."""
        for move in (UP, LEFT, DOWN, RIGHT):
            self.snake.add_move(move, [])
        self.run_snake()

    def test_add_tail(self):
        """Snake moves with tail segment."""
        self.snake.add_tail_segment()
        for move in (RIGHT, RIGHT, RIGHT, RIGHT):
            self.snake.add_move(move, [RIGHT])
        self.run_snake()

    def test_add_long_tail(self):
        """Snake moves into four directions."""
        self.snake.add_tail_segment()
        self.snake.add_move(RIGHT, [RIGHT])
        self.snake.add_tail_segment()
        self.snake.add_move(UP, [RIGHT, RIGHT])
        self.snake.add_move(UP, [UP, RIGHT])
        self.snake.add_tail_segment()
        self.snake.add_move(LEFT, [UP, UP, RIGHT])
        self.snake.add_move(LEFT, [LEFT, UP, UP])
        self.snake.add_move(LEFT, [LEFT, LEFT, UP])
        self.run_snake()