Skip to content

Commit 5c67c96

Browse files
TST: extension tests use its own fixtures (#56889)
TST: ensure extension tests use its own fixtures
1 parent 32d29ff commit 5c67c96

14 files changed

+34
-2
lines changed

pandas/tests/extension/base/accumulate.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@ def check_accumulate(self, ser: pd.Series, op_name: str, skipna: bool):
2626
expected = getattr(alt, op_name)(skipna=skipna)
2727
tm.assert_series_equal(result, expected, check_dtype=False)
2828

29+
@pytest.mark.parametrize("skipna", [True, False])
2930
def test_accumulate_series(self, data, all_numeric_accumulations, skipna):
3031
op_name = all_numeric_accumulations
3132
ser = pd.Series(data)

pandas/tests/extension/base/dtype.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -114,6 +114,7 @@ def test_get_common_dtype(self, dtype):
114114
# only case we can test in general)
115115
assert dtype._get_common_dtype([dtype]) == dtype
116116

117+
@pytest.mark.parametrize("skipna", [True, False])
117118
def test_infer_dtype(self, data, data_missing, skipna):
118119
# only testing that this works without raising an error
119120
res = infer_dtype(data, skipna=skipna)

pandas/tests/extension/base/groupby.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,7 @@ def test_grouping_grouper(self, data_for_grouping):
3434
tm.assert_numpy_array_equal(gr1.grouping_vector, df.A.values)
3535
tm.assert_extension_array_equal(gr2.grouping_vector, data_for_grouping)
3636

37+
@pytest.mark.parametrize("as_index", [True, False])
3738
def test_groupby_extension_agg(self, as_index, data_for_grouping):
3839
df = pd.DataFrame({"A": [1, 1, 2, 2, 3, 3, 1, 4], "B": data_for_grouping})
3940

pandas/tests/extension/base/methods.py

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,7 @@ def test_value_counts_default_dropna(self, data):
3737
kwarg = sig.parameters["dropna"]
3838
assert kwarg.default is True
3939

40+
@pytest.mark.parametrize("dropna", [True, False])
4041
def test_value_counts(self, all_data, dropna):
4142
all_data = all_data[:10]
4243
if dropna:
@@ -96,6 +97,7 @@ def test_apply_simple_series(self, data):
9697
result = pd.Series(data).apply(id)
9798
assert isinstance(result, pd.Series)
9899

100+
@pytest.mark.parametrize("na_action", [None, "ignore"])
99101
def test_map(self, data_missing, na_action):
100102
result = data_missing.map(lambda x: x, na_action=na_action)
101103
expected = data_missing.to_numpy()
@@ -211,6 +213,7 @@ def test_nargsort(self, data_missing_for_sorting, na_position, expected):
211213
result = nargsort(data_missing_for_sorting, na_position=na_position)
212214
tm.assert_numpy_array_equal(result, expected)
213215

216+
@pytest.mark.parametrize("ascending", [True, False])
214217
def test_sort_values(self, data_for_sorting, ascending, sort_by_key):
215218
ser = pd.Series(data_for_sorting)
216219
result = ser.sort_values(ascending=ascending, key=sort_by_key)
@@ -224,6 +227,7 @@ def test_sort_values(self, data_for_sorting, ascending, sort_by_key):
224227

225228
tm.assert_series_equal(result, expected)
226229

230+
@pytest.mark.parametrize("ascending", [True, False])
227231
def test_sort_values_missing(
228232
self, data_missing_for_sorting, ascending, sort_by_key
229233
):
@@ -235,6 +239,7 @@ def test_sort_values_missing(
235239
expected = ser.iloc[[0, 2, 1]]
236240
tm.assert_series_equal(result, expected)
237241

242+
@pytest.mark.parametrize("ascending", [True, False])
238243
def test_sort_values_frame(self, data_for_sorting, ascending):
239244
df = pd.DataFrame({"A": [1, 2, 1], "B": data_for_sorting})
240245
result = df.sort_values(["A", "B"])
@@ -243,6 +248,7 @@ def test_sort_values_frame(self, data_for_sorting, ascending):
243248
)
244249
tm.assert_frame_equal(result, expected)
245250

251+
@pytest.mark.parametrize("keep", ["first", "last", False])
246252
def test_duplicated(self, data, keep):
247253
arr = data.take([0, 1, 0, 1])
248254
result = arr.duplicated(keep=keep)

pandas/tests/extension/base/reduce.py

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -77,6 +77,7 @@ def check_reduce_frame(self, ser: pd.Series, op_name: str, skipna: bool):
7777

7878
tm.assert_extension_array_equal(result1, expected)
7979

80+
@pytest.mark.parametrize("skipna", [True, False])
8081
def test_reduce_series_boolean(self, data, all_boolean_reductions, skipna):
8182
op_name = all_boolean_reductions
8283
ser = pd.Series(data)
@@ -95,6 +96,7 @@ def test_reduce_series_boolean(self, data, all_boolean_reductions, skipna):
9596
self.check_reduce(ser, op_name, skipna)
9697

9798
@pytest.mark.filterwarnings("ignore::RuntimeWarning")
99+
@pytest.mark.parametrize("skipna", [True, False])
98100
def test_reduce_series_numeric(self, data, all_numeric_reductions, skipna):
99101
op_name = all_numeric_reductions
100102
ser = pd.Series(data)
@@ -113,6 +115,7 @@ def test_reduce_series_numeric(self, data, all_numeric_reductions, skipna):
113115
# min/max with empty produce numpy warnings
114116
self.check_reduce(ser, op_name, skipna)
115117

118+
@pytest.mark.parametrize("skipna", [True, False])
116119
def test_reduce_frame(self, data, all_numeric_reductions, skipna):
117120
op_name = all_numeric_reductions
118121
ser = pd.Series(data)

pandas/tests/extension/base/setitem.py

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -105,9 +105,10 @@ def test_setitem_sequence_broadcasts(self, data, box_in_series):
105105
assert data[0] == data[2]
106106
assert data[1] == data[2]
107107

108-
def test_setitem_scalar(self, data, indexer_li):
108+
@pytest.mark.parametrize("setter", ["loc", "iloc"])
109+
def test_setitem_scalar(self, data, setter):
109110
arr = pd.Series(data)
110-
setter = indexer_li(arr)
111+
setter = getattr(arr, setter)
111112
setter[0] = data[1]
112113
assert arr[0] == data[1]
113114

pandas/tests/extension/decimal/test_decimal.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -257,6 +257,7 @@ def test_fillna_copy_series(self, data_missing, using_copy_on_write):
257257
with tm.assert_produces_warning(warn, match=msg, check_stacklevel=False):
258258
super().test_fillna_copy_series(data_missing)
259259

260+
@pytest.mark.parametrize("dropna", [True, False])
260261
def test_value_counts(self, all_data, dropna):
261262
all_data = all_data[:10]
262263
if dropna:

pandas/tests/extension/test_arrow.py

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -271,6 +271,7 @@ def test_compare_scalar(self, data, comparison_op):
271271
ser = pd.Series(data)
272272
self._compare_other(ser, data, comparison_op, data[0])
273273

274+
@pytest.mark.parametrize("na_action", [None, "ignore"])
274275
def test_map(self, data_missing, na_action):
275276
if data_missing.dtype.kind in "mM":
276277
result = data_missing.map(lambda x: x, na_action=na_action)
@@ -423,6 +424,7 @@ def _supports_accumulation(self, ser: pd.Series, op_name: str) -> bool:
423424
return False
424425
return True
425426

427+
@pytest.mark.parametrize("skipna", [True, False])
426428
def test_accumulate_series(self, data, all_numeric_accumulations, skipna, request):
427429
pa_type = data.dtype.pyarrow_dtype
428430
op_name = all_numeric_accumulations
@@ -524,6 +526,7 @@ def check_reduce(self, ser: pd.Series, op_name: str, skipna: bool):
524526
expected = getattr(alt, op_name)(skipna=skipna)
525527
tm.assert_almost_equal(result, expected)
526528

529+
@pytest.mark.parametrize("skipna", [True, False])
527530
def test_reduce_series_numeric(self, data, all_numeric_reductions, skipna, request):
528531
dtype = data.dtype
529532
pa_dtype = dtype.pyarrow_dtype
@@ -549,6 +552,7 @@ def test_reduce_series_numeric(self, data, all_numeric_reductions, skipna, reque
549552
request.applymarker(xfail_mark)
550553
super().test_reduce_series_numeric(data, all_numeric_reductions, skipna)
551554

555+
@pytest.mark.parametrize("skipna", [True, False])
552556
def test_reduce_series_boolean(
553557
self, data, all_boolean_reductions, skipna, na_value, request
554558
):
@@ -585,6 +589,7 @@ def _get_expected_reduction_dtype(self, arr, op_name: str, skipna: bool):
585589
}[arr.dtype.kind]
586590
return cmp_dtype
587591

592+
@pytest.mark.parametrize("skipna", [True, False])
588593
def test_reduce_frame(self, data, all_numeric_reductions, skipna, request):
589594
op_name = all_numeric_reductions
590595
if op_name == "skew":
@@ -2325,6 +2330,7 @@ def test_str_extract_expand():
23252330
tm.assert_series_equal(result, expected)
23262331

23272332

2333+
@pytest.mark.parametrize("unit", ["ns", "us", "ms", "s"])
23282334
def test_duration_from_strings_with_nat(unit):
23292335
# GH51175
23302336
strings = ["1000", "NaT"]
@@ -2827,6 +2833,7 @@ def test_dt_components():
28272833
tm.assert_frame_equal(result, expected)
28282834

28292835

2836+
@pytest.mark.parametrize("skipna", [True, False])
28302837
def test_boolean_reduce_series_all_null(all_boolean_reductions, skipna):
28312838
# GH51624
28322839
ser = pd.Series([None], dtype="float64[pyarrow]")

pandas/tests/extension/test_categorical.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -134,6 +134,7 @@ def test_combine_add(self, data_repeated):
134134
expected = pd.Series([a + val for a in list(orig_data1)])
135135
tm.assert_series_equal(result, expected)
136136

137+
@pytest.mark.parametrize("na_action", [None, "ignore"])
137138
def test_map(self, data, na_action):
138139
result = data.map(lambda x: x, na_action=na_action)
139140
tm.assert_extension_array_equal(result, data)
@@ -174,6 +175,7 @@ def test_array_repr(self, data, size):
174175
super().test_array_repr(data, size)
175176

176177
@pytest.mark.xfail(reason="TBD")
178+
@pytest.mark.parametrize("as_index", [True, False])
177179
def test_groupby_extension_agg(self, as_index, data_for_grouping):
178180
super().test_groupby_extension_agg(as_index, data_for_grouping)
179181

pandas/tests/extension/test_datetime.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -100,6 +100,7 @@ def _supports_accumulation(self, ser, op_name: str) -> bool:
100100
def _supports_reduction(self, obj, op_name: str) -> bool:
101101
return op_name in ["min", "max", "median", "mean", "std", "any", "all"]
102102

103+
@pytest.mark.parametrize("skipna", [True, False])
103104
def test_reduce_series_boolean(self, data, all_boolean_reductions, skipna):
104105
meth = all_boolean_reductions
105106
msg = f"'{meth}' with datetime64 dtypes is deprecated and will raise in"
@@ -113,6 +114,7 @@ def test_series_constructor(self, data):
113114
data = data._with_freq(None)
114115
super().test_series_constructor(data)
115116

117+
@pytest.mark.parametrize("na_action", [None, "ignore"])
116118
def test_map(self, data, na_action):
117119
result = data.map(lambda x: x, na_action=na_action)
118120
tm.assert_extension_array_equal(result, data)

pandas/tests/extension/test_masked.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -169,6 +169,7 @@ def data_for_grouping(dtype):
169169

170170

171171
class TestMaskedArrays(base.ExtensionTests):
172+
@pytest.mark.parametrize("na_action", [None, "ignore"])
172173
def test_map(self, data_missing, na_action):
173174
result = data_missing.map(lambda x: x, na_action=na_action)
174175
if data_missing.dtype == Float32Dtype():

pandas/tests/extension/test_numpy.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -313,6 +313,7 @@ def check_reduce(self, ser: pd.Series, op_name: str, skipna: bool):
313313
tm.assert_almost_equal(result, expected)
314314

315315
@pytest.mark.skip("TODO: tests not written yet")
316+
@pytest.mark.parametrize("skipna", [True, False])
316317
def test_reduce_frame(self, data, all_numeric_reductions, skipna):
317318
pass
318319

pandas/tests/extension/test_period.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -109,6 +109,7 @@ def test_diff(self, data, periods):
109109
else:
110110
super().test_diff(data, periods)
111111

112+
@pytest.mark.parametrize("na_action", [None, "ignore"])
112113
def test_map(self, data, na_action):
113114
result = data.map(lambda x: x, na_action=na_action)
114115
tm.assert_extension_array_equal(result, data)

pandas/tests/extension/test_sparse.py

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -102,6 +102,7 @@ class TestSparseArray(base.ExtensionTests):
102102
def _supports_reduction(self, obj, op_name: str) -> bool:
103103
return True
104104

105+
@pytest.mark.parametrize("skipna", [True, False])
105106
def test_reduce_series_numeric(self, data, all_numeric_reductions, skipna, request):
106107
if all_numeric_reductions in [
107108
"prod",
@@ -126,6 +127,7 @@ def test_reduce_series_numeric(self, data, all_numeric_reductions, skipna, reque
126127

127128
super().test_reduce_series_numeric(data, all_numeric_reductions, skipna)
128129

130+
@pytest.mark.parametrize("skipna", [True, False])
129131
def test_reduce_frame(self, data, all_numeric_reductions, skipna, request):
130132
if all_numeric_reductions in [
131133
"prod",
@@ -366,6 +368,7 @@ def test_map(self, func, na_action, expected):
366368
result = data.map(func, na_action=na_action)
367369
tm.assert_extension_array_equal(result, expected)
368370

371+
@pytest.mark.parametrize("na_action", [None, "ignore"])
369372
def test_map_raises(self, data, na_action):
370373
# GH52096
371374
msg = "fill value in the sparse values not supported"
@@ -486,6 +489,7 @@ def test_array_repr(self, data, size):
486489
super().test_array_repr(data, size)
487490

488491
@pytest.mark.xfail(reason="result does not match expected")
492+
@pytest.mark.parametrize("as_index", [True, False])
489493
def test_groupby_extension_agg(self, as_index, data_for_grouping):
490494
super().test_groupby_extension_agg(as_index, data_for_grouping)
491495

0 commit comments

Comments
 (0)