Esempio n. 1
0
    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)
Esempio n. 2
0
    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)
Esempio n. 3
0
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)
Esempio n. 4
0
    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)
Esempio n. 5
0
    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)
Esempio n. 6
0
    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)')
Esempio n. 7
0
    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()
Esempio n. 8
0
    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)
Esempio n. 9
0
    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)')
Esempio n. 10
0
    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)
Esempio n. 11
0
    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)
Esempio n. 12
0
    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)
Esempio n. 13
0
    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)')
Esempio n. 14
0
    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)')
Esempio n. 15
0
    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 )')
Esempio n. 16
0
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
                  })
Esempio n. 17
0
    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)
Esempio n. 18
0
 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
Esempio n. 19
0
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])
Esempio n. 20
0
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('')
Esempio n. 21
0
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)
Esempio n. 22
0
    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)
Esempio n. 23
0
    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)
Esempio n. 24
0
    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')
Esempio n. 25
0
 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)
Esempio n. 26
0
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
Esempio n. 27
0
    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")
Esempio n. 28
0
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
                  })
Esempio n. 29
0
    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), '')
Esempio n. 30
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']))