This is the sister-issue for Series of #22471 (for frames), where the review in #22236 requested:
ok, pls open a new issue that refs this, to remove use of TestData in favor of fixtures
For Series, this process is started by #22526 by creating a conftest.py that translates all the current attributes of TestData to fixtures, with the following "translation guide":
ts -> datetime_series
series -> string_series
objSeries -> object_series
empty -> empty_series
Need to incrementally replace their usages in pandas/tests/series/ (example below).
Things for follow-ups:
- Remove other class-based test-methods
- Turn tests from class- to function-based
An example from #22526 - before:
def test_rename_inplace(self):
renamer = lambda x: x.strftime('%Y%m%d')
expected = renamer(self.ts.index[0])
self.ts.rename(renamer, inplace=True)
assert self.ts.index[0] == expected
After:
def test_rename_inplace(self, datetime_series):
renamer = lambda x: x.strftime('%Y%m%d')
expected = renamer(datetime_series.index[0])
datetime_series.rename(renamer, inplace=True)
assert datetime_series.index[0] == expected
Basically, it comes down to replacing all the occurrences of self.<name> with translation_guide[<name>] (and specifying the latter as a parameter to the function).
PS. Note that some fixtures added by #22526 have now been removed by #24885. Please check #24885 which code was removed, in case you should need it for the fixturisation. Alternatively, you can ping me, @jbrockmendel or @jreback.
This is the sister-issue for Series of #22471 (for frames), where the review in #22236 requested:
For Series, this process is started by #22526 by creating a
conftest.pythat translates all the current attributes ofTestDatato fixtures, with the following "translation guide":ts->datetime_seriesseries->string_seriesobjSeries->object_seriesempty->empty_seriesNeed to incrementally replace their usages in
pandas/tests/series/(example below).conftest.pyand translateTestData-attributes into fixtures and renaming them them as outlined above (TST: fixturize series/test_alter_axes.py #22526)test_alter_axes.py(TST: fixturize series/test_alter_axes.py #22526)test_analytics.py(TST: Fixturize series/test_analytics.py #22755)test_api.py(Remove TestData from series-tests test_api.py #29153)test_apply.py(TST: Fixturize series/test_apply.py #22769)test_asof.py(TST: Fixturize series/test_asof.py #22772)test_combine_concat.py(TST: Fixturize series/test_combine_concat.py #22964)test_constructors.py(TST: Fixturize series/test_constructors.py #22965)test_datetime_values.py(TST: Fixturize series/test_datetime_values.py #22966)test_dtypes.py(TST: Fixturize series/test_dtypes.py #22967)test_io.py(TST: Fixturize series/test_io.py #22972)test_missing.py(TST: Fixturize series/test_missing.py #22973)test_operators.py([#22550] Remove TestData from series-tests test_operators.py #29084)test_quantile.py([#22550] Remove TestData from series-tests test_quantile.py #29096)test_rank.py([#22550] Remove TestData from series-tests test_rank.py #29101)test_replace.py(Remove TestData from series-tests test_replace.py #29147)test_repr.py(Remove TestData from series-tests test_repr.py #29148)test_sorting.py(Remove TestData from series-tests test_sorting.py #29149)test_timeseries.py(Remove TestData from series-tests test_timeseries.py #29150)test_validate.py(TST: Fixturize series/test_validate.py #22756)Things for follow-ups:
An example from #22526 - before:
After:
Basically, it comes down to replacing all the occurrences of
self.<name>withtranslation_guide[<name>](and specifying the latter as a parameter to the function).PS. Note that some fixtures added by #22526 have now been removed by #24885. Please check #24885 which code was removed, in case you should need it for the fixturisation. Alternatively, you can ping me, @jbrockmendel or @jreback.