def test_match_statistic_parser_passing_stat(self): """ Test is parser return passing stat data """ __passing = { 'home_team': { 'player_id': 1948407, 'player_name': 'Yevgen Fedorov', 'comp': 12, 'att': 25, 'pct': 48.0, 'yds': 232, 'yds_a': 9.3, 'lng': 53, }, 'away_team': { 'player_id': 2231927, 'player_name': 'Sławomir Damek', 'comp': 1, 'att': 13, 'pct': 7.7, 'yds': 8, 'yds_a': 0.6, 'lng': 8, } } f = open('test_match_statistic.txt', encoding="utf8") f_data = f.read() f.close() match_parser = MatchStatisticParser(2029125, f_data) passing_stat = match_parser.get_teams_passing() self.assertDictEqual(passing_stat, __passing)
def test_match_statistic_parser_teams_stat(self): """ Test is parser return teams stat data """ __teams_stat = { 'home_team': { 'total_yards': 478, 'passing_yards': 232, 'rushing_yards': 246, 'tackles': 47, 'sacks': 0, 'interceptions': 0, 'fumbles': 2, 'fg': 0, }, 'away_team': { 'total_yards': -6, 'passing_yards': 8, 'rushing_yards': -14, 'tackles': 27, 'sacks': 1, 'interceptions': 0, 'fumbles': 8, 'fg': 0, } } f = open('test_match_statistic.txt', encoding="utf8") f_data = f.read() f.close() match_parser = MatchStatisticParser(2029125, f_data) teams_stat = match_parser.get_teams_stat() self.assertDictEqual(teams_stat, __teams_stat)
def test_match_statistic_parser_scoring(self): """ Test is parser return scoring data """ __scoring = [ { 'point_type': 'TD', 'player_id': 2232105, 'player_name': 'Zygmunt Imiołek' }, { 'point_type': 'TD', 'player_id': 2284778, 'player_name': 'Mateusz Rycombel' }, { 'point_type': 'TD', 'player_id': 2241778, 'player_name': 'Aureliusz Kalandyk' } ] f = open('test_match_statistic.txt', encoding="utf8") f_data = f.read() f.close() match_parser = MatchStatisticParser(2029125, f_data) scoring = match_parser.get_scoring() self.assertListEqual(scoring[0:3], __scoring)
def test_match_statistic_parser_rushing_stat(self): """ Test is parser return rushing stat data """ __rushing = { 'home_team': [ { 'player_id': 2284778, 'player_name': 'Mateusz Rycombel', 'att': 20, 'yds': 246, 'yds_a': 12.3, 'lng': 38, }, { 'player_id': 2327906, 'player_name': 'Szymon Gatner', 'att': 5, 'yds': 25, 'yds_a': 5, 'lng': 9, }, { 'player_id': 2246980, 'player_name': 'Wiktor Witaszek', 'att': 8, 'yds': 52, 'yds_a': 6.5, 'lng': 13, }, ], 'away_team': [ { 'player_id': 2231925, 'player_name': 'Radosław Hajok', 'att': 32, 'yds': -14, 'yds_a': -0.4, 'lng': 8, }, { 'player_id': 2231921, 'player_name': 'Anatol Stiller', 'att': 5, 'yds': 52, 'yds_a': 10.4, 'lng': 25, }, ] } f = open('test_match_statistic.txt', encoding="utf8") f_data = f.read() f.close() match_parser = MatchStatisticParser(2029125, f_data) rushing_stat = match_parser.get_teams_rushing() self.assertDictEqual(rushing_stat, __rushing)
def test_match_statistic_parser_score(self): """ Test is parser return score data """ __score = { 'home_team': {'score': 84, 'quarter': [28, 14, 14, 28], 'score_lost': 0}, 'away_team': {'score': 0, 'quarter': [1, 2, 3, 4], 'score_lost': 84} } f = open('test_match_statistic.txt', encoding="utf8") f_data = f.read() f.close() match_parser = MatchStatisticParser(2029125, f_data) teams = match_parser.get_score() self.assertDictEqual(teams, __score)
def test_match_statistic_parser_team(self): """ Test is parser return teams data """ __teams = { 'home_team': {'id': 4775, 'name': 'LEWY Team'}, 'away_team': {'id': 4779, 'name': 'LEGION PIŁA'} } f = open('test_match_statistic.txt', encoding="utf8") f_data = f.read() f.close() match_parser = MatchStatisticParser(2029125, f_data) teams = match_parser.get_teams() self.assertDictEqual(teams, __teams)
def test_match_statistic_parser_kicking_stat(self): """ Test is parser return kicking stat data """ __kicking = { 'home_team': { 'player_id': 2119942, 'player_name': 'Aleksy Głowicki', 'fgm': 0, 'fga': 1, 'pct': 0, 'lng': 0, }, 'away_team': None } f = open('test_match_statistic.txt', encoding="utf8") f_data = f.read() f.close() match_parser = MatchStatisticParser(2029125, f_data) kicking_stat = match_parser.get_teams_kicking() self.assertDictEqual(kicking_stat, __kicking)
def test_match_statistic_parser_defense_stat(self): """ Test is parser return defense stat data """ __defense = { 'home_team': [ { 'player_id': 2113599, 'player_name': 'Dymitr Dziewanowski', 'tackles': 10, 'sacks': 1, 'interceptions': 0, 'fumbles': 3, }, { 'player_id': 2100092, 'player_name': 'Jakub Skrzypkowski', 'tackles': 5, 'sacks': 0, 'interceptions': 2, 'fumbles': 0, }, ], 'away_team': [ { 'player_id': 2231926, 'player_name': 'Grzegorz Kieda', 'tackles': 1, 'sacks': 2, 'interceptions': 3, 'fumbles': 4, }, ] } f = open('test_match_statistic.txt', encoding="utf8") f_data = f.read() f.close() match_parser = MatchStatisticParser(2029125, f_data) defense_stat = match_parser.get_teams_defense() self.assertDictEqual(defense_stat, __defense)
def test_match_statistic_parser_receiving_stat(self): """ Test is parser return receiving stat data """ __receiving = { 'home_team': [ { 'player_id': 2241778, 'player_name': 'Aureliusz Kalandyk', 'rec': 2, 'yds': 48, 'avg': 24, 'lng': 28, }, { 'player_id': 2232105, 'player_name': 'Zygmunt Imiołek', 'rec': 4, 'yds': 68, 'avg': 17, 'lng': 28, }, ], 'away_team': [ { 'player_id': 2231921, 'player_name': 'Anatol Stiller', 'rec': 1, 'yds': 8, 'avg': 8, 'lng': 8, }, ] } f = open('test_match_statistic.txt', encoding="utf8") f_data = f.read() f.close() match_parser = MatchStatisticParser(2029125, f_data) receiving_stat = match_parser.get_teams_receiving() self.assertDictEqual(receiving_stat, __receiving)
def get_matches_statistic(match_ids: Tuple[int], verbose: bool = False): matches = [] for match_id in match_ids: page_boxscore = get_match_boxscore_page(match_id, verbose) msp = MatchStatisticParser(match_id, page_boxscore) msp.get_teams() msp.get_score() msp.get_scoring() msp.get_teams_stat() msp.get_teams_passing() msp.get_teams_rushing() msp.get_teams_receiving() msp.get_teams_kicking() msp.get_teams_defense() result = msp.get_result() page = get_match_page(match_id, verbose) mp = MatchParser(page) result['audience'] = mp.get_audience() result['home_team']['downs'] = mp.get_team_evens(result['home_team']['name']) result['away_team']['downs'] = mp.get_team_evens(result['away_team']['name']) matches.append(result) time.sleep(3) return matches