TST/CLN: remove TestData from series-tests; replace with fixtures
See original GitHub issueThis 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).
- Create
conftest.py
and translateTestData
-attributes into fixtures and renaming them them as outlined above (#22526) -
test_alter_axes.py
(#22526) -
test_analytics.py
(#22755) -
test_api.py
(#29153) -
test_apply.py
(#22769) -
test_asof.py
(#22772) -
test_combine_concat.py
(#22964) -
test_constructors.py
(#22965) -
test_datetime_values.py
(#22966) -
test_dtypes.py
(#22967) -
test_io.py
(#22972) -
test_missing.py
(#22973) -
test_operators.py
(#29084) -
test_quantile.py
(#29096) -
test_rank.py
(#29101) -
test_replace.py
(#29147) -
test_repr.py
(#29148) -
test_sorting.py
(#29149) -
test_timeseries.py
(#29150) -
test_validate.py
(#22756)
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.
Issue Analytics
- State:
- Created 5 years ago
- Comments:8 (8 by maintainers)
Top GitHub Comments
I created the follow-up issue to remove _common.py for series tests. This one here can be closed @simonjayhawkins ✌️
EDIT: I’ll first need to remove TestData usage in
pandas/tests/series/indexing
test_arithmetic.py
also doesn’t containTestData
, so after merging my pending PRs we can close this issue ✅I guess the next step then would be to remove the
pandas/tests/series/_common.py
altogether