Exemple #1
0
def create_test_data(vig_app):
    """Initialize DB with data to verify test functions in test_brooks_pitchfx module."""
    update_scraped_bbref_games_for_date(vig_app, GAME_DATE)
    update_scraped_brooks_games_for_date(vig_app, GAME_DATE)
    update_scraped_boxscore(vig_app, BBREF_GAME_ID)
    update_scraped_pitch_logs(vig_app, GAME_DATE, BBREF_GAME_ID)
    return True
Exemple #2
0
def create_test_data(vig_app):
    """Initialize DB with data to verify test functions in test_with_single_game package."""
    vig_app.initialize_database(csv_folder=CSV_FOLDER, json_folder=JSON_FOLDER)
    assert vig_app.db_setup_complete
    update_scraped_bbref_games_for_date(vig_app, GAME_DATE)
    update_scraped_brooks_games_for_date(vig_app, GAME_DATE)
    update_scraped_boxscore(vig_app, BBREF_GAME_ID)
    update_scraped_pitch_logs(vig_app, GAME_DATE, BBREF_GAME_ID)
    update_scraped_pitchfx_logs(vig_app, BB_GAME_ID)
    combine_data_result_dict = CombineScrapedDataTask(vig_app).execute(
        BBREF_GAME_ID, APPPLY_PATCH_LIST)
    assert combine_data_result_dict["gather_scraped_data_success"]
    add_to_db_result = AddToDatabaseTask(vig_app).execute(2019)
    assert add_to_db_result.success
    return True
def vig_app(request):
    """Returns an instance of the application configured to use the test DB and test config file."""
    app = Vigorish()
    app.initialize_database(csv_folder=CSV_FOLDER)
    assert app.db_setup_complete
    update_scraped_bbref_games_for_date(app, GAME_DATE)
    update_scraped_brooks_games_for_date(app, GAME_DATE)
    update_scraped_boxscore(app, BBREF_GAME_ID)
    update_scraped_pitch_logs(app, GAME_DATE, BBREF_GAME_ID)
    update_scraped_pitchfx_logs(app, BB_GAME_ID)
    CombineScrapedDataTask(app).execute(BBREF_GAME_ID, APPLY_PATCH_LIST)
    app.db_session.commit()

    def fin():
        app.db_session.close()
        for file in TESTS_FOLDER.glob("vig_*.db"):
            file.unlink()

    request.addfinalizer(fin)
    return app
def test_patch_bbref_games_for_date(vig_app):
    invalid_game_id = "MIL201709150"
    patched_game_id = "MIA201709150"
    update_scraped_bbref_games_for_date(vig_app, PATCH_BR_DAILY_GAME_DATE)

    games_for_date_no_patch = update_scraped_brooks_games_for_date(
        vig_app, PATCH_BR_DAILY_GAME_DATE, apply_patch_list=False)
    assert games_for_date_no_patch
    assert games_for_date_no_patch.game_count == 14
    bbref_game_ids_no_patch = [
        game_info.bbref_game_id for game_info in games_for_date_no_patch.games
    ]
    assert invalid_game_id not in bbref_game_ids_no_patch
    assert patched_game_id not in bbref_game_ids_no_patch
    invalid_game_id_status = GameScrapeStatus.find_by_bbref_game_id(
        vig_app.db_session, invalid_game_id)
    assert not invalid_game_id_status
    patched_game_id_status = GameScrapeStatus.find_by_bbref_game_id(
        vig_app.db_session, patched_game_id)
    assert not patched_game_id_status

    games_for_date_patched = update_scraped_brooks_games_for_date(
        vig_app, PATCH_BR_DAILY_GAME_DATE, apply_patch_list=True)
    assert games_for_date_patched
    assert games_for_date_patched.game_count == 15
    bbref_game_ids_patched = [
        game_info.bbref_game_id for game_info in games_for_date_patched.games
    ]
    assert invalid_game_id not in bbref_game_ids_patched
    assert patched_game_id in bbref_game_ids_patched
    invalid_game_id_status = GameScrapeStatus.find_by_bbref_game_id(
        vig_app.db_session, invalid_game_id)
    assert not invalid_game_id_status
    patched_game_id_status = GameScrapeStatus.find_by_bbref_game_id(
        vig_app.db_session, patched_game_id)
    assert patched_game_id_status and patched_game_id_status.bbref_game_id == patched_game_id
def create_test_data(vig_app):
    """Initialize DB with data to verify test functions in test_bbref_boxscores module."""
    update_scraped_bbref_games_for_date(vig_app, GAME_DATE)
    update_scraped_brooks_games_for_date(vig_app, GAME_DATE)
    return True
def test_patch_brooks_games_for_date(vig_app):
    bbref_games_for_date_no_patch = update_scraped_bbref_games_for_date(vig_app, PATCH_BB_DAILY_GAME_DATE)
    brooks_games_for_date_no_patch = update_scraped_brooks_games_for_date(vig_app, PATCH_BB_DAILY_GAME_DATE)
    assert bbref_games_for_date_no_patch.game_count != brooks_games_for_date_no_patch.game_count

    game_ids_only_brooks_no_patch = list(
        set(brooks_games_for_date_no_patch.all_bbref_game_ids) - set(bbref_games_for_date_no_patch.all_bbref_game_ids)
    )
    assert len(game_ids_only_brooks_no_patch) == 2
    assert INVALID_BR_GAME_ID1 in game_ids_only_brooks_no_patch
    assert INVALID_BR_GAME_ID2 in game_ids_only_brooks_no_patch

    game_ids_only_bbref_no_patch = list(
        set(bbref_games_for_date_no_patch.all_bbref_game_ids) - set(brooks_games_for_date_no_patch.all_bbref_game_ids)
    )
    assert len(game_ids_only_bbref_no_patch) == 1
    assert PATCHED_BR_GAME_ID1 in game_ids_only_bbref_no_patch

    plogs_for_game_1_no_patch = update_scraped_pitch_logs(
        vig_app, PATCH_BB_DAILY_GAME_DATE, INVALID_BR_GAME_ID1, apply_patch_list=False
    )
    assert plogs_for_game_1_no_patch.bbref_game_id == INVALID_BR_GAME_ID1
    assert plogs_for_game_1_no_patch.pitch_log_count == 10
    assert all(plog.parsed_all_info for plog in plogs_for_game_1_no_patch.pitch_logs)

    pitch_apps_for_game_1_no_patch = (
        vig_app.db_session.query(PitchAppScrapeStatus).filter_by(bbref_game_id=INVALID_BR_GAME_ID1).all()
    )
    assert len(pitch_apps_for_game_1_no_patch) == 10

    game_status_invalid_game_id = GameScrapeStatus.find_by_bbref_game_id(vig_app.db_session, INVALID_BR_GAME_ID1)
    assert game_status_invalid_game_id

    plogs_for_game_2_no_patch = update_scraped_pitch_logs(
        vig_app, PATCH_BB_DAILY_GAME_DATE, INVALID_BR_GAME_ID2, apply_patch_list=False
    )
    assert plogs_for_game_2_no_patch.bbref_game_id == INVALID_BR_GAME_ID2
    assert plogs_for_game_2_no_patch.pitch_log_count == 8
    assert all(not plog.parsed_all_info for plog in plogs_for_game_2_no_patch.pitch_logs)

    pitch_apps_for_game_2_no_patch = (
        vig_app.db_session.query(PitchAppScrapeStatus).filter_by(bbref_game_id=INVALID_BR_GAME_ID2).all()
    )
    assert len(pitch_apps_for_game_2_no_patch) == 8

    game_status_remove_game_id = GameScrapeStatus.find_by_bbref_game_id(vig_app.db_session, INVALID_BR_GAME_ID2)
    assert game_status_remove_game_id

    patch_invalid_bbref_game_id = PatchBrooksGamesForDateBBRefGameID(
        game_date=PATCH_BB_DAILY_GAME_DATE.strftime(DATE_ONLY),
        invalid_bbref_game_id=INVALID_BR_GAME_ID1,
        valid_bbref_game_id=PATCHED_BR_GAME_ID1,
    )
    patch_remove_game_id = PatchBrooksGamesForDateRemoveGame(
        game_date=PATCH_BB_DAILY_GAME_DATE.strftime(DATE_ONLY),
        remove_bbref_game_id=INVALID_BR_GAME_ID2,
    )
    patch_list = BrooksGamesForDatePatchList(
        patch_list=[patch_invalid_bbref_game_id, patch_remove_game_id],
        url_id=PATCH_BB_DAILY_GAME_DATE.strftime(DATE_ONLY),
    )

    result = vig_app.scraped_data.save_patch_list(DataSet.BROOKS_GAMES_FOR_DATE, patch_list)
    assert result.success
    saved_file_dict = result.value
    patch_list_filepath = saved_file_dict["local_filepath"]
    assert patch_list_filepath.exists()
    assert patch_list_filepath.name == "brooks_games_for_date_2017-05-26_PATCH_LIST.json"

    bbref_games_for_date_patched = vig_app.scraped_data.get_bbref_games_for_date(PATCH_BB_DAILY_GAME_DATE)
    brooks_games_for_date_patched = vig_app.scraped_data.get_bbref_games_for_date(PATCH_BB_DAILY_GAME_DATE)
    assert bbref_games_for_date_patched.game_count == brooks_games_for_date_patched.game_count
    assert brooks_games_for_date_patched.all_bbref_game_ids == bbref_games_for_date_patched.all_bbref_game_ids

    plogs_for_game_1_patched = update_scraped_pitch_logs(
        vig_app, PATCH_BB_DAILY_GAME_DATE, PATCHED_BR_GAME_ID1, apply_patch_list=True
    )
    assert plogs_for_game_1_patched.bbref_game_id == PATCHED_BR_GAME_ID1
    assert plogs_for_game_1_patched.pitch_log_count == 10
    assert all(plog.parsed_all_info for plog in plogs_for_game_1_patched.pitch_logs)

    pitch_apps_for_game_1_patched = (
        vig_app.db_session.query(PitchAppScrapeStatus).filter_by(bbref_game_id=PATCHED_BR_GAME_ID1).all()
    )
    pitch_apps_for_game_1_invalid_id = (
        vig_app.db_session.query(PitchAppScrapeStatus).filter_by(bbref_game_id=INVALID_BR_GAME_ID1).all()
    )
    pitch_apps_for_game_2_invalid_id = (
        vig_app.db_session.query(PitchAppScrapeStatus).filter_by(bbref_game_id=INVALID_BR_GAME_ID2).all()
    )
    assert len(pitch_apps_for_game_1_patched) == 10
    assert not pitch_apps_for_game_1_invalid_id
    assert not pitch_apps_for_game_2_invalid_id

    game_status_patched_game_id = GameScrapeStatus.find_by_bbref_game_id(vig_app.db_session, PATCHED_BR_GAME_ID1)
    game_status_invalid_game_id = GameScrapeStatus.find_by_bbref_game_id(vig_app.db_session, INVALID_BR_GAME_ID1)
    game_status_remove_game_id = GameScrapeStatus.find_by_bbref_game_id(vig_app.db_session, INVALID_BR_GAME_ID2)
    assert game_status_patched_game_id
    assert not game_status_invalid_game_id
    assert not game_status_remove_game_id