import mock
import os
import pandas as pd
from datetime import datetime
from flexmock import flexmock
from sportsreference import utils
from sportsreference.constants import AWAY
from sportsreference.ncaaf.constants import BOXSCORE_URL, BOXSCORES_URL
from sportsreference.ncaaf.boxscore import Boxscore, Boxscores


MONTH = 10
YEAR = 2017

BOXSCORE = '2018-01-08-georgia'


def read_file(filename):
    filepath = os.path.join(os.path.dirname(__file__), 'ncaaf', filename)
    return open('%s' % filepath, 'r').read()


def mock_pyquery(url):
    class MockPQ:
        def __init__(self, html_contents):
            self.status_code = 200
            self.html_contents = html_contents
            self.text = html_contents

    if url == BOXSCORES_URL % (8, 30, 2017):
        return MockPQ(read_file('boxscores-8-30-2017.html'))
    if url == BOXSCORES_URL % (8, 31, 2017):
        return MockPQ(read_file('boxscores-8-31-2017.html'))
    boxscore = read_file('%s.html' % BOXSCORE)
    return MockPQ(boxscore)


class MockDateTime:
    def __init__(self, year, month):
        self.year = year
        self.month = month


class TestNCAAFBoxscore:
    @mock.patch('requests.get', side_effect=mock_pyquery)
    def setup_method(self, *args, **kwargs):
        self.results = {
            'date': 'Monday Jan 8, 2018',
            'time': '8:00 PM ET',
            'stadium': 'Mercedes-Benz Stadium - Atlanta, Georgia',
            'winner': AWAY,
            'winning_name': 'Alabama',
            'winning_abbr': 'ALABAMA',
            'losing_name': 'Georgia',
            'losing_abbr': 'GEORGIA',
            'away_points': 26,
            'away_first_downs': 20,
            'away_rush_attempts': 39,
            'away_rush_yards': 184,
            'away_rush_touchdowns': 0,
            'away_pass_completions': 17,
            'away_pass_attempts': 32,
            'away_pass_yards': 187,
            'away_pass_touchdowns': 3,
            'away_interceptions': 1,
            'away_total_yards': 371,
            'away_fumbles': 0,
            'away_fumbles_lost': 0,
            'away_turnovers': 1,
            'away_penalties': 6,
            'away_yards_from_penalties': 41,
            'home_points': 23,
            'home_first_downs': 22,
            'home_rush_attempts': 45,
            'home_rush_yards': 133,
            'home_rush_touchdowns': 1,
            'home_pass_completions': 16,
            'home_pass_attempts': 32,
            'home_pass_yards': 232,
            'home_pass_touchdowns': 1,
            'home_interceptions': 2,
            'home_total_yards': 365,
            'home_fumbles': 0,
            'home_fumbles_lost': 0,
            'home_turnovers': 2,
            'home_penalties': 6,
            'home_yards_from_penalties': 65
        }
        flexmock(utils) \
            .should_receive('_todays_date') \
            .and_return(MockDateTime(YEAR, MONTH))

        self.boxscore = Boxscore(BOXSCORE)

    def test_ncaaf_boxscore_returns_requested_boxscore(self):
        for attribute, value in self.results.items():
            assert getattr(self.boxscore, attribute) == value

    def test_invalid_url_yields_empty_class(self):
        flexmock(Boxscore) \
            .should_receive('_retrieve_html_page') \
            .and_return(None)

        boxscore = Boxscore(BOXSCORE)

        for key, value in boxscore.__dict__.items():
            if key == '_uri':
                continue
            assert value is None

    def test_ncaaf_boxscore_dataframe_returns_dataframe_of_all_values(self):
        df = pd.DataFrame([self.results], index=[BOXSCORE])

        # Pandas doesn't natively allow comparisons of DataFrames.
        # Concatenating the two DataFrames (the one generated during the test
        # and the expected one above) and dropping duplicate rows leaves only
        # the rows that are unique between the two frames. This allows a quick
        # check of the DataFrame to see if it is empty - if so, all rows are
        # duplicates, and they are equal.
        frames = [df, self.boxscore.dataframe]
        df1 = pd.concat(frames).drop_duplicates(keep=False)

        assert df1.empty


class TestNCAAFBoxscores:
    def setup_method(self):
        self.expected = {
            '8-30-2017': [
                {'boxscore': '2017-09-04-georgia-tech',
                 'away_name': 'Tennessee',
                 'away_abbr': 'tennessee',
                 'away_score': 42,
                 'away_rank': 25,
                 'home_name': 'Georgia Tech',
                 'home_abbr': 'georgia-tech',
                 'home_score': 41,
                 'home_rank': None,
                 'non_di': False,
                 'top_25': True},
                {'boxscore': '2017-09-03-ucla',
                 'away_name': 'Texas A&M',
                 'away_abbr': 'texas-am',
                 'away_score': 44,
                 'away_rank': None,
                 'home_name': 'UCLA',
                 'home_abbr': 'ucla',
                 'home_score': 45,
                 'home_rank': None,
                 'non_di': False,
                 'top_25': False},
                {'boxscore': '2017-09-03-virginia-tech',
                 'away_name': 'West Virginia',
                 'away_abbr': 'west-virginia',
                 'away_score': 24,
                 'away_rank': 22,
                 'home_name': 'Virginia Tech',
                 'home_abbr': 'virginia-tech',
                 'home_score': 31,
                 'home_rank': 21,
                 'non_di': False,
                 'top_25': True},
                {'boxscore': '2017-09-02-air-force',
                 'away_name': 'Virginia Military Institute',
                 'away_abbr': 'Virginia Military Institute',
                 'away_score': 0,
                 'away_rank': None,
                 'home_name': 'Air Force',
                 'home_abbr': 'air-force',
                 'home_score': 62,
                 'home_rank': None,
                 'non_di': True,
                 'top_25': False},
                {'boxscore': '2017-09-02-alabama-birmingham',
                 'away_name': 'Alabama A&M',
                 'away_abbr': 'Alabama A&M',
                 'away_score': 7,
                 'away_rank': None,
                 'home_name': 'UAB',
                 'home_abbr': 'alabama-birmingham',
                 'home_score': 38,
                 'home_rank': None,
                 'non_di': True,
                 'top_25': False},
                {'boxscore': '2017-09-02-arizona',
                 'away_name': 'Northern Arizona',
                 'away_abbr': 'Northern Arizona',
                 'away_score': 24,
                 'away_rank': None,
                 'home_name': 'Arizona',
                 'home_abbr': 'arizona',
                 'home_score': 62,
                 'home_rank': None,
                 'non_di': True,
                 'top_25': False},
                {'boxscore': '2017-09-02-auburn',
                 'away_name': 'Georgia Southern',
                 'away_abbr': 'georgia-southern',
                 'away_score': 7,
                 'away_rank': None,
                 'home_name': 'Auburn',
                 'home_abbr': 'auburn',
                 'home_score': 41,
                 'home_rank': 12,
                 'non_di': False,
                 'top_25': True},
                {'boxscore': '2017-09-02-baylor',
                 'away_name': 'Liberty',
                 'away_abbr': 'Liberty',
                 'away_score': 48,
                 'away_rank': None,
                 'home_name': 'Baylor',
                 'home_abbr': 'baylor',
                 'home_score': 45,
                 'home_rank': None,
                 'non_di': True,
                 'top_25': False},
                {'boxscore': '2017-09-02-boise-state',
                 'away_name': 'Troy',
                 'away_abbr': 'troy',
                 'away_score': 13,
                 'away_rank': None,
                 'home_name': 'Boise State',
                 'home_abbr': 'boise-state',
                 'home_score': 24,
                 'home_rank': None,
                 'non_di': False,
                 'top_25': False},
                {'boxscore': '2017-09-02-brigham-young',
                 'away_name': 'LSU',
                 'away_abbr': 'louisiana-state',
                 'away_score': 27,
                 'away_rank': 13,
                 'home_name': 'Brigham Young',
                 'home_abbr': 'brigham-young',
                 'home_score': 0,
                 'home_rank': None,
                 'non_di': False,
                 'top_25': True},
                {'boxscore': '2017-09-02-central-florida',
                 'away_name': 'Florida International',
                 'away_abbr': 'florida-international',
                 'away_score': 17,
                 'away_rank': None,
                 'home_name': 'UCF',
                 'home_abbr': 'central-florida',
                 'home_score': 61,
                 'home_rank': None,
                 'non_di': False,
                 'top_25': False},
                {'boxscore': '2017-09-02-clemson',
                 'away_name': 'Kent State',
                 'away_abbr': 'kent-state',
                 'away_score': 3,
                 'away_rank': None,
                 'home_name': 'Clemson',
                 'home_abbr': 'clemson',
                 'home_score': 56,
                 'home_rank': 5,
                 'non_di': False,
                 'top_25': True},
                {'boxscore': '2017-09-02-coastal-carolina',
                 'away_name': 'Massachusetts',
                 'away_abbr': 'massachusetts',
                 'away_score': 28,
                 'away_rank': None,
                 'home_name': 'Coastal Carolina',
                 'home_abbr': 'coastal-carolina',
                 'home_score': 38,
                 'home_rank': None,
                 'non_di': False,
                 'top_25': False},
                {'boxscore': '2017-09-02-duke',
                 'away_name': 'North Carolina Central',
                 'away_abbr': 'North Carolina Central',
                 'away_score': 7,
                 'away_rank': None,
                 'home_name': 'Duke',
                 'home_abbr': 'duke',
                 'home_score': 60,
                 'home_rank': None,
                 'non_di': True,
                 'top_25': False},
                {'boxscore': '2017-09-02-east-carolina',
                 'away_name': 'James Madison',
                 'away_abbr': 'James Madison',
                 'away_score': 34,
                 'away_rank': None,
                 'home_name': 'East Carolina',
                 'home_abbr': 'east-carolina',
                 'home_score': 14,
                 'home_rank': None,
                 'non_di': True,
                 'top_25': False},
                {'boxscore': '2017-09-02-florida-state',
                 'away_name': 'Alabama',
                 'away_abbr': 'alabama',
                 'away_score': 24,
                 'away_rank': 1,
                 'home_name': 'Florida State',
                 'home_abbr': 'florida-state',
                 'home_score': 7,
                 'home_rank': 3,
                 'non_di': False,
                 'top_25': True},
                {'boxscore': '2017-09-02-fresno-state',
                 'away_name': 'Incarnate Word',
                 'away_abbr': 'Incarnate Word',
                 'away_score': 0,
                 'away_rank': None,
                 'home_name': 'Fresno State',
                 'home_abbr': 'fresno-state',
                 'home_score': 66,
                 'home_rank': None,
                 'non_di': True,
                 'top_25': False},
                {'boxscore': '2017-09-02-georgia',
                 'away_name': 'Appalachian State',
                 'away_abbr': 'appalachian-state',
                 'away_score': 10,
                 'away_rank': None,
                 'home_name': 'Georgia',
                 'home_abbr': 'georgia',
                 'home_score': 31,
                 'home_rank': 15,
                 'non_di': False,
                 'top_25': True},
                {'boxscore': '2017-09-02-hawaii',
                 'away_name': 'Western Carolina',
                 'away_abbr': 'Western Carolina',
                 'away_score': 18,
                 'away_rank': None,
                 'home_name': 'Hawaii',
                 'home_abbr': 'hawaii',
                 'home_score': 41,
                 'home_rank': None,
                 'non_di': True,
                 'top_25': False},
                {'boxscore': '2017-09-02-illinois',
                 'away_name': 'Ball State',
                 'away_abbr': 'ball-state',
                 'away_score': 21,
                 'away_rank': None,
                 'home_name': 'Illinois',
                 'home_abbr': 'illinois',
                 'home_score': 24,
                 'home_rank': None,
                 'non_di': False,
                 'top_25': False},
                {'boxscore': '2017-09-02-iowa',
                 'away_name': 'Wyoming',
                 'away_abbr': 'wyoming',
                 'away_score': 3,
                 'away_rank': None,
                 'home_name': 'Iowa',
                 'home_abbr': 'iowa',
                 'home_score': 24,
                 'home_rank': None,
                 'non_di': False,
                 'top_25': False},
                {'boxscore': '2017-09-02-iowa-state',
                 'away_name': 'Northern Iowa',
                 'away_abbr': 'Northern Iowa',
                 'away_score': 24,
                 'away_rank': None,
                 'home_name': 'Iowa State',
                 'home_abbr': 'iowa-state',
                 'home_score': 42,
                 'home_rank': None,
                 'non_di': True,
                 'top_25': False},
                {'boxscore': '2017-09-02-kansas',
                 'away_name': 'Southeast Missouri State',
                 'away_abbr': 'Southeast Missouri State',
                 'away_score': 16,
                 'away_rank': None,
                 'home_name': 'Kansas',
                 'home_abbr': 'kansas',
                 'home_score': 38,
                 'home_rank': None,
                 'non_di': True,
                 'top_25': False},
                {'boxscore': '2017-09-02-kansas-state',
                 'away_name': 'Central Arkansas',
                 'away_abbr': 'Central Arkansas',
                 'away_score': 19,
                 'away_rank': None,
                 'home_name': 'Kansas State',
                 'home_abbr': 'kansas-state',
                 'home_score': 55,
                 'home_rank': 20,
                 'non_di': True,
                 'top_25': True},
                {'boxscore': '2017-09-02-louisiana-lafayette',
                 'away_name': 'Southeastern Louisiana',
                 'away_abbr': 'Southeastern Louisiana',
                 'away_score': 48,
                 'away_rank': None,
                 'home_name': 'Louisiana',
                 'home_abbr': 'louisiana-lafayette',
                 'home_score': 51,
                 'home_rank': None,
                 'non_di': True,
                 'top_25': False},
                {'boxscore': '2017-09-02-louisiana-tech',
                 'away_name': 'Northwestern State',
                 'away_abbr': 'Northwestern State',
                 'away_score': 24,
                 'away_rank': None,
                 'home_name': 'Louisiana Tech',
                 'home_abbr': 'louisiana-tech',
                 'home_score': 52,
                 'home_rank': None,
                 'non_di': True,
                 'top_25': False},
                {'boxscore': '2017-09-02-marshall',
                 'away_name': 'Miami (OH)',
                 'away_abbr': 'miami-oh',
                 'away_score': 26,
                 'away_rank': None,
                 'home_name': 'Marshall',
                 'home_abbr': 'marshall',
                 'home_score': 31,
                 'home_rank': None,
                 'non_di': False,
                 'top_25': False},
                {'boxscore': '2017-09-02-miami-fl',
                 'away_name': 'Bethune-Cookman',
                 'away_abbr': 'Bethune-Cookman',
                 'away_score': 13,
                 'away_rank': None,
                 'home_name': 'Miami (FL)',
                 'home_abbr': 'miami-fl',
                 'home_score': 41,
                 'home_rank': 18,
                 'non_di': True,
                 'top_25': True},
                {'boxscore': '2017-09-02-michigan',
                 'away_name': 'Florida',
                 'away_abbr': 'florida',
                 'away_score': 17,
                 'away_rank': 17,
                 'home_name': 'Michigan',
                 'home_abbr': 'michigan',
                 'home_score': 33,
                 'home_rank': 11,
                 'non_di': False,
                 'top_25': True},
                {'boxscore': '2017-09-02-michigan-state',
                 'away_name': 'Bowling Green State',
                 'away_abbr': 'bowling-green-state',
                 'away_score': 10,
                 'away_rank': None,
                 'home_name': 'Michigan State',
                 'home_abbr': 'michigan-state',
                 'home_score': 35,
                 'home_rank': None,
                 'non_di': False,
                 'top_25': False},
                {'boxscore': '2017-09-02-middle-tennessee-state',
                 'away_name': 'Vanderbilt',
                 'away_abbr': 'vanderbilt',
                 'away_score': 28,
                 'away_rank': None,
                 'home_name': 'Middle Tennessee State',
                 'home_abbr': 'middle-tennessee-state',
                 'home_score': 6,
                 'home_rank': None,
                 'non_di': False,
                 'top_25': False},
                {'boxscore': '2017-09-02-mississippi',
                 'away_name': 'South Alabama',
                 'away_abbr': 'south-alabama',
                 'away_score': 27,
                 'away_rank': None,
                 'home_name': 'Ole Miss',
                 'home_abbr': 'mississippi',
                 'home_score': 47,
                 'home_rank': None,
                 'non_di': False,
                 'top_25': False},
                {'boxscore': '2017-09-02-mississippi-state',
                 'away_name': 'Charleston Southern',
                 'away_abbr': 'Charleston Southern',
                 'away_score': 0,
                 'away_rank': None,
                 'home_name': 'Mississippi State',
                 'home_abbr': 'mississippi-state',
                 'home_score': 49,
                 'home_rank': None,
                 'non_di': True,
                 'top_25': False},
                {'boxscore': '2017-09-02-missouri',
                 'away_name': 'Missouri State',
                 'away_abbr': 'Missouri State',
                 'away_score': 43,
                 'away_rank': None,
                 'home_name': 'Missouri',
                 'home_abbr': 'missouri',
                 'home_score': 72,
                 'home_rank': None,
                 'non_di': True,
                 'top_25': False},
                {'boxscore': '2017-09-02-nebraska',
                 'away_name': 'Arkansas State',
                 'away_abbr': 'arkansas-state',
                 'away_score': 36,
                 'away_rank': None,
                 'home_name': 'Nebraska',
                 'home_abbr': 'nebraska',
                 'home_score': 43,
                 'home_rank': None,
                 'non_di': False,
                 'top_25': False},
                {'boxscore': '2017-09-02-nevada-las-vegas',
                 'away_name': 'Howard',
                 'away_abbr': 'Howard',
                 'away_score': 43,
                 'away_rank': None,
                 'home_name': 'UNLV',
                 'home_abbr': 'nevada-las-vegas',
                 'home_score': 40,
                 'home_rank': None,
                 'non_di': True,
                 'top_25': False},
                {'boxscore': '2017-09-02-new-mexico',
                 'away_name': 'Abilene Christian',
                 'away_abbr': 'Abilene Christian',
                 'away_score': 14,
                 'away_rank': None,
                 'home_name': 'New Mexico',
                 'home_abbr': 'new-mexico',
                 'home_score': 38,
                 'home_rank': None,
                 'non_di': True,
                 'top_25': False},
                {'boxscore': '2017-09-02-north-carolina',
                 'away_name': 'California',
                 'away_abbr': 'california',
                 'away_score': 35,
                 'away_rank': None,
                 'home_name': 'North Carolina',
                 'home_abbr': 'north-carolina',
                 'home_score': 30,
                 'home_rank': None,
                 'non_di': False,
                 'top_25': False},
                {'boxscore': '2017-09-02-north-carolina-state',
                 'away_name': 'South Carolina',
                 'away_abbr': 'south-carolina',
                 'away_score': 35,
                 'away_rank': None,
                 'home_name': 'North Carolina State',
                 'home_abbr': 'north-carolina-state',
                 'home_score': 28,
                 'home_rank': None,
                 'non_di': False,
                 'top_25': False},
                {'boxscore': '2017-09-02-north-texas',
                 'away_name': 'Lamar',
                 'away_abbr': 'Lamar',
                 'away_score': 14,
                 'away_rank': None,
                 'home_name': 'North Texas',
                 'home_abbr': 'north-texas',
                 'home_score': 59,
                 'home_rank': None,
                 'non_di': True,
                 'top_25': False},
                {'boxscore': '2017-09-02-northwestern',
                 'away_name': 'Nevada',
                 'away_abbr': 'nevada',
                 'away_score': 20,
                 'away_rank': None,
                 'home_name': 'Northwestern',
                 'home_abbr': 'northwestern',
                 'home_score': 31,
                 'home_rank': None,
                 'non_di': False,
                 'top_25': False},
                {'boxscore': '2017-09-02-notre-dame',
                 'away_name': 'Temple',
                 'away_abbr': 'temple',
                 'away_score': 16,
                 'away_rank': None,
                 'home_name': 'Notre Dame',
                 'home_abbr': 'notre-dame',
                 'home_score': 49,
                 'home_rank': None,
                 'non_di': False,
                 'top_25': False},
                {'boxscore': '2017-09-02-ohio',
                 'away_name': 'Hampton',
                 'away_abbr': 'Hampton',
                 'away_score': 0,
                 'away_rank': None,
                 'home_name': 'Ohio',
                 'home_abbr': 'ohio',
                 'home_score': 59,
                 'home_rank': None,
                 'non_di': True,
                 'top_25': False},
                {'boxscore': '2017-09-02-oklahoma',
                 'away_name': 'UTEP',
                 'away_abbr': 'texas-el-paso',
                 'away_score': 7,
                 'away_rank': None,
                 'home_name': 'Oklahoma',
                 'home_abbr': 'oklahoma',
                 'home_score': 56,
                 'home_rank': 7,
                 'non_di': False,
                 'top_25': True},
                {'boxscore': '2017-09-02-oklahoma-state',
                 'away_name': 'Tulsa',
                 'away_abbr': 'tulsa',
                 'away_score': 24,
                 'away_rank': None,
                 'home_name': 'Oklahoma State',
                 'home_abbr': 'oklahoma-state',
                 'home_score': 59,
                 'home_rank': 10,
                 'non_di': False,
                 'top_25': True},
                {'boxscore': '2017-09-02-old-dominion',
                 'away_name': 'Albany',
                 'away_abbr': 'Albany',
                 'away_score': 17,
                 'away_rank': None,
                 'home_name': 'Old Dominion',
                 'home_abbr': 'old-dominion',
                 'home_score': 31,
                 'home_rank': None,
                 'non_di': True,
                 'top_25': False},
                {'boxscore': '2017-09-02-oregon',
                 'away_name': 'Southern Utah',
                 'away_abbr': 'Southern Utah',
                 'away_score': 21,
                 'away_rank': None,
                 'home_name': 'Oregon',
                 'home_abbr': 'oregon',
                 'home_score': 77,
                 'home_rank': None,
                 'non_di': True,
                 'top_25': False},
                {'boxscore': '2017-09-02-oregon-state',
                 'away_name': 'Portland State',
                 'away_abbr': 'Portland State',
                 'away_score': 32,
                 'away_rank': None,
                 'home_name': 'Oregon State',
                 'home_abbr': 'oregon-state',
                 'home_score': 35,
                 'home_rank': None,
                 'non_di': True,
                 'top_25': False},
                {'boxscore': '2017-09-02-penn-state',
                 'away_name': 'Akron',
                 'away_abbr': 'akron',
                 'away_score': 0,
                 'away_rank': None,
                 'home_name': 'Penn State',
                 'home_abbr': 'penn-state',
                 'home_score': 52,
                 'home_rank': 6,
                 'non_di': False,
                 'top_25': True},
                {'boxscore': '2017-09-02-pittsburgh',
                 'away_name': 'Youngstown State',
                 'away_abbr': 'Youngstown State',
                 'away_score': 21,
                 'away_rank': None,
                 'home_name': 'Pitt',
                 'home_abbr': 'pittsburgh',
                 'home_score': 28,
                 'home_rank': None,
                 'non_di': True,
                 'top_25': False},
                {'boxscore': '2017-09-02-purdue',
                 'away_name': 'Louisville',
                 'away_abbr': 'louisville',
                 'away_score': 35,
                 'away_rank': 16,
                 'home_name': 'Purdue',
                 'home_abbr': 'purdue',
                 'home_score': 28,
                 'home_rank': None,
                 'non_di': False,
                 'top_25': True},
                {'boxscore': '2017-09-02-san-diego-state',
                 'away_name': 'California-Davis',
                 'away_abbr': 'California-Davis',
                 'away_score': 17,
                 'away_rank': None,
                 'home_name': 'San Diego State',
                 'home_abbr': 'san-diego-state',
                 'home_score': 38,
                 'home_rank': None,
                 'non_di': True,
                 'top_25': False},
                {'boxscore': '2017-09-02-san-jose-state',
                 'away_name': 'Cal Poly',
                 'away_abbr': 'Cal Poly',
                 'away_score': 13,
                 'away_rank': None,
                 'home_name': 'San Jose State',
                 'home_abbr': 'san-jose-state',
                 'home_score': 34,
                 'home_rank': None,
                 'non_di': True,
                 'top_25': False},
                {'boxscore': '2017-09-02-south-florida',
                 'away_name': 'Stony Brook',
                 'away_abbr': 'Stony Brook',
                 'away_score': 17,
                 'away_rank': None,
                 'home_name': 'South Florida',
                 'home_abbr': 'south-florida',
                 'home_score': 31,
                 'home_rank': 19,
                 'non_di': True,
                 'top_25': True},
                {'boxscore': '2017-09-02-southern-california',
                 'away_name': 'Western Michigan',
                 'away_abbr': 'western-michigan',
                 'away_score': 31,
                 'away_rank': None,
                 'home_name': 'USC',
                 'home_abbr': 'southern-california',
                 'home_score': 49,
                 'home_rank': 4,
                 'non_di': False,
                 'top_25': True},
                {'boxscore': '2017-09-02-southern-methodist',
                 'away_name': 'Stephen F. Austin',
                 'away_abbr': 'Stephen F. Austin',
                 'away_score': 14,
                 'away_rank': None,
                 'home_name': 'SMU',
                 'home_abbr': 'southern-methodist',
                 'home_score': 58,
                 'home_rank': None,
                 'non_di': True,
                 'top_25': False},
                {'boxscore': '2017-09-02-southern-mississippi',
                 'away_name': 'Kentucky',
                 'away_abbr': 'kentucky',
                 'away_score': 24,
                 'away_rank': None,
                 'home_name': 'Southern Mississippi',
                 'home_abbr': 'southern-mississippi',
                 'home_score': 17,
                 'home_rank': None,
                 'non_di': False,
                 'top_25': False},
                {'boxscore': '2017-09-02-texas',
                 'away_name': 'Maryland',
                 'away_abbr': 'maryland',
                 'away_score': 51,
                 'away_rank': None,
                 'home_name': 'Texas',
                 'home_abbr': 'texas',
                 'home_score': 41,
                 'home_rank': 23,
                 'non_di': False,
                 'top_25': True},
                {'boxscore': '2017-09-02-texas-christian',
                 'away_name': 'Jackson State',
                 'away_abbr': 'Jackson State',
                 'away_score': 0,
                 'away_rank': None,
                 'home_name': 'Texas Christian',
                 'home_abbr': 'texas-christian',
                 'home_score': 63,
                 'home_rank': None,
                 'non_di': True,
                 'top_25': False},
                {'boxscore': '2017-09-02-texas-state',
                 'away_name': '',
                 'away_abbr': '',
                 'away_score': 11,
                 'away_rank': None,
                 'home_name': 'Texas State',
                 'home_abbr': 'texas-state',
                 'home_score': 20,
                 'home_rank': None,
                 'non_di': True,
                 'top_25': False},
                {'boxscore': '2017-09-02-texas-tech',
                 'away_name': 'Eastern Washington',
                 'away_abbr': 'Eastern Washington',
                 'away_score': 10,
                 'away_rank': None,
                 'home_name': 'Texas Tech',
                 'home_abbr': 'texas-tech',
                 'home_score': 56,
                 'home_rank': None,
                 'non_di': True,
                 'top_25': False},
                {'boxscore': '2017-09-02-tulane',
                 'away_name': 'Grambling State',
                 'away_abbr': 'Grambling State',
                 'away_score': 14,
                 'away_rank': None,
                 'home_name': 'Tulane',
                 'home_abbr': 'tulane',
                 'home_score': 43,
                 'home_rank': None,
                 'non_di': True,
                 'top_25': False},
                {'boxscore': '2017-09-02-virginia',
                 'away_name': 'William & Mary',
                 'away_abbr': 'William & Mary',
                 'away_score': 10,
                 'away_rank': None,
                 'home_name': 'Virginia',
                 'home_abbr': 'virginia',
                 'home_score': 28,
                 'home_rank': None,
                 'non_di': True,
                 'top_25': False},
                {'boxscore': '2017-09-02-washington-state',
                 'away_name': 'Montana State',
                 'away_abbr': 'Montana State',
                 'away_score': 0,
                 'away_rank': None,
                 'home_name': 'Washington State',
                 'home_abbr': 'washington-state',
                 'home_score': 31,
                 'home_rank': 24,
                 'non_di': True,
                 'top_25': True},
                {'boxscore': '2017-09-02-western-kentucky',
                 'away_name': 'Eastern Kentucky',
                 'away_abbr': 'Eastern Kentucky',
                 'away_score': 17,
                 'away_rank': None,
                 'home_name': 'Western Kentucky',
                 'home_abbr': 'western-kentucky',
                 'home_score': 31,
                 'home_rank': None,
                 'non_di': True,
                 'top_25': False},
                {'boxscore': '2017-09-01-army',
                 'away_name': 'Fordham',
                 'away_abbr': 'Fordham',
                 'away_score': 6,
                 'away_rank': None,
                 'home_name': 'Army',
                 'home_abbr': 'army',
                 'home_score': 64,
                 'home_rank': None,
                 'non_di': True,
                 'top_25': False},
                {'boxscore': '2017-09-01-colorado',
                 'away_name': 'Colorado State',
                 'away_abbr': 'colorado-state',
                 'away_score': 3,
                 'away_rank': None,
                 'home_name': 'Colorado',
                 'home_abbr': 'colorado',
                 'home_score': 17,
                 'home_rank': None,
                 'non_di': False,
                 'top_25': False},
                {'boxscore': '2017-09-01-eastern-michigan',
                 'away_name': 'Charlotte',
                 'away_abbr': 'charlotte',
                 'away_score': 7,
                 'away_rank': None,
                 'home_name': 'Eastern Michigan',
                 'home_abbr': 'eastern-michigan',
                 'home_score': 24,
                 'home_rank': None,
                 'non_di': False,
                 'top_25': False},
                {'boxscore': '2017-09-01-florida-atlantic',
                 'away_name': 'Navy',
                 'away_abbr': 'navy',
                 'away_score': 42,
                 'away_rank': None,
                 'home_name': 'Florida Atlantic',
                 'home_abbr': 'florida-atlantic',
                 'home_score': 19,
                 'home_rank': None,
                 'non_di': False,
                 'top_25': False},
                {'boxscore': '2017-09-01-northern-illinois',
                 'away_name': 'Boston College',
                 'away_abbr': 'boston-college',
                 'away_score': 23,
                 'away_rank': None,
                 'home_name': 'Northern Illinois',
                 'home_abbr': 'northern-illinois',
                 'home_score': 20,
                 'home_rank': None,
                 'non_di': False,
                 'top_25': False},
                {'boxscore': '2017-09-01-rutgers',
                 'away_name': 'Washington',
                 'away_abbr': 'washington',
                 'away_score': 30,
                 'away_rank': 8,
                 'home_name': 'Rutgers',
                 'home_abbr': 'rutgers',
                 'home_score': 14,
                 'home_rank': None,
                 'non_di': False,
                 'top_25': True},
                {'boxscore': '2017-09-01-syracuse',
                 'away_name': 'Central Connecticut State',
                 'away_abbr': 'Central Connecticut State',
                 'away_score': 7,
                 'away_rank': None,
                 'home_name': 'Syracuse',
                 'home_abbr': 'syracuse',
                 'home_score': 50,
                 'home_rank': None,
                 'non_di': True,
                 'top_25': False},
                {'boxscore': '2017-09-01-wisconsin',
                 'away_name': 'Utah State',
                 'away_abbr': 'utah-state',
                 'away_score': 10,
                 'away_rank': None,
                 'home_name': 'Wisconsin',
                 'home_abbr': 'wisconsin',
                 'home_score': 59,
                 'home_rank': 9,
                 'non_di': False,
                 'top_25': True},
                {'boxscore': '2017-08-31-arizona-state',
                 'away_name': 'New Mexico State',
                 'away_abbr': 'new-mexico-state',
                 'away_score': 31,
                 'away_rank': None,
                 'home_name': 'Arizona State',
                 'home_abbr': 'arizona-state',
                 'home_score': 37,
                 'home_rank': None,
                 'non_di': False,
                 'top_25': False},
                {'boxscore': '2017-08-31-arkansas',
                 'away_name': 'Florida A&M',
                 'away_abbr': 'Florida A&M',
                 'away_score': 7,
                 'away_rank': None,
                 'home_name': 'Arkansas',
                 'home_abbr': 'arkansas',
                 'home_score': 49,
                 'home_rank': None,
                 'non_di': True,
                 'top_25': False},
                {'boxscore': '2017-08-31-central-michigan',
                 'away_name': 'Rhode Island',
                 'away_abbr': 'Rhode Island',
                 'away_score': 27,
                 'away_rank': None,
                 'home_name': 'Central Michigan',
                 'home_abbr': 'central-michigan',
                 'home_score': 30,
                 'home_rank': None,
                 'non_di': True,
                 'top_25': False},
                {'boxscore': '2017-08-31-cincinnati',
                 'away_name': 'Austin Peay',
                 'away_abbr': 'Austin Peay',
                 'away_score': 14,
                 'away_rank': None,
                 'home_name': 'Cincinnati',
                 'home_abbr': 'cincinnati',
                 'home_score': 26,
                 'home_rank': None,
                 'non_di': True,
                 'top_25': False},
                {'boxscore': '2017-08-31-connecticut',
                 'away_name': 'Holy Cross',
                 'away_abbr': 'Holy Cross',
                 'away_score': 20,
                 'away_rank': None,
                 'home_name': 'Connecticut',
                 'home_abbr': 'connecticut',
                 'home_score': 27,
                 'home_rank': None,
                 'non_di': True,
                 'top_25': False},
                {'boxscore': '2017-08-31-georgia-state',
                 'away_name': 'Tennessee State',
                 'away_abbr': 'Tennessee State',
                 'away_score': 17,
                 'away_rank': None,
                 'home_name': 'Georgia State',
                 'home_abbr': 'georgia-state',
                 'home_score': 10,
                 'home_rank': None,
                 'non_di': True,
                 'top_25': False},
                {'boxscore': '2017-08-31-idaho',
                 'away_name': 'Sacramento State',
                 'away_abbr': 'Sacramento State',
                 'away_score': 6,
                 'away_rank': None,
                 'home_name': 'Idaho',
                 'home_abbr': 'idaho',
                 'home_score': 28,
                 'home_rank': None,
                 'non_di': True,
                 'top_25': False},
                {'boxscore': '2017-08-31-indiana',
                 'away_name': 'Ohio State',
                 'away_abbr': 'ohio-state',
                 'away_score': 49,
                 'away_rank': 2,
                 'home_name': 'Indiana',
                 'home_abbr': 'indiana',
                 'home_score': 21,
                 'home_rank': None,
                 'non_di': False,
                 'top_25': True},
                {'boxscore': '2017-08-31-memphis',
                 'away_name': 'Louisiana-Monroe',
                 'away_abbr': 'louisiana-monroe',
                 'away_score': 29,
                 'away_rank': None,
                 'home_name': 'Memphis',
                 'home_abbr': 'memphis',
                 'home_score': 37,
                 'home_rank': None,
                 'non_di': False,
                 'top_25': False},
                {'boxscore': '2017-08-31-minnesota',
                 'away_name': 'Buffalo',
                 'away_abbr': 'buffalo',
                 'away_score': 7,
                 'away_rank': None,
                 'home_name': 'Minnesota',
                 'home_abbr': 'minnesota',
                 'home_score': 17,
                 'home_rank': None,
                 'non_di': False,
                 'top_25': False},
                {'boxscore': '2017-08-31-toledo',
                 'away_name': 'Elon',
                 'away_abbr': 'Elon',
                 'away_score': 13,
                 'away_rank': None,
                 'home_name': 'Toledo',
                 'home_abbr': 'toledo',
                 'home_score': 47,
                 'home_rank': None,
                 'non_di': True,
                 'top_25': False},
                {'boxscore': '2017-08-31-utah',
                 'away_name': 'North Dakota',
                 'away_abbr': 'North Dakota',
                 'away_score': 16,
                 'away_rank': None,
                 'home_name': 'Utah',
                 'home_abbr': 'utah',
                 'home_score': 37,
                 'home_rank': None,
                 'non_di': True,
                 'top_25': False},
                {'boxscore': '2017-08-31-wake-forest',
                 'away_name': 'Presbyterian',
                 'away_abbr': 'Presbyterian',
                 'away_score': 7,
                 'away_rank': None,
                 'home_name': 'Wake Forest',
                 'home_abbr': 'wake-forest',
                 'home_score': 51,
                 'home_rank': None,
                 'non_di': True,
                 'top_25': False}
            ]
        }

    @mock.patch('requests.get', side_effect=mock_pyquery)
    def test_boxscores_search(self, *args, **kwargs):
        result = Boxscores(datetime(2017, 8, 30)).games

        assert result == self.expected

    @mock.patch('requests.get', side_effect=mock_pyquery)
    def test_boxscores_search_invalid_end(self, *args, **kwargs):
        result = Boxscores(datetime(2017, 8, 30), datetime(2017, 8, 29)).games

        assert result == self.expected

    @mock.patch('requests.get', side_effect=mock_pyquery)
    def test_boxscores_search_multiple_days(self, *args, **kwargs):
        expected = {
            '8-30-2017': [
                {'boxscore': '2017-09-04-georgia-tech',
                 'away_name': 'Tennessee',
                 'away_abbr': 'tennessee',
                 'away_score': 42,
                 'away_rank': 25,
                 'home_name': 'Georgia Tech',
                 'home_abbr': 'georgia-tech',
                 'home_score': 41,
                 'home_rank': None,
                 'non_di': False,
                 'top_25': True},
                {'boxscore': '2017-09-03-ucla',
                 'away_name': 'Texas A&M',
                 'away_abbr': 'texas-am',
                 'away_score': 44,
                 'away_rank': None,
                 'home_name': 'UCLA',
                 'home_abbr': 'ucla',
                 'home_score': 45,
                 'home_rank': None,
                 'non_di': False,
                 'top_25': False},
                {'boxscore': '2017-09-03-virginia-tech',
                 'away_name': 'West Virginia',
                 'away_abbr': 'west-virginia',
                 'away_score': 24,
                 'away_rank': 22,
                 'home_name': 'Virginia Tech',
                 'home_abbr': 'virginia-tech',
                 'home_score': 31,
                 'home_rank': 21,
                 'non_di': False,
                 'top_25': True},
                {'boxscore': '2017-09-02-air-force',
                 'away_name': 'Virginia Military Institute',
                 'away_abbr': 'Virginia Military Institute',
                 'away_score': 0,
                 'away_rank': None,
                 'home_name': 'Air Force',
                 'home_abbr': 'air-force',
                 'home_score': 62,
                 'home_rank': None,
                 'non_di': True,
                 'top_25': False},
                {'boxscore': '2017-09-02-alabama-birmingham',
                 'away_name': 'Alabama A&M',
                 'away_abbr': 'Alabama A&M',
                 'away_score': 7,
                 'away_rank': None,
                 'home_name': 'UAB',
                 'home_abbr': 'alabama-birmingham',
                 'home_score': 38,
                 'home_rank': None,
                 'non_di': True,
                 'top_25': False},
                {'boxscore': '2017-09-02-arizona',
                 'away_name': 'Northern Arizona',
                 'away_abbr': 'Northern Arizona',
                 'away_score': 24,
                 'away_rank': None,
                 'home_name': 'Arizona',
                 'home_abbr': 'arizona',
                 'home_score': 62,
                 'home_rank': None,
                 'non_di': True,
                 'top_25': False},
                {'boxscore': '2017-09-02-auburn',
                 'away_name': 'Georgia Southern',
                 'away_abbr': 'georgia-southern',
                 'away_score': 7,
                 'away_rank': None,
                 'home_name': 'Auburn',
                 'home_abbr': 'auburn',
                 'home_score': 41,
                 'home_rank': 12,
                 'non_di': False,
                 'top_25': True},
                {'boxscore': '2017-09-02-baylor',
                 'away_name': 'Liberty',
                 'away_abbr': 'Liberty',
                 'away_score': 48,
                 'away_rank': None,
                 'home_name': 'Baylor',
                 'home_abbr': 'baylor',
                 'home_score': 45,
                 'home_rank': None,
                 'non_di': True,
                 'top_25': False},
                {'boxscore': '2017-09-02-boise-state',
                 'away_name': 'Troy',
                 'away_abbr': 'troy',
                 'away_score': 13,
                 'away_rank': None,
                 'home_name': 'Boise State',
                 'home_abbr': 'boise-state',
                 'home_score': 24,
                 'home_rank': None,
                 'non_di': False,
                 'top_25': False},
                {'boxscore': '2017-09-02-brigham-young',
                 'away_name': 'LSU',
                 'away_abbr': 'louisiana-state',
                 'away_score': 27,
                 'away_rank': 13,
                 'home_name': 'Brigham Young',
                 'home_abbr': 'brigham-young',
                 'home_score': 0,
                 'home_rank': None,
                 'non_di': False,
                 'top_25': True},
                {'boxscore': '2017-09-02-central-florida',
                 'away_name': 'Florida International',
                 'away_abbr': 'florida-international',
                 'away_score': 17,
                 'away_rank': None,
                 'home_name': 'UCF',
                 'home_abbr': 'central-florida',
                 'home_score': 61,
                 'home_rank': None,
                 'non_di': False,
                 'top_25': False},
                {'boxscore': '2017-09-02-clemson',
                 'away_name': 'Kent State',
                 'away_abbr': 'kent-state',
                 'away_score': 3,
                 'away_rank': None,
                 'home_name': 'Clemson',
                 'home_abbr': 'clemson',
                 'home_score': 56,
                 'home_rank': 5,
                 'non_di': False,
                 'top_25': True},
                {'boxscore': '2017-09-02-coastal-carolina',
                 'away_name': 'Massachusetts',
                 'away_abbr': 'massachusetts',
                 'away_score': 28,
                 'away_rank': None,
                 'home_name': 'Coastal Carolina',
                 'home_abbr': 'coastal-carolina',
                 'home_score': 38,
                 'home_rank': None,
                 'non_di': False,
                 'top_25': False},
                {'boxscore': '2017-09-02-duke',
                 'away_name': 'North Carolina Central',
                 'away_abbr': 'North Carolina Central',
                 'away_score': 7,
                 'away_rank': None,
                 'home_name': 'Duke',
                 'home_abbr': 'duke',
                 'home_score': 60,
                 'home_rank': None,
                 'non_di': True,
                 'top_25': False},
                {'boxscore': '2017-09-02-east-carolina',
                 'away_name': 'James Madison',
                 'away_abbr': 'James Madison',
                 'away_score': 34,
                 'away_rank': None,
                 'home_name': 'East Carolina',
                 'home_abbr': 'east-carolina',
                 'home_score': 14,
                 'home_rank': None,
                 'non_di': True,
                 'top_25': False},
                {'boxscore': '2017-09-02-florida-state',
                 'away_name': 'Alabama',
                 'away_abbr': 'alabama',
                 'away_score': 24,
                 'away_rank': 1,
                 'home_name': 'Florida State',
                 'home_abbr': 'florida-state',
                 'home_score': 7,
                 'home_rank': 3,
                 'non_di': False,
                 'top_25': True},
                {'boxscore': '2017-09-02-fresno-state',
                 'away_name': 'Incarnate Word',
                 'away_abbr': 'Incarnate Word',
                 'away_score': 0,
                 'away_rank': None,
                 'home_name': 'Fresno State',
                 'home_abbr': 'fresno-state',
                 'home_score': 66,
                 'home_rank': None,
                 'non_di': True,
                 'top_25': False},
                {'boxscore': '2017-09-02-georgia',
                 'away_name': 'Appalachian State',
                 'away_abbr': 'appalachian-state',
                 'away_score': 10,
                 'away_rank': None,
                 'home_name': 'Georgia',
                 'home_abbr': 'georgia',
                 'home_score': 31,
                 'home_rank': 15,
                 'non_di': False,
                 'top_25': True},
                {'boxscore': '2017-09-02-hawaii',
                 'away_name': 'Western Carolina',
                 'away_abbr': 'Western Carolina',
                 'away_score': 18,
                 'away_rank': None,
                 'home_name': 'Hawaii',
                 'home_abbr': 'hawaii',
                 'home_score': 41,
                 'home_rank': None,
                 'non_di': True,
                 'top_25': False},
                {'boxscore': '2017-09-02-illinois',
                 'away_name': 'Ball State',
                 'away_abbr': 'ball-state',
                 'away_score': 21,
                 'away_rank': None,
                 'home_name': 'Illinois',
                 'home_abbr': 'illinois',
                 'home_score': 24,
                 'home_rank': None,
                 'non_di': False,
                 'top_25': False},
                {'boxscore': '2017-09-02-iowa',
                 'away_name': 'Wyoming',
                 'away_abbr': 'wyoming',
                 'away_score': 3,
                 'away_rank': None,
                 'home_name': 'Iowa',
                 'home_abbr': 'iowa',
                 'home_score': 24,
                 'home_rank': None,
                 'non_di': False,
                 'top_25': False},
                {'boxscore': '2017-09-02-iowa-state',
                 'away_name': 'Northern Iowa',
                 'away_abbr': 'Northern Iowa',
                 'away_score': 24,
                 'away_rank': None,
                 'home_name': 'Iowa State',
                 'home_abbr': 'iowa-state',
                 'home_score': 42,
                 'home_rank': None,
                 'non_di': True,
                 'top_25': False},
                {'boxscore': '2017-09-02-kansas',
                 'away_name': 'Southeast Missouri State',
                 'away_abbr': 'Southeast Missouri State',
                 'away_score': 16,
                 'away_rank': None,
                 'home_name': 'Kansas',
                 'home_abbr': 'kansas',
                 'home_score': 38,
                 'home_rank': None,
                 'non_di': True,
                 'top_25': False},
                {'boxscore': '2017-09-02-kansas-state',
                 'away_name': 'Central Arkansas',
                 'away_abbr': 'Central Arkansas',
                 'away_score': 19,
                 'away_rank': None,
                 'home_name': 'Kansas State',
                 'home_abbr': 'kansas-state',
                 'home_score': 55,
                 'home_rank': 20,
                 'non_di': True,
                 'top_25': True},
                {'boxscore': '2017-09-02-louisiana-lafayette',
                 'away_name': 'Southeastern Louisiana',
                 'away_abbr': 'Southeastern Louisiana',
                 'away_score': 48,
                 'away_rank': None,
                 'home_name': 'Louisiana',
                 'home_abbr': 'louisiana-lafayette',
                 'home_score': 51,
                 'home_rank': None,
                 'non_di': True,
                 'top_25': False},
                {'boxscore': '2017-09-02-louisiana-tech',
                 'away_name': 'Northwestern State',
                 'away_abbr': 'Northwestern State',
                 'away_score': 24,
                 'away_rank': None,
                 'home_name': 'Louisiana Tech',
                 'home_abbr': 'louisiana-tech',
                 'home_score': 52,
                 'home_rank': None,
                 'non_di': True,
                 'top_25': False},
                {'boxscore': '2017-09-02-marshall',
                 'away_name': 'Miami (OH)',
                 'away_abbr': 'miami-oh',
                 'away_score': 26,
                 'away_rank': None,
                 'home_name': 'Marshall',
                 'home_abbr': 'marshall',
                 'home_score': 31,
                 'home_rank': None,
                 'non_di': False,
                 'top_25': False},
                {'boxscore': '2017-09-02-miami-fl',
                 'away_name': 'Bethune-Cookman',
                 'away_abbr': 'Bethune-Cookman',
                 'away_score': 13,
                 'away_rank': None,
                 'home_name': 'Miami (FL)',
                 'home_abbr': 'miami-fl',
                 'home_score': 41,
                 'home_rank': 18,
                 'non_di': True,
                 'top_25': True},
                {'boxscore': '2017-09-02-michigan',
                 'away_name': 'Florida',
                 'away_abbr': 'florida',
                 'away_score': 17,
                 'away_rank': 17,
                 'home_name': 'Michigan',
                 'home_abbr': 'michigan',
                 'home_score': 33,
                 'home_rank': 11,
                 'non_di': False,
                 'top_25': True},
                {'boxscore': '2017-09-02-michigan-state',
                 'away_name': 'Bowling Green State',
                 'away_abbr': 'bowling-green-state',
                 'away_score': 10,
                 'away_rank': None,
                 'home_name': 'Michigan State',
                 'home_abbr': 'michigan-state',
                 'home_score': 35,
                 'home_rank': None,
                 'non_di': False,
                 'top_25': False},
                {'boxscore': '2017-09-02-middle-tennessee-state',
                 'away_name': 'Vanderbilt',
                 'away_abbr': 'vanderbilt',
                 'away_score': 28,
                 'away_rank': None,
                 'home_name': 'Middle Tennessee State',
                 'home_abbr': 'middle-tennessee-state',
                 'home_score': 6,
                 'home_rank': None,
                 'non_di': False,
                 'top_25': False},
                {'boxscore': '2017-09-02-mississippi',
                 'away_name': 'South Alabama',
                 'away_abbr': 'south-alabama',
                 'away_score': 27,
                 'away_rank': None,
                 'home_name': 'Ole Miss',
                 'home_abbr': 'mississippi',
                 'home_score': 47,
                 'home_rank': None,
                 'non_di': False,
                 'top_25': False},
                {'boxscore': '2017-09-02-mississippi-state',
                 'away_name': 'Charleston Southern',
                 'away_abbr': 'Charleston Southern',
                 'away_score': 0,
                 'away_rank': None,
                 'home_name': 'Mississippi State',
                 'home_abbr': 'mississippi-state',
                 'home_score': 49,
                 'home_rank': None,
                 'non_di': True,
                 'top_25': False},
                {'boxscore': '2017-09-02-missouri',
                 'away_name': 'Missouri State',
                 'away_abbr': 'Missouri State',
                 'away_score': 43,
                 'away_rank': None,
                 'home_name': 'Missouri',
                 'home_abbr': 'missouri',
                 'home_score': 72,
                 'home_rank': None,
                 'non_di': True,
                 'top_25': False},
                {'boxscore': '2017-09-02-nebraska',
                 'away_name': 'Arkansas State',
                 'away_abbr': 'arkansas-state',
                 'away_score': 36,
                 'away_rank': None,
                 'home_name': 'Nebraska',
                 'home_abbr': 'nebraska',
                 'home_score': 43,
                 'home_rank': None,
                 'non_di': False,
                 'top_25': False},
                {'boxscore': '2017-09-02-nevada-las-vegas',
                 'away_name': 'Howard',
                 'away_abbr': 'Howard',
                 'away_score': 43,
                 'away_rank': None,
                 'home_name': 'UNLV',
                 'home_abbr': 'nevada-las-vegas',
                 'home_score': 40,
                 'home_rank': None,
                 'non_di': True,
                 'top_25': False},
                {'boxscore': '2017-09-02-new-mexico',
                 'away_name': 'Abilene Christian',
                 'away_abbr': 'Abilene Christian',
                 'away_score': 14,
                 'away_rank': None,
                 'home_name': 'New Mexico',
                 'home_abbr': 'new-mexico',
                 'home_score': 38,
                 'home_rank': None,
                 'non_di': True,
                 'top_25': False},
                {'boxscore': '2017-09-02-north-carolina',
                 'away_name': 'California',
                 'away_abbr': 'california',
                 'away_score': 35,
                 'away_rank': None,
                 'home_name': 'North Carolina',
                 'home_abbr': 'north-carolina',
                 'home_score': 30,
                 'home_rank': None,
                 'non_di': False,
                 'top_25': False},
                {'boxscore': '2017-09-02-north-carolina-state',
                 'away_name': 'South Carolina',
                 'away_abbr': 'south-carolina',
                 'away_score': 35,
                 'away_rank': None,
                 'home_name': 'North Carolina State',
                 'home_abbr': 'north-carolina-state',
                 'home_score': 28,
                 'home_rank': None,
                 'non_di': False,
                 'top_25': False},
                {'boxscore': '2017-09-02-north-texas',
                 'away_name': 'Lamar',
                 'away_abbr': 'Lamar',
                 'away_score': 14,
                 'away_rank': None,
                 'home_name': 'North Texas',
                 'home_abbr': 'north-texas',
                 'home_score': 59,
                 'home_rank': None,
                 'non_di': True,
                 'top_25': False},
                {'boxscore': '2017-09-02-northwestern',
                 'away_name': 'Nevada',
                 'away_abbr': 'nevada',
                 'away_score': 20,
                 'away_rank': None,
                 'home_name': 'Northwestern',
                 'home_abbr': 'northwestern',
                 'home_score': 31,
                 'home_rank': None,
                 'non_di': False,
                 'top_25': False},
                {'boxscore': '2017-09-02-notre-dame',
                 'away_name': 'Temple',
                 'away_abbr': 'temple',
                 'away_score': 16,
                 'away_rank': None,
                 'home_name': 'Notre Dame',
                 'home_abbr': 'notre-dame',
                 'home_score': 49,
                 'home_rank': None,
                 'non_di': False,
                 'top_25': False},
                {'boxscore': '2017-09-02-ohio',
                 'away_name': 'Hampton',
                 'away_abbr': 'Hampton',
                 'away_score': 0,
                 'away_rank': None,
                 'home_name': 'Ohio',
                 'home_abbr': 'ohio',
                 'home_score': 59,
                 'home_rank': None,
                 'non_di': True,
                 'top_25': False},
                {'boxscore': '2017-09-02-oklahoma',
                 'away_name': 'UTEP',
                 'away_abbr': 'texas-el-paso',
                 'away_score': 7,
                 'away_rank': None,
                 'home_name': 'Oklahoma',
                 'home_abbr': 'oklahoma',
                 'home_score': 56,
                 'home_rank': 7,
                 'non_di': False,
                 'top_25': True},
                {'boxscore': '2017-09-02-oklahoma-state',
                 'away_name': 'Tulsa',
                 'away_abbr': 'tulsa',
                 'away_score': 24,
                 'away_rank': None,
                 'home_name': 'Oklahoma State',
                 'home_abbr': 'oklahoma-state',
                 'home_score': 59,
                 'home_rank': 10,
                 'non_di': False,
                 'top_25': True},
                {'boxscore': '2017-09-02-old-dominion',
                 'away_name': 'Albany',
                 'away_abbr': 'Albany',
                 'away_score': 17,
                 'away_rank': None,
                 'home_name': 'Old Dominion',
                 'home_abbr': 'old-dominion',
                 'home_score': 31,
                 'home_rank': None,
                 'non_di': True,
                 'top_25': False},
                {'boxscore': '2017-09-02-oregon',
                 'away_name': 'Southern Utah',
                 'away_abbr': 'Southern Utah',
                 'away_score': 21,
                 'away_rank': None,
                 'home_name': 'Oregon',
                 'home_abbr': 'oregon',
                 'home_score': 77,
                 'home_rank': None,
                 'non_di': True,
                 'top_25': False},
                {'boxscore': '2017-09-02-oregon-state',
                 'away_name': 'Portland State',
                 'away_abbr': 'Portland State',
                 'away_score': 32,
                 'away_rank': None,
                 'home_name': 'Oregon State',
                 'home_abbr': 'oregon-state',
                 'home_score': 35,
                 'home_rank': None,
                 'non_di': True,
                 'top_25': False},
                {'boxscore': '2017-09-02-penn-state',
                 'away_name': 'Akron',
                 'away_abbr': 'akron',
                 'away_score': 0,
                 'away_rank': None,
                 'home_name': 'Penn State',
                 'home_abbr': 'penn-state',
                 'home_score': 52,
                 'home_rank': 6,
                 'non_di': False,
                 'top_25': True},
                {'boxscore': '2017-09-02-pittsburgh',
                 'away_name': 'Youngstown State',
                 'away_abbr': 'Youngstown State',
                 'away_score': 21,
                 'away_rank': None,
                 'home_name': 'Pitt',
                 'home_abbr': 'pittsburgh',
                 'home_score': 28,
                 'home_rank': None,
                 'non_di': True,
                 'top_25': False},
                {'boxscore': '2017-09-02-purdue',
                 'away_name': 'Louisville',
                 'away_abbr': 'louisville',
                 'away_score': 35,
                 'away_rank': 16,
                 'home_name': 'Purdue',
                 'home_abbr': 'purdue',
                 'home_score': 28,
                 'home_rank': None,
                 'non_di': False,
                 'top_25': True},
                {'boxscore': '2017-09-02-san-diego-state',
                 'away_name': 'California-Davis',
                 'away_abbr': 'California-Davis',
                 'away_score': 17,
                 'away_rank': None,
                 'home_name': 'San Diego State',
                 'home_abbr': 'san-diego-state',
                 'home_score': 38,
                 'home_rank': None,
                 'non_di': True,
                 'top_25': False},
                {'boxscore': '2017-09-02-san-jose-state',
                 'away_name': 'Cal Poly',
                 'away_abbr': 'Cal Poly',
                 'away_score': 13,
                 'away_rank': None,
                 'home_name': 'San Jose State',
                 'home_abbr': 'san-jose-state',
                 'home_score': 34,
                 'home_rank': None,
                 'non_di': True,
                 'top_25': False},
                {'boxscore': '2017-09-02-south-florida',
                 'away_name': 'Stony Brook',
                 'away_abbr': 'Stony Brook',
                 'away_score': 17,
                 'away_rank': None,
                 'home_name': 'South Florida',
                 'home_abbr': 'south-florida',
                 'home_score': 31,
                 'home_rank': 19,
                 'non_di': True,
                 'top_25': True},
                {'boxscore': '2017-09-02-southern-california',
                 'away_name': 'Western Michigan',
                 'away_abbr': 'western-michigan',
                 'away_score': 31,
                 'away_rank': None,
                 'home_name': 'USC',
                 'home_abbr': 'southern-california',
                 'home_score': 49,
                 'home_rank': 4,
                 'non_di': False,
                 'top_25': True},
                {'boxscore': '2017-09-02-southern-methodist',
                 'away_name': 'Stephen F. Austin',
                 'away_abbr': 'Stephen F. Austin',
                 'away_score': 14,
                 'away_rank': None,
                 'home_name': 'SMU',
                 'home_abbr': 'southern-methodist',
                 'home_score': 58,
                 'home_rank': None,
                 'non_di': True,
                 'top_25': False},
                {'boxscore': '2017-09-02-southern-mississippi',
                 'away_name': 'Kentucky',
                 'away_abbr': 'kentucky',
                 'away_score': 24,
                 'away_rank': None,
                 'home_name': 'Southern Mississippi',
                 'home_abbr': 'southern-mississippi',
                 'home_score': 17,
                 'home_rank': None,
                 'non_di': False,
                 'top_25': False},
                {'boxscore': '2017-09-02-texas',
                 'away_name': 'Maryland',
                 'away_abbr': 'maryland',
                 'away_score': 51,
                 'away_rank': None,
                 'home_name': 'Texas',
                 'home_abbr': 'texas',
                 'home_score': 41,
                 'home_rank': 23,
                 'non_di': False,
                 'top_25': True},
                {'boxscore': '2017-09-02-texas-christian',
                 'away_name': 'Jackson State',
                 'away_abbr': 'Jackson State',
                 'away_score': 0,
                 'away_rank': None,
                 'home_name': 'Texas Christian',
                 'home_abbr': 'texas-christian',
                 'home_score': 63,
                 'home_rank': None,
                 'non_di': True,
                 'top_25': False},
                {'boxscore': '2017-09-02-texas-state',
                 'away_name': '',
                 'away_abbr': '',
                 'away_score': 11,
                 'away_rank': None,
                 'home_name': 'Texas State',
                 'home_abbr': 'texas-state',
                 'home_score': 20,
                 'home_rank': None,
                 'non_di': True,
                 'top_25': False},
                {'boxscore': '2017-09-02-texas-tech',
                 'away_name': 'Eastern Washington',
                 'away_abbr': 'Eastern Washington',
                 'away_score': 10,
                 'away_rank': None,
                 'home_name': 'Texas Tech',
                 'home_abbr': 'texas-tech',
                 'home_score': 56,
                 'home_rank': None,
                 'non_di': True,
                 'top_25': False},
                {'boxscore': '2017-09-02-tulane',
                 'away_name': 'Grambling State',
                 'away_abbr': 'Grambling State',
                 'away_score': 14,
                 'away_rank': None,
                 'home_name': 'Tulane',
                 'home_abbr': 'tulane',
                 'home_score': 43,
                 'home_rank': None,
                 'non_di': True,
                 'top_25': False},
                {'boxscore': '2017-09-02-virginia',
                 'away_name': 'William & Mary',
                 'away_abbr': 'William & Mary',
                 'away_score': 10,
                 'away_rank': None,
                 'home_name': 'Virginia',
                 'home_abbr': 'virginia',
                 'home_score': 28,
                 'home_rank': None,
                 'non_di': True,
                 'top_25': False},
                {'boxscore': '2017-09-02-washington-state',
                 'away_name': 'Montana State',
                 'away_abbr': 'Montana State',
                 'away_score': 0,
                 'away_rank': None,
                 'home_name': 'Washington State',
                 'home_abbr': 'washington-state',
                 'home_score': 31,
                 'home_rank': 24,
                 'non_di': True,
                 'top_25': True},
                {'boxscore': '2017-09-02-western-kentucky',
                 'away_name': 'Eastern Kentucky',
                 'away_abbr': 'Eastern Kentucky',
                 'away_score': 17,
                 'away_rank': None,
                 'home_name': 'Western Kentucky',
                 'home_abbr': 'western-kentucky',
                 'home_score': 31,
                 'home_rank': None,
                 'non_di': True,
                 'top_25': False},
                {'boxscore': '2017-09-01-army',
                 'away_name': 'Fordham',
                 'away_abbr': 'Fordham',
                 'away_score': 6,
                 'away_rank': None,
                 'home_name': 'Army',
                 'home_abbr': 'army',
                 'home_score': 64,
                 'home_rank': None,
                 'non_di': True,
                 'top_25': False},
                {'boxscore': '2017-09-01-colorado',
                 'away_name': 'Colorado State',
                 'away_abbr': 'colorado-state',
                 'away_score': 3,
                 'away_rank': None,
                 'home_name': 'Colorado',
                 'home_abbr': 'colorado',
                 'home_score': 17,
                 'home_rank': None,
                 'non_di': False,
                 'top_25': False},
                {'boxscore': '2017-09-01-eastern-michigan',
                 'away_name': 'Charlotte',
                 'away_abbr': 'charlotte',
                 'away_score': 7,
                 'away_rank': None,
                 'home_name': 'Eastern Michigan',
                 'home_abbr': 'eastern-michigan',
                 'home_score': 24,
                 'home_rank': None,
                 'non_di': False,
                 'top_25': False},
                {'boxscore': '2017-09-01-florida-atlantic',
                 'away_name': 'Navy',
                 'away_abbr': 'navy',
                 'away_score': 42,
                 'away_rank': None,
                 'home_name': 'Florida Atlantic',
                 'home_abbr': 'florida-atlantic',
                 'home_score': 19,
                 'home_rank': None,
                 'non_di': False,
                 'top_25': False},
                {'boxscore': '2017-09-01-northern-illinois',
                 'away_name': 'Boston College',
                 'away_abbr': 'boston-college',
                 'away_score': 23,
                 'away_rank': None,
                 'home_name': 'Northern Illinois',
                 'home_abbr': 'northern-illinois',
                 'home_score': 20,
                 'home_rank': None,
                 'non_di': False,
                 'top_25': False},
                {'boxscore': '2017-09-01-rutgers',
                 'away_name': 'Washington',
                 'away_abbr': 'washington',
                 'away_score': 30,
                 'away_rank': 8,
                 'home_name': 'Rutgers',
                 'home_abbr': 'rutgers',
                 'home_score': 14,
                 'home_rank': None,
                 'non_di': False,
                 'top_25': True},
                {'boxscore': '2017-09-01-syracuse',
                 'away_name': 'Central Connecticut State',
                 'away_abbr': 'Central Connecticut State',
                 'away_score': 7,
                 'away_rank': None,
                 'home_name': 'Syracuse',
                 'home_abbr': 'syracuse',
                 'home_score': 50,
                 'home_rank': None,
                 'non_di': True,
                 'top_25': False},
                {'boxscore': '2017-09-01-wisconsin',
                 'away_name': 'Utah State',
                 'away_abbr': 'utah-state',
                 'away_score': 10,
                 'away_rank': None,
                 'home_name': 'Wisconsin',
                 'home_abbr': 'wisconsin',
                 'home_score': 59,
                 'home_rank': 9,
                 'non_di': False,
                 'top_25': True},
                {'boxscore': '2017-08-31-arizona-state',
                 'away_name': 'New Mexico State',
                 'away_abbr': 'new-mexico-state',
                 'away_score': 31,
                 'away_rank': None,
                 'home_name': 'Arizona State',
                 'home_abbr': 'arizona-state',
                 'home_score': 37,
                 'home_rank': None,
                 'non_di': False,
                 'top_25': False},
                {'boxscore': '2017-08-31-arkansas',
                 'away_name': 'Florida A&M',
                 'away_abbr': 'Florida A&M',
                 'away_score': 7,
                 'away_rank': None,
                 'home_name': 'Arkansas',
                 'home_abbr': 'arkansas',
                 'home_score': 49,
                 'home_rank': None,
                 'non_di': True,
                 'top_25': False},
                {'boxscore': '2017-08-31-central-michigan',
                 'away_name': 'Rhode Island',
                 'away_abbr': 'Rhode Island',
                 'away_score': 27,
                 'away_rank': None,
                 'home_name': 'Central Michigan',
                 'home_abbr': 'central-michigan',
                 'home_score': 30,
                 'home_rank': None,
                 'non_di': True,
                 'top_25': False},
                {'boxscore': '2017-08-31-cincinnati',
                 'away_name': 'Austin Peay',
                 'away_abbr': 'Austin Peay',
                 'away_score': 14,
                 'away_rank': None,
                 'home_name': 'Cincinnati',
                 'home_abbr': 'cincinnati',
                 'home_score': 26,
                 'home_rank': None,
                 'non_di': True,
                 'top_25': False},
                {'boxscore': '2017-08-31-connecticut',
                 'away_name': 'Holy Cross',
                 'away_abbr': 'Holy Cross',
                 'away_score': 20,
                 'away_rank': None,
                 'home_name': 'Connecticut',
                 'home_abbr': 'connecticut',
                 'home_score': 27,
                 'home_rank': None,
                 'non_di': True,
                 'top_25': False},
                {'boxscore': '2017-08-31-georgia-state',
                 'away_name': 'Tennessee State',
                 'away_abbr': 'Tennessee State',
                 'away_score': 17,
                 'away_rank': None,
                 'home_name': 'Georgia State',
                 'home_abbr': 'georgia-state',
                 'home_score': 10,
                 'home_rank': None,
                 'non_di': True,
                 'top_25': False},
                {'boxscore': '2017-08-31-idaho',
                 'away_name': 'Sacramento State',
                 'away_abbr': 'Sacramento State',
                 'away_score': 6,
                 'away_rank': None,
                 'home_name': 'Idaho',
                 'home_abbr': 'idaho',
                 'home_score': 28,
                 'home_rank': None,
                 'non_di': True,
                 'top_25': False},
                {'boxscore': '2017-08-31-indiana',
                 'away_name': 'Ohio State',
                 'away_abbr': 'ohio-state',
                 'away_score': 49,
                 'away_rank': 2,
                 'home_name': 'Indiana',
                 'home_abbr': 'indiana',
                 'home_score': 21,
                 'home_rank': None,
                 'non_di': False,
                 'top_25': True},
                {'boxscore': '2017-08-31-memphis',
                 'away_name': 'Louisiana-Monroe',
                 'away_abbr': 'louisiana-monroe',
                 'away_score': 29,
                 'away_rank': None,
                 'home_name': 'Memphis',
                 'home_abbr': 'memphis',
                 'home_score': 37,
                 'home_rank': None,
                 'non_di': False,
                 'top_25': False},
                {'boxscore': '2017-08-31-minnesota',
                 'away_name': 'Buffalo',
                 'away_abbr': 'buffalo',
                 'away_score': 7,
                 'away_rank': None,
                 'home_name': 'Minnesota',
                 'home_abbr': 'minnesota',
                 'home_score': 17,
                 'home_rank': None,
                 'non_di': False,
                 'top_25': False},
                {'boxscore': '2017-08-31-toledo',
                 'away_name': 'Elon',
                 'away_abbr': 'Elon',
                 'away_score': 13,
                 'away_rank': None,
                 'home_name': 'Toledo',
                 'home_abbr': 'toledo',
                 'home_score': 47,
                 'home_rank': None,
                 'non_di': True,
                 'top_25': False},
                {'boxscore': '2017-08-31-utah',
                 'away_name': 'North Dakota',
                 'away_abbr': 'North Dakota',
                 'away_score': 16,
                 'away_rank': None,
                 'home_name': 'Utah',
                 'home_abbr': 'utah',
                 'home_score': 37,
                 'home_rank': None,
                 'non_di': True,
                 'top_25': False},
                {'boxscore': '2017-08-31-wake-forest',
                 'away_name': 'Presbyterian',
                 'away_abbr': 'Presbyterian',
                 'away_score': 7,
                 'away_rank': None,
                 'home_name': 'Wake Forest',
                 'home_abbr': 'wake-forest',
                 'home_score': 51,
                 'home_rank': None,
                 'non_di': True,
                 'top_25': False}
            ],
            '8-31-2017': [
                {'boxscore': '2017-08-31-arizona-state',
                 'away_name': 'Arizona State',
                 'away_abbr': 'arizona-state',
                 'away_score': 31,
                 'away_rank': None,
                 'home_name': 'Arizona State',
                 'home_abbr': 'arizona-state',
                 'home_score': 37,
                 'home_rank': None,
                 'non_di': False,
                 'top_25': False},
                {'boxscore': '2017-08-31-arkansas',
                 'away_name': 'Arkansas',
                 'away_abbr': 'arkansas',
                 'away_score': 7,
                 'away_rank': None,
                 'home_name': 'Arkansas',
                 'home_abbr': 'arkansas',
                 'home_score': 49,
                 'home_rank': None,
                 'non_di': False,
                 'top_25': False},
                {'boxscore': '2017-08-31-central-michigan',
                 'away_name': 'Central Michigan',
                 'away_abbr': 'central-michigan',
                 'away_score': 27,
                 'away_rank': None,
                 'home_name': 'Central Michigan',
                 'home_abbr': 'central-michigan',
                 'home_score': 30,
                 'home_rank': None,
                 'non_di': False,
                 'top_25': False},
                {'boxscore': '2017-08-31-cincinnati',
                 'away_name': 'Cincinnati',
                 'away_abbr': 'cincinnati',
                 'away_score': 14,
                 'away_rank': None,
                 'home_name': 'Cincinnati',
                 'home_abbr': 'cincinnati',
                 'home_score': 26,
                 'home_rank': None,
                 'non_di': False,
                 'top_25': False},
                {'boxscore': '2017-08-31-connecticut',
                 'away_name': 'Connecticut',
                 'away_abbr': 'connecticut',
                 'away_score': 20,
                 'away_rank': None,
                 'home_name': 'Connecticut',
                 'home_abbr': 'connecticut',
                 'home_score': 27,
                 'home_rank': None,
                 'non_di': False,
                 'top_25': False},
                {'boxscore': '2017-08-31-georgia-state',
                 'away_name': 'Georgia State',
                 'away_abbr': 'georgia-state',
                 'away_score': 17,
                 'away_rank': None,
                 'home_name': 'Georgia State',
                 'home_abbr': 'georgia-state',
                 'home_score': 10,
                 'home_rank': None,
                 'non_di': False,
                 'top_25': False},
                {'boxscore': '2017-08-31-idaho',
                 'away_name': 'Idaho',
                 'away_abbr': 'idaho',
                 'away_score': 6,
                 'away_rank': None,
                 'home_name': 'Idaho',
                 'home_abbr': 'idaho',
                 'home_score': 28,
                 'home_rank': None,
                 'non_di': False,
                 'top_25': False},
                {'boxscore': '2017-08-31-indiana',
                 'away_name': 'Indiana',
                 'away_abbr': 'indiana',
                 'away_score': 49,
                 'away_rank': None,
                 'home_name': 'Indiana',
                 'home_abbr': 'indiana',
                 'home_score': 21,
                 'home_rank': None,
                 'non_di': False,
                 'top_25': False},
                {'boxscore': '2017-08-31-memphis',
                 'away_name': 'Memphis',
                 'away_abbr': 'memphis',
                 'away_score': 29,
                 'away_rank': None,
                 'home_name': 'Memphis',
                 'home_abbr': 'memphis',
                 'home_score': 37,
                 'home_rank': None,
                 'non_di': False,
                 'top_25': False},
                {'boxscore': '2017-08-31-minnesota',
                 'away_name': 'Minnesota',
                 'away_abbr': 'minnesota',
                 'away_score': 7,
                 'away_rank': None,
                 'home_name': 'Minnesota',
                 'home_abbr': 'minnesota',
                 'home_score': 17,
                 'home_rank': None,
                 'non_di': False,
                 'top_25': False},
                {'boxscore': '2017-08-31-oklahoma-state',
                 'away_name': 'Oklahoma State',
                 'away_abbr': 'oklahoma-state',
                 'away_score': 24,
                 'away_rank': 10,
                 'home_name': 'Oklahoma State',
                 'home_abbr': 'oklahoma-state',
                 'home_score': 59,
                 'home_rank': 10,
                 'non_di': False,
                 'top_25': True},
                {'boxscore': '2017-08-31-toledo',
                 'away_name': 'Toledo',
                 'away_abbr': 'toledo',
                 'away_score': 13,
                 'away_rank': None,
                 'home_name': 'Toledo',
                 'home_abbr': 'toledo',
                 'home_score': 47,
                 'home_rank': None,
                 'non_di': False,
                 'top_25': False},
                {'boxscore': '2017-08-31-utah',
                 'away_name': 'Utah',
                 'away_abbr': 'utah',
                 'away_score': 16,
                 'away_rank': None,
                 'home_name': 'Utah',
                 'home_abbr': 'utah',
                 'home_score': 37,
                 'home_rank': None,
                 'non_di': False,
                 'top_25': False},
                {'boxscore': '2017-08-31-wake-forest',
                 'away_name': 'Wake Forest',
                 'away_abbr': 'wake-forest',
                 'away_score': 7,
                 'away_rank': None,
                 'home_name': 'Wake Forest',
                 'home_abbr': 'wake-forest',
                 'home_score': 51,
                 'home_rank': None,
                 'non_di': False,
                 'top_25': False},
                {'boxscore': '2017-09-04-georgia-tech',
                 'away_name': 'Tennessee',
                 'away_abbr': 'tennessee',
                 'away_score': 42,
                 'away_rank': 25,
                 'home_name': 'Georgia Tech',
                 'home_abbr': 'georgia-tech',
                 'home_score': 41,
                 'home_rank': None,
                 'non_di': False,
                 'top_25': True},
                {'boxscore': '2017-09-03-ucla',
                 'away_name': 'Texas A&M',
                 'away_abbr': 'texas-am',
                 'away_score': 44,
                 'away_rank': None,
                 'home_name': 'UCLA',
                 'home_abbr': 'ucla',
                 'home_score': 45,
                 'home_rank': None,
                 'non_di': False,
                 'top_25': False},
                {'boxscore': '2017-09-03-virginia-tech',
                 'away_name': 'West Virginia',
                 'away_abbr': 'west-virginia',
                 'away_score': 24,
                 'away_rank': 22,
                 'home_name': 'Virginia Tech',
                 'home_abbr': 'virginia-tech',
                 'home_score': 31,
                 'home_rank': 21,
                 'non_di': False,
                 'top_25': True},
                {'boxscore': '2017-09-02-air-force',
                 'away_name': 'Virginia Military Institute',
                 'away_abbr': 'Virginia Military Institute',
                 'away_score': 0,
                 'away_rank': None,
                 'home_name': 'Air Force',
                 'home_abbr': 'air-force',
                 'home_score': 62,
                 'home_rank': None,
                 'non_di': True,
                 'top_25': False},
                {'boxscore': '2017-09-02-alabama-birmingham',
                 'away_name': 'Alabama A&M',
                 'away_abbr': 'Alabama A&M',
                 'away_score': 7,
                 'away_rank': None,
                 'home_name': 'UAB',
                 'home_abbr': 'alabama-birmingham',
                 'home_score': 38,
                 'home_rank': None,
                 'non_di': True,
                 'top_25': False},
                {'boxscore': '2017-09-02-arizona',
                 'away_name': 'Northern Arizona',
                 'away_abbr': 'Northern Arizona',
                 'away_score': 24,
                 'away_rank': None,
                 'home_name': 'Arizona',
                 'home_abbr': 'arizona',
                 'home_score': 62,
                 'home_rank': None,
                 'non_di': True,
                 'top_25': False},
                {'boxscore': '2017-09-02-auburn',
                 'away_name': 'Georgia Southern',
                 'away_abbr': 'georgia-southern',
                 'away_score': 7,
                 'away_rank': None,
                 'home_name': 'Auburn',
                 'home_abbr': 'auburn',
                 'home_score': 41,
                 'home_rank': 12,
                 'non_di': False,
                 'top_25': True},
                {'boxscore': '2017-09-02-baylor',
                 'away_name': 'Liberty',
                 'away_abbr': 'Liberty',
                 'away_score': 48,
                 'away_rank': None,
                 'home_name': 'Baylor',
                 'home_abbr': 'baylor',
                 'home_score': 45,
                 'home_rank': None,
                 'non_di': True,
                 'top_25': False},
                {'boxscore': '2017-09-02-boise-state',
                 'away_name': 'Troy',
                 'away_abbr': 'troy',
                 'away_score': 13,
                 'away_rank': None,
                 'home_name': 'Boise State',
                 'home_abbr': 'boise-state',
                 'home_score': 24,
                 'home_rank': None,
                 'non_di': False,
                 'top_25': False},
                {'boxscore': '2017-09-02-brigham-young',
                 'away_name': 'LSU',
                 'away_abbr': 'louisiana-state',
                 'away_score': 27,
                 'away_rank': 13,
                 'home_name': 'Brigham Young',
                 'home_abbr': 'brigham-young',
                 'home_score': 0,
                 'home_rank': None,
                 'non_di': False,
                 'top_25': True},
                {'boxscore': '2017-09-02-central-florida',
                 'away_name': 'Florida International',
                 'away_abbr': 'florida-international',
                 'away_score': 17,
                 'away_rank': None,
                 'home_name': 'UCF',
                 'home_abbr': 'central-florida',
                 'home_score': 61,
                 'home_rank': None,
                 'non_di': False,
                 'top_25': False},
                {'boxscore': '2017-09-02-clemson',
                 'away_name': 'Kent State',
                 'away_abbr': 'kent-state',
                 'away_score': 3,
                 'away_rank': None,
                 'home_name': 'Clemson',
                 'home_abbr': 'clemson',
                 'home_score': 56,
                 'home_rank': 5,
                 'non_di': False,
                 'top_25': True},
                {'boxscore': '2017-09-02-coastal-carolina',
                 'away_name': 'Massachusetts',
                 'away_abbr': 'massachusetts',
                 'away_score': 28,
                 'away_rank': None,
                 'home_name': 'Coastal Carolina',
                 'home_abbr': 'coastal-carolina',
                 'home_score': 38,
                 'home_rank': None,
                 'non_di': False,
                 'top_25': False},
                {'boxscore': '2017-09-02-duke',
                 'away_name': 'North Carolina Central',
                 'away_abbr': 'North Carolina Central',
                 'away_score': 7,
                 'away_rank': None,
                 'home_name': 'Duke',
                 'home_abbr': 'duke',
                 'home_score': 60,
                 'home_rank': None,
                 'non_di': True,
                 'top_25': False},
                {'boxscore': '2017-09-02-east-carolina',
                 'away_name': 'James Madison',
                 'away_abbr': 'James Madison',
                 'away_score': 34,
                 'away_rank': None,
                 'home_name': 'East Carolina',
                 'home_abbr': 'east-carolina',
                 'home_score': 14,
                 'home_rank': None,
                 'non_di': True,
                 'top_25': False},
                {'boxscore': '2017-09-02-florida-state',
                 'away_name': 'Alabama',
                 'away_abbr': 'alabama',
                 'away_score': 24,
                 'away_rank': 1,
                 'home_name': 'Florida State',
                 'home_abbr': 'florida-state',
                 'home_score': 7,
                 'home_rank': 3,
                 'non_di': False,
                 'top_25': True},
                {'boxscore': '2017-09-02-fresno-state',
                 'away_name': 'Incarnate Word',
                 'away_abbr': 'Incarnate Word',
                 'away_score': 0,
                 'away_rank': None,
                 'home_name': 'Fresno State',
                 'home_abbr': 'fresno-state',
                 'home_score': 66,
                 'home_rank': None,
                 'non_di': True,
                 'top_25': False},
                {'boxscore': '2017-09-02-georgia',
                 'away_name': 'Appalachian State',
                 'away_abbr': 'appalachian-state',
                 'away_score': 10,
                 'away_rank': None,
                 'home_name': 'Georgia',
                 'home_abbr': 'georgia',
                 'home_score': 31,
                 'home_rank': 15,
                 'non_di': False,
                 'top_25': True},
                {'boxscore': '2017-09-02-hawaii',
                 'away_name': 'Western Carolina',
                 'away_abbr': 'Western Carolina',
                 'away_score': 18,
                 'away_rank': None,
                 'home_name': 'Hawaii',
                 'home_abbr': 'hawaii',
                 'home_score': 41,
                 'home_rank': None,
                 'non_di': True,
                 'top_25': False},
                {'boxscore': '2017-09-02-illinois',
                 'away_name': 'Ball State',
                 'away_abbr': 'ball-state',
                 'away_score': 21,
                 'away_rank': None,
                 'home_name': 'Illinois',
                 'home_abbr': 'illinois',
                 'home_score': 24,
                 'home_rank': None,
                 'non_di': False,
                 'top_25': False},
                {'boxscore': '2017-09-02-iowa',
                 'away_name': 'Wyoming',
                 'away_abbr': 'wyoming',
                 'away_score': 3,
                 'away_rank': None,
                 'home_name': 'Iowa',
                 'home_abbr': 'iowa',
                 'home_score': 24,
                 'home_rank': None,
                 'non_di': False,
                 'top_25': False},
                {'boxscore': '2017-09-02-iowa-state',
                 'away_name': 'Northern Iowa',
                 'away_abbr': 'Northern Iowa',
                 'away_score': 24,
                 'away_rank': None,
                 'home_name': 'Iowa State',
                 'home_abbr': 'iowa-state',
                 'home_score': 42,
                 'home_rank': None,
                 'non_di': True,
                 'top_25': False},
                {'boxscore': '2017-09-02-kansas',
                 'away_name': 'Southeast Missouri State',
                 'away_abbr': 'Southeast Missouri State',
                 'away_score': 16,
                 'away_rank': None,
                 'home_name': 'Kansas',
                 'home_abbr': 'kansas',
                 'home_score': 38,
                 'home_rank': None,
                 'non_di': True,
                 'top_25': False},
                {'boxscore': '2017-09-02-kansas-state',
                 'away_name': 'Central Arkansas',
                 'away_abbr': 'Central Arkansas',
                 'away_score': 19,
                 'away_rank': None,
                 'home_name': 'Kansas State',
                 'home_abbr': 'kansas-state',
                 'home_score': 55,
                 'home_rank': 20,
                 'non_di': True,
                 'top_25': True},
                {'boxscore': '2017-09-02-louisiana-lafayette',
                 'away_name': 'Southeastern Louisiana',
                 'away_abbr': 'Southeastern Louisiana',
                 'away_score': 48,
                 'away_rank': None,
                 'home_name': 'Louisiana',
                 'home_abbr': 'louisiana-lafayette',
                 'home_score': 51,
                 'home_rank': None,
                 'non_di': True,
                 'top_25': False},
                {'boxscore': '2017-09-02-louisiana-tech',
                 'away_name': 'Northwestern State',
                 'away_abbr': 'Northwestern State',
                 'away_score': 24,
                 'away_rank': None,
                 'home_name': 'Louisiana Tech',
                 'home_abbr': 'louisiana-tech',
                 'home_score': 52,
                 'home_rank': None,
                 'non_di': True,
                 'top_25': False},
                {'boxscore': '2017-09-02-marshall',
                 'away_name': 'Miami (OH)',
                 'away_abbr': 'miami-oh',
                 'away_score': 26,
                 'away_rank': None,
                 'home_name': 'Marshall',
                 'home_abbr': 'marshall',
                 'home_score': 31,
                 'home_rank': None,
                 'non_di': False,
                 'top_25': False},
                {'boxscore': '2017-09-02-miami-fl',
                 'away_name': 'Bethune-Cookman',
                 'away_abbr': 'Bethune-Cookman',
                 'away_score': 13,
                 'away_rank': None,
                 'home_name': 'Miami (FL)',
                 'home_abbr': 'miami-fl',
                 'home_score': 41,
                 'home_rank': 18,
                 'non_di': True,
                 'top_25': True},
                {'boxscore': '2017-09-02-michigan',
                 'away_name': 'Florida',
                 'away_abbr': 'florida',
                 'away_score': 17,
                 'away_rank': 17,
                 'home_name': 'Michigan',
                 'home_abbr': 'michigan',
                 'home_score': 33,
                 'home_rank': 11,
                 'non_di': False,
                 'top_25': True},
                {'boxscore': '2017-09-02-michigan-state',
                 'away_name': 'Bowling Green State',
                 'away_abbr': 'bowling-green-state',
                 'away_score': 10,
                 'away_rank': None,
                 'home_name': 'Michigan State',
                 'home_abbr': 'michigan-state',
                 'home_score': 35,
                 'home_rank': None,
                 'non_di': False,
                 'top_25': False},
                {'boxscore': '2017-09-02-middle-tennessee-state',
                 'away_name': 'Vanderbilt',
                 'away_abbr': 'vanderbilt',
                 'away_score': 28,
                 'away_rank': None,
                 'home_name': 'Middle Tennessee State',
                 'home_abbr': 'middle-tennessee-state',
                 'home_score': 6,
                 'home_rank': None,
                 'non_di': False,
                 'top_25': False},
                {'boxscore': '2017-09-02-mississippi',
                 'away_name': 'South Alabama',
                 'away_abbr': 'south-alabama',
                 'away_score': 27,
                 'away_rank': None,
                 'home_name': 'Ole Miss',
                 'home_abbr': 'mississippi',
                 'home_score': 47,
                 'home_rank': None,
                 'non_di': False,
                 'top_25': False},
                {'boxscore': '2017-09-02-mississippi-state',
                 'away_name': 'Charleston Southern',
                 'away_abbr': 'Charleston Southern',
                 'away_score': 0,
                 'away_rank': None,
                 'home_name': 'Mississippi State',
                 'home_abbr': 'mississippi-state',
                 'home_score': 49,
                 'home_rank': None,
                 'non_di': True,
                 'top_25': False},
                {'boxscore': '2017-09-02-missouri',
                 'away_name': 'Missouri State',
                 'away_abbr': 'Missouri State',
                 'away_score': 43,
                 'away_rank': None,
                 'home_name': 'Missouri',
                 'home_abbr': 'missouri',
                 'home_score': 72,
                 'home_rank': None,
                 'non_di': True,
                 'top_25': False},
                {'boxscore': '2017-09-02-nebraska',
                 'away_name': 'Arkansas State',
                 'away_abbr': 'arkansas-state',
                 'away_score': 36,
                 'away_rank': None,
                 'home_name': 'Nebraska',
                 'home_abbr': 'nebraska',
                 'home_score': 43,
                 'home_rank': None,
                 'non_di': False,
                 'top_25': False},
                {'boxscore': '2017-09-02-nevada-las-vegas',
                 'away_name': 'Howard',
                 'away_abbr': 'Howard',
                 'away_score': 43,
                 'away_rank': None,
                 'home_name': 'UNLV',
                 'home_abbr': 'nevada-las-vegas',
                 'home_score': 40,
                 'home_rank': None,
                 'non_di': True,
                 'top_25': False},
                {'boxscore': '2017-09-02-new-mexico',
                 'away_name': 'Abilene Christian',
                 'away_abbr': 'Abilene Christian',
                 'away_score': 14,
                 'away_rank': None,
                 'home_name': 'New Mexico',
                 'home_abbr': 'new-mexico',
                 'home_score': 38,
                 'home_rank': None,
                 'non_di': True,
                 'top_25': False},
                {'boxscore': '2017-09-02-north-carolina',
                 'away_name': 'California',
                 'away_abbr': 'california',
                 'away_score': 35,
                 'away_rank': None,
                 'home_name': 'North Carolina',
                 'home_abbr': 'north-carolina',
                 'home_score': 30,
                 'home_rank': None,
                 'non_di': False,
                 'top_25': False},
                {'boxscore': '2017-09-02-north-carolina-state',
                 'away_name': 'South Carolina',
                 'away_abbr': 'south-carolina',
                 'away_score': 35,
                 'away_rank': None,
                 'home_name': 'North Carolina State',
                 'home_abbr': 'north-carolina-state',
                 'home_score': 28,
                 'home_rank': None,
                 'non_di': False,
                 'top_25': False},
                {'boxscore': '2017-09-02-north-texas',
                 'away_name': 'Lamar',
                 'away_abbr': 'Lamar',
                 'away_score': 14,
                 'away_rank': None,
                 'home_name': 'North Texas',
                 'home_abbr': 'north-texas',
                 'home_score': 59,
                 'home_rank': None,
                 'non_di': True,
                 'top_25': False},
                {'boxscore': '2017-09-02-northwestern',
                 'away_name': 'Nevada',
                 'away_abbr': 'nevada',
                 'away_score': 20,
                 'away_rank': None,
                 'home_name': 'Northwestern',
                 'home_abbr': 'northwestern',
                 'home_score': 31,
                 'home_rank': None,
                 'non_di': False,
                 'top_25': False},
                {'boxscore': '2017-09-02-notre-dame',
                 'away_name': 'Temple',
                 'away_abbr': 'temple',
                 'away_score': 16,
                 'away_rank': None,
                 'home_name': 'Notre Dame',
                 'home_abbr': 'notre-dame',
                 'home_score': 49,
                 'home_rank': None,
                 'non_di': False,
                 'top_25': False},
                {'boxscore': '2017-09-02-ohio',
                 'away_name': 'Hampton',
                 'away_abbr': 'Hampton',
                 'away_score': 0,
                 'away_rank': None,
                 'home_name': 'Ohio',
                 'home_abbr': 'ohio',
                 'home_score': 59,
                 'home_rank': None,
                 'non_di': True,
                 'top_25': False},
                {'boxscore': '2017-09-02-oklahoma',
                 'away_name': 'UTEP',
                 'away_abbr': 'texas-el-paso',
                 'away_score': 7,
                 'away_rank': None,
                 'home_name': 'Oklahoma',
                 'home_abbr': 'oklahoma',
                 'home_score': 56,
                 'home_rank': 7,
                 'non_di': False,
                 'top_25': True},
                {'boxscore': '2017-09-02-old-dominion',
                 'away_name': 'Albany',
                 'away_abbr': 'Albany',
                 'away_score': 17,
                 'away_rank': None,
                 'home_name': 'Old Dominion',
                 'home_abbr': 'old-dominion',
                 'home_score': 31,
                 'home_rank': None,
                 'non_di': True,
                 'top_25': False},
                {'boxscore': '2017-09-02-oregon',
                 'away_name': 'Southern Utah',
                 'away_abbr': 'Southern Utah',
                 'away_score': 21,
                 'away_rank': None,
                 'home_name': 'Oregon',
                 'home_abbr': 'oregon',
                 'home_score': 77,
                 'home_rank': None,
                 'non_di': True,
                 'top_25': False},
                {'boxscore': '2017-09-02-oregon-state',
                 'away_name': 'Portland State',
                 'away_abbr': 'Portland State',
                 'away_score': 32,
                 'away_rank': None,
                 'home_name': 'Oregon State',
                 'home_abbr': 'oregon-state',
                 'home_score': 35,
                 'home_rank': None,
                 'non_di': True,
                 'top_25': False},
                {'boxscore': '2017-09-02-penn-state',
                 'away_name': 'Akron',
                 'away_abbr': 'akron',
                 'away_score': 0,
                 'away_rank': None,
                 'home_name': 'Penn State',
                 'home_abbr': 'penn-state',
                 'home_score': 52,
                 'home_rank': 6,
                 'non_di': False,
                 'top_25': True},
                {'boxscore': '2017-09-02-pittsburgh',
                 'away_name': 'Youngstown State',
                 'away_abbr': 'Youngstown State',
                 'away_score': 21,
                 'away_rank': None,
                 'home_name': 'Pitt',
                 'home_abbr': 'pittsburgh',
                 'home_score': 28,
                 'home_rank': None,
                 'non_di': True,
                 'top_25': False},
                {'boxscore': '2017-09-02-purdue',
                 'away_name': 'Louisville',
                 'away_abbr': 'louisville',
                 'away_score': 35,
                 'away_rank': 16,
                 'home_name': 'Purdue',
                 'home_abbr': 'purdue',
                 'home_score': 28,
                 'home_rank': None,
                 'non_di': False,
                 'top_25': True},
                {'boxscore': '2017-09-02-san-diego-state',
                 'away_name': 'California-Davis',
                 'away_abbr': 'California-Davis',
                 'away_score': 17,
                 'away_rank': None,
                 'home_name': 'San Diego State',
                 'home_abbr': 'san-diego-state',
                 'home_score': 38,
                 'home_rank': None,
                 'non_di': True,
                 'top_25': False},
                {'boxscore': '2017-09-02-san-jose-state',
                 'away_name': 'Cal Poly',
                 'away_abbr': 'Cal Poly',
                 'away_score': 13,
                 'away_rank': None,
                 'home_name': 'San Jose State',
                 'home_abbr': 'san-jose-state',
                 'home_score': 34,
                 'home_rank': None,
                 'non_di': True,
                 'top_25': False},
                {'boxscore': '2017-09-02-south-florida',
                 'away_name': 'Stony Brook',
                 'away_abbr': 'Stony Brook',
                 'away_score': 17,
                 'away_rank': None,
                 'home_name': 'South Florida',
                 'home_abbr': 'south-florida',
                 'home_score': 31,
                 'home_rank': 19,
                 'non_di': True,
                 'top_25': True},
                {'boxscore': '2017-09-02-southern-california',
                 'away_name': 'Western Michigan',
                 'away_abbr': 'western-michigan',
                 'away_score': 31,
                 'away_rank': None,
                 'home_name': 'USC',
                 'home_abbr': 'southern-california',
                 'home_score': 49,
                 'home_rank': 4,
                 'non_di': False,
                 'top_25': True},
                {'boxscore': '2017-09-02-southern-methodist',
                 'away_name': 'Stephen F. Austin',
                 'away_abbr': 'Stephen F. Austin',
                 'away_score': 14,
                 'away_rank': None,
                 'home_name': 'SMU',
                 'home_abbr': 'southern-methodist',
                 'home_score': 58,
                 'home_rank': None,
                 'non_di': True,
                 'top_25': False},
                {'boxscore': '2017-09-02-southern-mississippi',
                 'away_name': 'Kentucky',
                 'away_abbr': 'kentucky',
                 'away_score': 24,
                 'away_rank': None,
                 'home_name': 'Southern Mississippi',
                 'home_abbr': 'southern-mississippi',
                 'home_score': 17,
                 'home_rank': None,
                 'non_di': False,
                 'top_25': False},
                {'boxscore': '2017-09-02-texas',
                 'away_name': 'Maryland',
                 'away_abbr': 'maryland',
                 'away_score': 51,
                 'away_rank': None,
                 'home_name': 'Texas',
                 'home_abbr': 'texas',
                 'home_score': 41,
                 'home_rank': 23,
                 'non_di': False,
                 'top_25': True},
                {'boxscore': '2017-09-02-texas-christian',
                 'away_name': 'Jackson State',
                 'away_abbr': 'Jackson State',
                 'away_score': 0,
                 'away_rank': None,
                 'home_name': 'Texas Christian',
                 'home_abbr': 'texas-christian',
                 'home_score': 63,
                 'home_rank': None,
                 'non_di': True,
                 'top_25': False},
                {'boxscore': '2017-09-02-texas-state',
                 'away_name': '',
                 'away_abbr': '',
                 'away_score': 11,
                 'away_rank': None,
                 'home_name': 'Texas State',
                 'home_abbr': 'texas-state',
                 'home_score': 20,
                 'home_rank': None,
                 'non_di': True,
                 'top_25': False},
                {'boxscore': '2017-09-02-texas-tech',
                 'away_name': 'Eastern Washington',
                 'away_abbr': 'Eastern Washington',
                 'away_score': 10,
                 'away_rank': None,
                 'home_name': 'Texas Tech',
                 'home_abbr': 'texas-tech',
                 'home_score': 56,
                 'home_rank': None,
                 'non_di': True,
                 'top_25': False},
                {'boxscore': '2017-09-02-tulane',
                 'away_name': 'Grambling State',
                 'away_abbr': 'Grambling State',
                 'away_score': 14,
                 'away_rank': None,
                 'home_name': 'Tulane',
                 'home_abbr': 'tulane',
                 'home_score': 43,
                 'home_rank': None,
                 'non_di': True,
                 'top_25': False},
                {'boxscore': '2017-09-02-virginia',
                 'away_name': 'William & Mary',
                 'away_abbr': 'William & Mary',
                 'away_score': 10,
                 'away_rank': None,
                 'home_name': 'Virginia',
                 'home_abbr': 'virginia',
                 'home_score': 28,
                 'home_rank': None,
                 'non_di': True,
                 'top_25': False},
                {'boxscore': '2017-09-02-washington-state',
                 'away_name': 'Montana State',
                 'away_abbr': 'Montana State',
                 'away_score': 0,
                 'away_rank': None,
                 'home_name': 'Washington State',
                 'home_abbr': 'washington-state',
                 'home_score': 31,
                 'home_rank': 24,
                 'non_di': True,
                 'top_25': True},
                {'boxscore': '2017-09-02-western-kentucky',
                 'away_name': 'Eastern Kentucky',
                 'away_abbr': 'Eastern Kentucky',
                 'away_score': 17,
                 'away_rank': None,
                 'home_name': 'Western Kentucky',
                 'home_abbr': 'western-kentucky',
                 'home_score': 31,
                 'home_rank': None,
                 'non_di': True,
                 'top_25': False},
                {'boxscore': '2017-09-01-army',
                 'away_name': 'Fordham',
                 'away_abbr': 'Fordham',
                 'away_score': 6,
                 'away_rank': None,
                 'home_name': 'Army',
                 'home_abbr': 'army',
                 'home_score': 64,
                 'home_rank': None,
                 'non_di': True,
                 'top_25': False},
                {'boxscore': '2017-09-01-colorado',
                 'away_name': 'Colorado State',
                 'away_abbr': 'colorado-state',
                 'away_score': 3,
                 'away_rank': None,
                 'home_name': 'Colorado',
                 'home_abbr': 'colorado',
                 'home_score': 17,
                 'home_rank': None,
                 'non_di': False,
                 'top_25': False},
                {'boxscore': '2017-09-01-eastern-michigan',
                 'away_name': 'Charlotte',
                 'away_abbr': 'charlotte',
                 'away_score': 7,
                 'away_rank': None,
                 'home_name': 'Eastern Michigan',
                 'home_abbr': 'eastern-michigan',
                 'home_score': 24,
                 'home_rank': None,
                 'non_di': False,
                 'top_25': False},
                {'boxscore': '2017-09-01-florida-atlantic',
                 'away_name': 'Navy',
                 'away_abbr': 'navy',
                 'away_score': 42,
                 'away_rank': None,
                 'home_name': 'Florida Atlantic',
                 'home_abbr': 'florida-atlantic',
                 'home_score': 19,
                 'home_rank': None,
                 'non_di': False,
                 'top_25': False},
                {'boxscore': '2017-09-01-northern-illinois',
                 'away_name': 'Boston College',
                 'away_abbr': 'boston-college',
                 'away_score': 23,
                 'away_rank': None,
                 'home_name': 'Northern Illinois',
                 'home_abbr': 'northern-illinois',
                 'home_score': 20,
                 'home_rank': None,
                 'non_di': False,
                 'top_25': False},
                {'boxscore': '2017-09-01-rutgers',
                 'away_name': 'Washington',
                 'away_abbr': 'washington',
                 'away_score': 30,
                 'away_rank': 8,
                 'home_name': 'Rutgers',
                 'home_abbr': 'rutgers',
                 'home_score': 14,
                 'home_rank': None,
                 'non_di': False,
                 'top_25': True},
                {'boxscore': '2017-09-01-syracuse',
                 'away_name': 'Central Connecticut State',
                 'away_abbr': 'Central Connecticut State',
                 'away_score': 7,
                 'away_rank': None,
                 'home_name': 'Syracuse',
                 'home_abbr': 'syracuse',
                 'home_score': 50,
                 'home_rank': None,
                 'non_di': True,
                 'top_25': False},
                {'boxscore': '2017-09-01-wisconsin',
                 'away_name': 'Utah State',
                 'away_abbr': 'utah-state',
                 'away_score': 10,
                 'away_rank': None,
                 'home_name': 'Wisconsin',
                 'home_abbr': 'wisconsin',
                 'home_score': 59,
                 'home_rank': 9,
                 'non_di': False,
                 'top_25': True}
            ]
        }
        result = Boxscores(datetime(2017, 8, 30), datetime(2017, 8, 31)).games

        assert result == expected

pandas.DataFrame pandas.concat