def test_bakkes_mod_import(self):
     from rlbottraining.common_exercises.bakkesmod_import.bakkesmod_importer import make_default_playlist
     playlist = make_default_playlist()
     assert len(playlist) > 2
     playlist = playlist[:2]  # for making tests run quicker
     results = list(run_playlist(playlist))
     self.assertEqual(len(results), 2)
     for result in results:
         # All of these exercises are too advanced for SimpleBot.
         self.assertIsInstance(result.grade, Fail)
 def test_kickoff(self):
     from rlbottraining.common_exercises.kickoff_exercise import make_default_playlist
     self.assertGrades(
         run_playlist(make_default_playlist()),
         # There are five kickoffs, one for each position, in the default playlist.
         [
             'PassDueToMovedBall', 'PassDueToMovedBall',
             'PassDueToMovedBall', 'PassDueToMovedBall',
             'PassDueToMovedBall'
         ])
    def test_bronze_striker(self):
        from rlbottraining.common_exercises.bronze_striker import make_default_playlist
        result_iter = run_playlist(make_default_playlist())

        result = next(result_iter)
        self.assertEqual(result.exercise.name, 'Facing ball')
        self.assertIsInstance(result.grade, Pass)

        result = next(result_iter)
        self.assertEqual(result.exercise.name, 'Rolling Shot')
        self.assertIsInstance(result.grade, Pass)

        result = next(result_iter)
        self.assertEqual(result.exercise.name,
                         'Facing directly away from ball')
        self.assertIsInstance(result.grade,
                              Fail)  # SimpleBot isn't smart enough.

        result = next(result_iter)
        self.assertEqual(result.exercise.name, 'Facing away from ball 1')
        self.assertIsInstance(result.grade, Pass)

        result = next(result_iter)
        self.assertEqual(result.exercise.name, 'Facing away from ball 2')
        self.assertIsInstance(result.grade, Pass)

        result = next(result_iter)
        self.assertEqual(result.exercise.name,
                         'Facing away from opponents goal')
        self.assertIsInstance(result.grade, FailOnTimeout.FailDueToTimeout)

        with self.assertRaises(StopIteration):
            next(result_iter)

        with self.assertRaises(StopIteration):
            next(result_iter)
 def test_bronze_goalie(self):
     from rlbottraining.common_exercises.bronze_goalie import make_default_playlist
     self.assertGrades(run_playlist(make_default_playlist()), ['Pass'])
 def test_dribbling(self):
     from rlbottraining.common_exercises.dribbling import make_default_playlist
     self.assertGrades(run_playlist(make_default_playlist()),
                       ['FailDueToTimeout'])
 def test_silver_striker(self):
     from rlbottraining.common_exercises.silver_striker import make_default_playlist
     self.assertGrades(run_playlist(make_default_playlist()),
                       ['FailDueToTimeout'])
 def test_silver_goalie(self):
     from rlbottraining.common_exercises.silver_goalie import make_default_playlist
     self.assertGrades(run_playlist(make_default_playlist()),
                       ['WrongGoalFail', 'WrongGoalFail', 'WrongGoalFail'])