def test_parse_october_2001_schedule(self): parsed_schedule = schedule.parse_schedule(self.october_2001_html) first_game = parsed_schedule[0] expected_datetime = pytz.timezone("US/Eastern") \ .localize(datetime(year=2000, month=10, day=31, hour=19, minute=30)) \ .astimezone(pytz.utc) self.assertEqual(len(parsed_schedule), 13) self.assertTrue( abs(first_game["start_time"] - expected_datetime) < timedelta(seconds=1)) self.assertEqual(first_game["away_team"], Team.CHARLOTTE_HORNETS) self.assertEqual(first_game["home_team"], Team.ATLANTA_HAWKS) self.assertEqual(first_game["away_team_score"], 106) self.assertEqual(first_game["home_team_score"], 82)
def test_parse_future_game(self): parsed_schedule = schedule.parse_schedule(self.april_2019_html) first_game = parsed_schedule[0] expected_first_game_start_time = pytz.timezone("US/Eastern") \ .localize(datetime(year=2019, month=4, day=1, hour=19, minute=30)) \ .astimezone(pytz.utc) self.assertIsNotNone(parsed_schedule) self.assertEqual(len(parsed_schedule), 79) self.assertEqual(first_game["start_time"], expected_first_game_start_time) self.assertEqual(first_game["away_team"], Team.MIAMI_HEAT) self.assertEqual(first_game["home_team"], Team.BOSTON_CELTICS) self.assertIsNone(first_game["away_team_score"]) self.assertIsNone(first_game["home_team_score"])
def season_schedule(season_end_year): url = '{BASE_URL}/leagues/NBA_{season_end_year}_games.html'.format( BASE_URL=BASE_URL, season_end_year=season_end_year) response = requests.get(url=url) response.raise_for_status() season_schedule_values = parse_schedule(response.content) other_month_url_paths = parse_schedule_for_month_url_paths( response.content) for month_url_path in other_month_url_paths: url = '{BASE_URL}{month_url_path}'.format( BASE_URL=BASE_URL, month_url_path=month_url_path) monthly_schedule = schedule_for_month(url=url) season_schedule_values.extend(monthly_schedule) return season_schedule_values
def schedule_for_month(url): response = requests.get(url=url) response.raise_for_status() return parse_schedule(response.content)
def test_parse_october_2018_schedule(self): parsed_schedule = schedule.parse_schedule(self.october_2018_html) self.assertEqual(len(parsed_schedule), 104)