|
18 | 18 |
|
19 | 19 | from pandas.core.dtypes.generic import ABCSeries, ABCDataFrame
|
20 | 20 | from pandas.compat import range, lrange, zip, product, OrderedDict
|
21 |
| -from pandas.core.base import SpecificationError |
| 21 | +from pandas.core.base import SpecificationError, AbstractMethodError |
22 | 22 | from pandas.errors import UnsupportedFunctionCall
|
23 | 23 | from pandas.core.groupby import DataError
|
24 | 24 | from pandas.tseries.frequencies import MONTHS, DAYS
|
@@ -698,32 +698,44 @@ def create_index(self, *args, **kwargs):
|
698 | 698 | factory = self._index_factory()
|
699 | 699 | return factory(*args, **kwargs)
|
700 | 700 |
|
701 |
| - _index_fixture_start = datetime(2005, 1, 1) |
702 |
| - _index_fixture_end = datetime(2005, 1, 10) |
703 |
| - _index_fixture_freq = 'D' |
| 701 | + @pytest.fixture |
| 702 | + def _index_start(self): |
| 703 | + return datetime(2005, 1, 1) |
| 704 | + |
| 705 | + @pytest.fixture |
| 706 | + def _index_end(self): |
| 707 | + return datetime(2005, 1, 10) |
| 708 | + |
| 709 | + @pytest.fixture |
| 710 | + def _index_freq(self): |
| 711 | + return 'D' |
704 | 712 |
|
705 | 713 | @pytest.fixture
|
706 |
| - def index(self): |
707 |
| - return self.create_index(self._index_fixture_start, |
708 |
| - self._index_fixture_end, |
709 |
| - freq=self._index_fixture_freq) |
| 714 | + def index(self, _index_start, _index_end, _index_freq): |
| 715 | + return self.create_index(_index_start, _index_end, freq=_index_freq) |
710 | 716 |
|
711 | 717 | @pytest.fixture
|
712 |
| - def series(self, index): |
713 |
| - return Series(np.arange(len(index)), index=index, |
714 |
| - name=self._series_fixture_name) |
| 718 | + def _series_name(self): |
| 719 | + raise AbstractMethodError(self) |
715 | 720 |
|
716 | 721 | @pytest.fixture
|
717 |
| - def frame(self, index): |
718 |
| - return DataFrame({'value': np.arange(len(index))}, index=index) |
| 722 | + def _static_values(self, index): |
| 723 | + return np.arange(len(index)) |
| 724 | + |
| 725 | + @pytest.fixture |
| 726 | + def series(self, index, _series_name, _static_values): |
| 727 | + return Series(_static_values, index=index, name=_series_name) |
| 728 | + |
| 729 | + @pytest.fixture |
| 730 | + def frame(self, index, _static_values): |
| 731 | + return DataFrame({'value': _static_values}, index=index) |
719 | 732 |
|
720 | 733 | @pytest.fixture(params=[Series, DataFrame])
|
721 |
| - def series_and_frame(self, request, index): |
| 734 | + def series_and_frame(self, request, index, _series_name, _static_values): |
722 | 735 | if request.param == Series:
|
723 |
| - return Series(np.arange(len(index)), index=index, |
724 |
| - name=self._series_fixture_name) |
| 736 | + return Series(_static_values, index=index, name=_series_name) |
725 | 737 | if request.param == DataFrame:
|
726 |
| - return DataFrame({'value': np.arange(len(index))}, index=index) |
| 738 | + return DataFrame({'value': _static_values}, index=index) |
727 | 739 |
|
728 | 740 | @pytest.mark.parametrize('freq', ['2D', '1H'])
|
729 | 741 | def test_asfreq(self, series_and_frame, freq):
|
@@ -876,7 +888,10 @@ def test_apply_to_empty_series(self):
|
876 | 888 |
|
877 | 889 | class TestDatetimeIndex(Base):
|
878 | 890 | _index_factory = lambda x: date_range
|
879 |
| - _series_fixture_name = 'dti' |
| 891 | + |
| 892 | + @pytest.fixture |
| 893 | + def _series_name(self): |
| 894 | + return 'dti' |
880 | 895 |
|
881 | 896 | def setup_method(self, method):
|
882 | 897 | dti = DatetimeIndex(start=datetime(2005, 1, 1),
|
@@ -2225,7 +2240,10 @@ def test_resample_datetime_values(self):
|
2225 | 2240 |
|
2226 | 2241 | class TestPeriodIndex(Base):
|
2227 | 2242 | _index_factory = lambda x: period_range
|
2228 |
| - _series_fixture_name = 'pi' |
| 2243 | + |
| 2244 | + @pytest.fixture |
| 2245 | + def _series_name(self): |
| 2246 | + return 'pi' |
2229 | 2247 |
|
2230 | 2248 | def create_series(self):
|
2231 | 2249 | # TODO: replace calls to .create_series() by injecting the series
|
@@ -2884,9 +2902,18 @@ def test_resample_with_only_nat(self):
|
2884 | 2902 |
|
2885 | 2903 | class TestTimedeltaIndex(Base):
|
2886 | 2904 | _index_factory = lambda x: timedelta_range
|
2887 |
| - _series_fixture_name = 'tdi' |
2888 |
| - _index_fixture_start = '1 day' |
2889 |
| - _index_fixture_end = '10 day' |
| 2905 | + |
| 2906 | + @pytest.fixture |
| 2907 | + def _index_start(self): |
| 2908 | + return '1 day' |
| 2909 | + |
| 2910 | + @pytest.fixture |
| 2911 | + def _index_end(self): |
| 2912 | + return '10 day' |
| 2913 | + |
| 2914 | + @pytest.fixture |
| 2915 | + def _series_name(self): |
| 2916 | + return 'tdi' |
2890 | 2917 |
|
2891 | 2918 | def create_series(self):
|
2892 | 2919 | i = timedelta_range('1 day',
|
|
0 commit comments