class SpriteTests(TestCase): def setUp(self): self.factory = TEST_GAME_CONTEXT.tile_factory self.tile = self.factory.get('g') self.frame = Frame(TEST_GAME_CONTEXT.screen, Rect(40, 50, 160, 160)) self.sprite = Sprite(self.frame, self.tile, Vector(1, 1), speed=2) def test_sprite_pos(self): """Sprite has a position.""" sprite = Sprite(self.frame, self.factory.get('g'), pos=Vector(4, 3)) self.assertEqual(sprite.pos.x, 4) self.assertEqual(sprite.pos.y, 3) def move(self): """Moves sprite until movement terminates.""" while self.sprite.is_moving(): self.sprite.move() self.frame.clear() self.sprite.draw() pygame.display.update() time.sleep(SHORT_DELAY) @showdoc def test_move_sprite(self): """Sprite moves east, then southeast.""" self.sprite.add_move(RIGHT) self.sprite.add_move(DOWNRIGHT) self.move() self.assertEqual(self.sprite.pos.x, 3) self.assertEqual(self.sprite.pos.y, 2) @showdoc def test_priority_move_sprite(self): """Sprite moves southeast, then east.""" self.sprite.add_move(RIGHT) self.sprite.add_move(DOWNRIGHT, True) self.move()