def test_box_score_fails(self, m): self.mock_setUp(m) league = League(self.league_id, self.season) with self.assertRaises(Exception): league.box_scores(1)
def test_least_scored(self, m): self.mock_setUp(m) league = League(self.league_id, self.season) team = league.least_scored_week() self.assertEqual(team[0].team_id, 10)
def getScores(): global timesLooped global finishTime if timesLooped == 0: startTime = beginTime else: startTime = finishTime startTime = startTime.replace(microsecond=0) print("Started at: ", startTime) boxScore = PrettyTable() boxScore.field_names = [ "\033[0;30;47m League \033[0;37;40m", "\033[0;30;47m Home Team \033[0;37;40m", "\033[0;30;47m H \033[0;37;40m", "\033[0;30;47m vs \033[0;37;40m", "\033[0;30;47m A \033[0;37;40m", "\033[0;30;47m Away Team \033[0;37;40m" ] for x in range(len(leagues)): league_id = leagues[x] league = League(league_id, year) box_score = league.box_scores(currentWeek) i = 0 for i in range(len(box_score)): home_team = box_score[i].home_team away_team = box_score[i].away_team home_name = home_team.team_name away_name = away_team.team_name if home_name == teamNames[x]: home_score = box_score[i].home_score away_score = box_score[i].away_score home_name = "\033[1;32;40m " + home_name + " \033[0;37;40m" home_score = "\033[1;32;40m " + str( home_score) + " \033[0;37;40m" away_score = "\033[1;31;40m " + str( away_score) + " \033[0;37;40m" boxScore.add_row([ leagueNames[x], home_name, home_score, "vs", away_score, away_name ]) if away_name == teamNames[x]: home_score = box_score[i].home_score away_score = box_score[i].away_score away_name = "\033[1;32;40m " + away_name + " \033[0;37;40m" away_score = "\033[1;32;40m " + str( away_score) + " \033[0;37;40m" home_score = "\033[1;31;40m " + str( home_score) + " \033[0;37;40m" boxScore.add_row([ leagueNames[x], home_name, home_score, "vs", away_score, away_name ]) finishTime = datetime.datetime.now() finishTime = finishTime.replace(microsecond=0) runtime = finishTime - startTime #runtime = runtime.replace(microsecond = 0) timesLooped = timesLooped + 1 print(boxScore) print("[", timesLooped, "] ", "Updated: ", finishTime, " (runtime: ", runtime, ")\n") signal.signal(signal.SIGINT, keyboardInterruptHandler)
def test_most_pa(self, m): self.mock_setUp(m) league = League(self.league_id, self.season) team = league.most_points_against() self.assertEqual(team.team_id, 2)
def test_top_scorer(self, m): self.mock_setUp(m) league = League(self.league_id, self.season) team = league.top_scorer() self.assertEqual(team.team_id, 1)
def test_box_scores(self): league = League(1234, 2018) box_scores = league.box_scores(5) self.assertEqual(repr(box_scores[1].away_team), 'Team(Team 5)') self.assertEqual(repr(box_scores[1].away_lineup[1]), 'Player(Keenan Allen, points:9, projected:10)')
def test_free_agents_fails(self, m): self.mock_setUp(m) league = League(self.league_id, self.season) with self.assertRaises(Exception): league.free_agents()
def test_league_standings(self, m): self.mock_setUp(m) league = League(self.league_id, self.season) standings = league.standings() self.assertEqual(standings[0].final_standing, 1)
def test_box_scores(self): league = League(48153503, 2019) box_scores = league.box_scores(week=2) self.assertEqual(repr(box_scores[1].away_team), 'Team(TEAM BERRY)') self.assertEqual(repr(box_scores[1].away_lineup[1]), 'Player(Odell Beckham Jr., points:29, projected:16)')
def test_free_agents(self, m, mock_boxplayer, mock_nfl_schedule, mock_pos_ratings): self.mock_setUp(m) mock_boxplayer.return_value = None league = League(self.league_id, self.season) m.get(self.espn_endpoint + '?view=kona_player_info&scoringPeriodId=16', status_code=200, json={'players': [1, 2]}) league.year = 2019 free_agents = league.free_agents(position='QB') self.assertEqual(len(free_agents), 2)
def test_free_agents(self): league = League(1234, 2018) free_agents = league.free_agents(size=15) self.assertEqual(len(free_agents), 15) free_agents = league.free_agents(size=10, position='QB') self.assertEqual(repr(free_agents[0]), 'Player(Jameis Winston)') self.assertEqual(len(free_agents), 10)
def test_get_team(self, m): self.mock_setUp(m) league = League(self.league_id, self.season) team = league.get_team_data(8) self.assertEqual(team.team_id, 8) team = league.get_team_data(18) self.assertEqual(team, None)
def test_free_agents(self, m): self.mock_setUp(m) league = League(self.league_id, self.season) with open('tests/unit/data/league_free_agents_2018.json') as f: data = json.loads(f.read()) m.get(self.espn_endpoint + '?view=kona_player_info&scoringPeriodId=16', status_code=200, json=data) free_agents = league.free_agents() self.assertEqual(repr(free_agents[0]), 'Player(Josh Gordon)')
def test_box_score(self, m): self.mock_setUp(m) league = League(self.league_id, self.season) with open('tests/unit/data/league_boxscore_2018.json') as f: data = json.loads(f.read()) m.get(self.espn_endpoint + '?view=mMatchup&view=mMatchupScore&scoringPeriodId=13', status_code=200, json=data) box_scores = league.box_scores(13) self.assertEqual(repr(box_scores[0].home_team), 'Team(Rollin\' With Mahomies)') self.assertEqual(repr(box_scores[0].home_lineup[1]), 'Player(Christian McCaffrey, points:31, projected:23)')
def test_power_rankings(self, m): self.mock_setUp(m) league = League(self.league_id, self.season) invalid_week = league.power_rankings(0) current_week = league.power_rankings(league.current_week) self.assertEqual(invalid_week, current_week) valid_week = league.power_rankings(13) self.assertEqual(valid_week[0][0], '71.70') self.assertEqual(repr(valid_week[0][1]), 'Team(Misunderstood Mistfits )')
def matchup_view(request): # reacquire league, team, and year info team1 = request.GET.get('team1') team2 = request.GET.get('team2') year1 = request.GET.get('year1') year2 = request.GET.get('year2') week = int(request.GET.get('week')) league1 = League(request.GET.get('league1'), int(year1)) league2 = League(request.GET.get('league2'), int(year2)) team1 = league1.get_team_data(int(team1)) team2 = league2.get_team_data(int(team2)) # acquire matchup data if week > 0: matchups1 = league1.scoreboard(week) matchups2 = league2.scoreboard(week) else: matchups1 = league1.scoreboard() matchups2 = league2.scoreboard() # correlate data to the teams selected for index in range(len(matchups1)): if matchups1[index].home_team.team_id == team1.team_id: score1 = matchups1[index].home_score # temp = matchups1[index].home_team.team_id elif matchups1[index].away_team.team_id == team1.team_id: score1 = matchups1[index].away_score # temp = matchups1[index].away_team.team_id for index in range(len(matchups2)): if matchups2[index].home_team.team_id == team2.team_id: score2 = matchups2[index].home_score # temp = matchups2[index].home_team.team_id elif matchups2[index].away_team.team_id == team2.team_id: score2 = matchups2[index].away_score # temp = matchups2[index].away_team.team_id roster1 = team1.roster roster2 = team2.roster return render(request, 'compare.html', context={ 'team1': team1, 'team2': team2, 'roster1': roster1, 'roster2': roster2, 'score1': score1, 'score2': score2 })
def test_get_scoreboard(self, m): self.mock_setUp(m) league = League(self.league_id, self.season) with open('tests/unit/data/league_matchupScore_2018.json') as f: data = json.loads(f.read()) m.get(self.espn_endpoint + '?view=mMatchupScore', status_code=200, json=data) scoreboard = league.scoreboard(1) self.assertEqual(repr(scoreboard[1]), 'Matchup(Team(Watch What You Saquon), Team(Feel the Brees))') self.assertEqual(scoreboard[0].home_score, 125.5) scoreboard = league.scoreboard() self.assertEqual(repr(scoreboard[-1]), 'Matchup(Team(Jacking Goff On Sundays), Team(Feel the Brees))') self.assertEqual(scoreboard[-1].away_score, 108.64)
def getYears(self, year, sum): return 1 try: l = League(league_id=self.id, year=year, debug=True) return self.getYears(year - 1, sum + 1) except: return sum
def main(): '''The main function''' parser = ArgumentParser(description="Script to look at ff data") parser.add_argument("year", metavar="YEAR", type=int, help="the year to check out (default to 2019)", nargs='?', default=2019) parser.add_argument("week", metavar="WEEK", type=int, help="How many weeks to check out (defautl to all)", nargs='?', default=0) args = parser.parse_args() config = RawConfigParser() config.read("fantasy.config") league = League(config['LEAGUE_INFO']["LEAGUE_ID"],\ args.year,\ config['LEAGUE_INFO']['s2'],\ config['LEAGUE_INFO']['SWID']) if args.week == 0: bad_lineup(league, [1]) else: bad_lineup(league, [1])
def openLeague(): try: if properties.private: user = input('Enter username: '******'Enter password: '******'Loading league...') league = League(properties.league, properties.year, username=user, password=password) else: print('Loading league...') league = League(properties.league, properties.year) os.system('cls') printHeader() print('League loaded!\n-------------------------------\n\n') return league except: exceptCont('')
def main(): parser = ArgumentParser(description="Script to look at ff data") parser.add_argument("year", metavar="YEAR", type=int, help="the year to check out (default to 2019)", nargs='?',default=2019) parser.add_argument("week", metavar="WEEK", type=int, help="How many weeks to check out (defautl to all)", nargs='?',default=0) args = parser.parse_args() config = RawConfigParser() config.read("fantasy.config") league = League(config['LEAGUE_INFO']["LEAGUE_ID"],\ args.year,\ config['LEAGUE_INFO']['s2'],\ config['LEAGUE_INFO']['SWID']) week = args.week if week == 0: week = league.nfl_week print("On week %d" %(league.current_week)) ewins_df = expected_wins(league) draw_agg_dataframe(ewins_df)
def test_create_object(self, m): self.mock_setUp(m) league = League(self.league_id, self.season) self.assertEqual(repr(league), 'League(123, 2018)') self.assertEqual(repr(league.settings), 'Settings(FXBG League)') self.assertEqual(league.current_week, 16) self.assertEqual(len(league.teams), 10)
def test_recent_activity(self, m): self.mock_setUp(m) league = League(self.league_id, 2018) # TODO hack until I get all mock data for 2019 league.year = 2019 self.espn_endpoint = "https://fantasy.espn.com/apis/v3/games/FFL/seasons/" + str(2019) + "/segments/0/leagues/" + str(self.league_id) league.ENDPOINT = self.espn_endpoint with open('tests/unit/data/league_recent_activity_2019.json') as f: data = json.loads(f.read()) m.get(self.espn_endpoint + '/communication/?view=kona_league_communication', status_code=200, json=data) activity = league.recent_activity() self.assertEqual(repr(activity[0].actions[0][0]), 'Team(Perscription Mixon)') self.assertEqual(len(repr(activity)), 2369)
def test_authentication_login_error(self, mock_request, mock_stdout, mock_fetch_league): url_api_key = 'https://registerdisney.go.com/jgc/v5/client/ESPN-FANTASYLM-PROD/api-key?langPref=en-US' url_login = '******' mock_request.post(url_api_key, headers={'api-key':'None'}, status_code=200) mock_request.post(url_login, status_code=200, json={'error': {}}) league = League(league_id=1234, year=2019, username='******', password='******') self.assertEqual(mock_stdout.getvalue(), 'Authentication unsuccessful - error:{}\nRetry the authentication or continuing without private league access\n')
def setUp(self): league_id = 950634 year = 2018 # Secret stuff espn_s2 = "AECcqBAxkb6iztLdTzvhM6dSAdobKKCPuSY8DF3qSTGmjjVUtPZT8NSSv7KywiL569X2Ml8wZb0rxUNrUY%2F1ky%2FSzYlFigLbX%2FQZhA8D7nkkB752d9kMJmWO6B43%2FZFspi1tyvRPUPSciqK1A0hsYMI9HYyUa37MLrQFTbXrEcSwpb1%2BH0uwWdmm2%2BS2GZM04fjCWtC4GjuIgdBx%2FxE8VYOz6STEAPyGSn9RxDonMuDrCGHEljM1a1I2vi4m3eesI9Rmx%2FqH0kq0Sv7ybGL0YxHD" swid = "{BFD1DF0E-0120-4EF1-A54E-128EAE53AA82}" # Set up bot with debug mode self.league = League(league_id, year, espn_s2, swid)
def initializeLeagues(): global leagues_initialized if not leagues_initialized: for league in leagues: authed_leagues.append( League(league["leagueID"], year, league["espn_s2"], league["swid"])) leagues_initialized = True
def test_load_roster_week(self, m): self.mock_setUp(m) league = League(self.league_id, self.season) with open('tests/unit/data/league_roster_week1.json') as f: data = json.loads(f.read()) m.get(self.espn_endpoint + '?view=mRoster&scoringPeriodId=1', status_code=200, json=data) league.load_roster_week(1) # check player that I know is on roster name = '' team = league.teams[1] for player in team.roster: if player.name == "Le'Veon Bell": name = player.name self.assertEqual(name, "Le'Veon Bell")
def league_view(request): idLeague1 = request.GET.get('leagueid1') idLeague2 = request.GET.get('leagueid2') year1 = request.GET.get('year1') year2 = request.GET.get('year2') league1 = League(idLeague1, int(year1)) league2 = League(idLeague2, int(year2)) return render(request, 'league_view.html', context={ 'leagueid1': idLeague1, 'leagueid2': idLeague2, 'teams1': league1.teams, 'teams2': league2.teams, 'year1': year1, 'year2': year2 })
def test_player(self, m): self.mock_setUp(m) league = League(self.league_id, self.season) team = league.teams[2] self.assertEqual(repr(team.roster[0]), 'Player(Drew Brees)') self.assertEqual(team.get_player_name(2521161), 'Zach Zenner') self.assertEqual(team.get_player_name(0), '')
def main(): config = RawConfigParser() config.read("fantasy.config") dfs = [] dfs_week = [] dfs_remain = [] for year in range(2015, 2019): league = League(config['LEAGUE_INFO']["LEAGUE_ID"],\ year,\ config['LEAGUE_INFO']['s2'],\ config['LEAGUE_INFO']['SWID']) df = expected_wins(league) df = opponent_ew(league, df) dfs.append(df) for eweek in range(1, 14): dfstart = expected_wins(league, (0, eweek)) df = opponent_ew(league, dfstart, (0, eweek)) df_left = opponent_ew(league, dfstart, (eweek, 14)) print(year, eweek) if len(dfs_week) >= eweek: dfs_week[eweek - 1] = dfs_week[eweek - 1].append(df) else: dfs_week.append(df) if len(dfs_remain) >= eweek: dfs_remain[eweek - 1] = dfs_remain[eweek - 1].append(df_left) else: dfs_remain.append(df_left) df = dfs[0] for frame in dfs[1:]: df = df.append(frame) print("full season correlation and model", regression([df['Exp Win']], df['Win'])) for week, data in enumerate(zip(dfs_week, dfs_remain)): df_week = data[0] df_remain = data[1] # df_week is now all data for up to week i df_after = DataFrame() df_after['Exp Win'] = df['Exp Win'] - df_week['Exp Win'] df_after['Win'] = df['Win'] - df_week['Win'] print( week, regression([ df_week['Exp Win'], df_week['Opp Exp Win'], df_remain['Opp Exp Win'] ], df_after['Win']))