class TestTurnManager(unittest.TestCase): def construct_default_avatar_appearance(self): return AvatarAppearance("#000", "#ddd", "#777", "#fff") def construct_turn_manager(self, *avatars): self.avatar_manager = AvatarManager(avatars) self.game_state = GameState(InfiniteMap(), self.avatar_manager) self.turn_manager = TurnManager(self.game_state) def test_run_turn(self): avatar = DummyAvatarRunner(ORIGIN, player_id=1) self.construct_turn_manager(avatar) self.turn_manager.run_turn() self.assertEqual(avatar.location, RIGHT_OF_ORIGIN) def test_run_several_turns(self): avatar = DummyAvatarRunner(ORIGIN, player_id=1) self.construct_turn_manager(avatar) [self.turn_manager.run_turn() for _ in xrange(5)] self.assertEqual(avatar.location, FIVE_RIGHT_OF_ORIGIN) def test_run_several_turns_and_avatars(self): avatar1 = DummyAvatarRunner(ORIGIN, player_id=1) avatar2 = DummyAvatarRunner(ABOVE_ORIGIN, player_id=2) self.construct_turn_manager(avatar1, avatar2) [self.turn_manager.run_turn() for _ in xrange(5)] self.assertEqual(avatar1.location, FIVE_RIGHT_OF_ORIGIN) self.assertEqual(avatar2.location, FIVE_RIGHT_OF_ORIGIN_AND_ONE_ABOVE)