Beispiel #1
0
    def test_pitching_stats(self, response_get_monkeypatch: Callable,
                            test_pitching_stats_html: str,
                            test_pitching_stats_result: pd.DataFrame):
        season = 2019

        query_params = urllib.parse.urlencode(
            {
                'pos': 'all',
                'stats': 'pit',
                'lg': 'all',
                'qual': 'y',
                'type': stat_list_to_str(FangraphsPitchingStats.ALL()),
                'season': season,
                'month': 0,
                'season1': season,
                'ind': '1',
                'team': '',
                'rost': '0',
                'age': f"{MIN_AGE},{MAX_AGE}",
                'filter': '',
                'players': '',
                'page': f'1_1000000'
            },
            safe=',')

        expected_url = f"{_FG_LEADERS_URL}?{query_params}"

        response_get_monkeypatch(test_pitching_stats_html, expected_url)

        pitching_stats_result = fg_pitching_data(season).reset_index(drop=True)

        pd.testing.assert_frame_equal(pitching_stats_result,
                                      test_pitching_stats_result)
Beispiel #2
0
    def test_fg_pitching_data_qual(self) -> None:
        data = fg_pitching_data(2019,
                                qual=210,
                                max_results=self.DEFAULT_MAX_RESULTS)

        assert data is not None
        assert not data.empty
        assert len(data.columns) == self.ALL_DATA_COLUMNS_COUNT
        assert len(data.index) == 4
Beispiel #3
0
    def test_fg_pitching_data_multiple_stat_columns(self) -> None:
        data = fg_pitching_data(2019,
                                stat_columns=['ERA', 'BB'],
                                max_results=self.DEFAULT_MAX_RESULTS)

        assert data is not None
        assert not data.empty
        assert len(data.columns) == 6
        assert len(data.index) == self.DEFAULT_MAX_RESULTS
Beispiel #4
0
    def test_fg_pitching_data_max_results(self) -> None:
        season = 2019

        data = fg_pitching_data(season)

        assert data is not None
        assert not data.empty
        assert len(data.columns) == self.ALL_DATA_COLUMNS_COUNT
        assert len(data.index) == 61
Beispiel #5
0
    def test_fg_pitching_data_on_active_roster(self,
                                               assert_frame_not_equal) -> None:
        data = fg_pitching_data(2018, max_results=self.DEFAULT_MAX_RESULTS)

        assert data is not None
        assert not data.empty
        assert len(data.columns) == self.ALL_DATA_COLUMNS_COUNT
        assert len(data.index) == self.DEFAULT_MAX_RESULTS

        oar_data = fg_pitching_data(2018,
                                    on_active_roster=True,
                                    max_results=self.DEFAULT_MAX_RESULTS)

        assert oar_data is not None
        assert not oar_data.empty
        assert len(oar_data.columns) == self.ALL_DATA_COLUMNS_COUNT
        assert len(oar_data.index) == self.DEFAULT_MAX_RESULTS

        assert_frame_not_equal(data, oar_data)
Beispiel #6
0
    def test_fg_pitching_data_league(self, assert_frame_not_equal) -> None:
        data_al = fg_pitching_data(2019,
                                   league='AL',
                                   max_results=self.DEFAULT_MAX_RESULTS)

        assert data_al is not None
        assert not data_al.empty
        assert len(data_al.columns) == self.ALL_DATA_COLUMNS_COUNT
        assert len(data_al.index) == self.DEFAULT_MAX_RESULTS

        data_nl = fg_pitching_data(2019,
                                   league='NL',
                                   max_results=self.DEFAULT_MAX_RESULTS)

        assert data_nl is not None
        assert not data_nl.empty
        assert len(data_nl.columns) == self.ALL_DATA_COLUMNS_COUNT
        assert len(data_nl.index) == self.DEFAULT_MAX_RESULTS

        assert assert_frame_not_equal(data_al, data_nl)
Beispiel #7
0
    def test_fg_pitching_data_end_season_no_split_season(self) -> None:
        data = fg_pitching_data(2018,
                                end_season=2019,
                                split_seasons=False,
                                max_results=self.DEFAULT_MAX_RESULTS)

        assert data is not None
        assert not data.empty
        assert len(data.columns) == self.ALL_DATA_COLUMNS_COUNT - 1
        assert 'Season' not in data.columns
        assert len(data.index) == self.DEFAULT_MAX_RESULTS
Beispiel #8
0
    def test_fg_pitching_team(self, assert_frame_not_equal) -> None:
        data_1 = fg_pitching_data(2019,
                                  team='3',
                                  max_results=self.DEFAULT_MAX_RESULTS)

        assert data_1 is not None
        assert not data_1.empty
        assert len(data_1.columns) == self.ALL_DATA_COLUMNS_COUNT - 1
        assert 'Team' not in data_1.columns
        assert len(data_1.index) == 2

        data_2 = fg_pitching_data(2019,
                                  team='4',
                                  max_results=self.DEFAULT_MAX_RESULTS)

        assert data_2 is not None
        assert not data_2.empty
        assert len(data_2.columns) == self.ALL_DATA_COLUMNS_COUNT - 1
        assert 'Team' not in data_2.columns
        assert len(data_2.index) == 3

        assert_frame_not_equal(data_1, data_2)
Beispiel #9
0
    def test_fg_pitching_data(self) -> None:
        season = 2019

        data = fg_pitching_data(season, max_results=self.DEFAULT_MAX_RESULTS)

        assert data is not None
        assert not data.empty
        assert len(data.columns) == self.ALL_DATA_COLUMNS_COUNT
        assert len(data.index) == self.DEFAULT_MAX_RESULTS

        seasons = list(set(data['Season']))

        assert len(seasons) == 1
        assert seasons[0] == season
Beispiel #10
0
    def test_fg_pitching_data_future_season(self) -> None:
        season = 3000

        with pytest.raises(ValueError):
            fg_pitching_data(season, max_results=self.DEFAULT_MAX_RESULTS)