Skip to content

Commit 9f9a643

Browse files
committed
Remove conftest in indexing
1 parent 157631d commit 9f9a643

File tree

4 files changed

+99
-212
lines changed

4 files changed

+99
-212
lines changed

pandas/tests/indexing/conftest.py

-127
This file was deleted.

pandas/tests/indexing/test_iloc.py

+10-5
Original file line numberDiff line numberDiff line change
@@ -39,13 +39,18 @@
3939

4040
class TestiLoc:
4141
@pytest.mark.parametrize("key", [2, -1, [0, 1, 2]])
42-
@pytest.mark.parametrize("kind", ["series", "frame"])
4342
@pytest.mark.parametrize(
44-
"col",
45-
["labels", "mixed", "ts", "floats", "empty"],
43+
"index",
44+
[
45+
Index(list("abcd"), dtype=object),
46+
Index([2, 4, "null", 8], dtype=object),
47+
date_range("20130101", periods=4),
48+
Index(range(0, 8, 2), dtype=np.float64),
49+
Index([]),
50+
],
4651
)
47-
def test_iloc_getitem_int_and_list_int(self, key, kind, col, request):
48-
obj = request.getfixturevalue(f"{kind}_{col}")
52+
def test_iloc_getitem_int_and_list_int(self, key, frame_or_series, index, request):
53+
obj = frame_or_series(range(len(index)), index=index)
4954
check_indexing_smoketest_or_raises(
5055
obj,
5156
"iloc",

pandas/tests/indexing/test_loc.py

+63-68
Original file line numberDiff line numberDiff line change
@@ -69,116 +69,111 @@ def test_none_values_on_string_columns(self):
6969

7070
assert df.loc[2, "a"] is None
7171

72-
@pytest.mark.parametrize("kind", ["series", "frame"])
73-
def test_loc_getitem_int(self, kind, request):
72+
def test_loc_getitem_int(self, frame_or_series):
7473
# int label
75-
obj = request.getfixturevalue(f"{kind}_labels")
74+
obj = frame_or_series(range(3), index=Index(list("abc"), dtype=object))
7675
check_indexing_smoketest_or_raises(obj, "loc", 2, fails=KeyError)
7776

78-
@pytest.mark.parametrize("kind", ["series", "frame"])
79-
def test_loc_getitem_label(self, kind, request):
77+
def test_loc_getitem_label(self, frame_or_series):
8078
# label
81-
obj = request.getfixturevalue(f"{kind}_empty")
79+
obj = frame_or_series()
8280
check_indexing_smoketest_or_raises(obj, "loc", "c", fails=KeyError)
8381

82+
@pytest.mark.parametrize("key", ["f", 20])
8483
@pytest.mark.parametrize(
85-
"key, typs, axes",
84+
"index",
8685
[
87-
["f", ["ints", "uints", "labels", "mixed", "ts"], None],
88-
["f", ["floats"], None],
89-
[20, ["ints", "uints", "mixed"], None],
90-
[20, ["labels"], None],
91-
[20, ["ts"], 0],
92-
[20, ["floats"], 0],
86+
Index(list("abcd"), dtype=object),
87+
Index([2, 4, "null", 8], dtype=object),
88+
date_range("20130101", periods=4),
89+
Index(range(0, 8, 2), dtype=np.float64),
90+
Index([]),
9391
],
9492
)
95-
@pytest.mark.parametrize("kind", ["series", "frame"])
96-
def test_loc_getitem_label_out_of_range(self, key, typs, axes, kind, request):
97-
for typ in typs:
98-
obj = request.getfixturevalue(f"{kind}_{typ}")
99-
# out of range label
100-
check_indexing_smoketest_or_raises(
101-
obj, "loc", key, axes=axes, fails=KeyError
102-
)
93+
def test_loc_getitem_label_out_of_range(self, key, index, frame_or_series):
94+
obj = frame_or_series(range(len(index)), index=index)
95+
# out of range label
96+
check_indexing_smoketest_or_raises(obj, "loc", key, fails=KeyError)
97+
98+
@pytest.mark.parametrize("key", [[0, 1, 2], [1, 3.0, "A"]])
99+
@pytest.mark.parametrize("dtype", [np.int64, np.uint64, np.float64])
100+
def test_loc_getitem_label_list(self, key, dtype, frame_or_series):
101+
obj = frame_or_series(range(3), index=Index([0, 1, 2], dtype=dtype))
102+
# list of labels
103+
check_indexing_smoketest_or_raises(obj, "loc", key, fails=KeyError)
103104

104105
@pytest.mark.parametrize(
105-
"key, typs",
106+
"index",
106107
[
107-
[[0, 1, 2], ["ints", "uints", "floats"]],
108-
[[1, 3.0, "A"], ["ints", "uints", "floats"]],
108+
None,
109+
Index([0, 1, 2], dtype=np.int64),
110+
Index([0, 1, 2], dtype=np.uint64),
111+
Index([0, 1, 2], dtype=np.float64),
112+
MultiIndex.from_arrays([range(3), range(3)]),
109113
],
110114
)
111-
@pytest.mark.parametrize("kind", ["series", "frame"])
112-
def test_loc_getitem_label_list(self, key, typs, kind, request):
113-
for typ in typs:
114-
obj = request.getfixturevalue(f"{kind}_{typ}")
115-
# list of labels
116-
check_indexing_smoketest_or_raises(obj, "loc", key, fails=KeyError)
117-
118115
@pytest.mark.parametrize(
119-
"key, typs, axes",
120-
[
121-
[[0, 1, 2], ["empty"], None],
122-
[[0, 2, 10], ["ints", "uints", "floats"], 0],
123-
[[3, 6, 7], ["ints", "uints", "floats"], 1],
124-
# GH 17758 - MultiIndex and missing keys
125-
[[(1, 3), (1, 4), (2, 5)], ["multi"], 0],
126-
],
116+
"key", [[0, 1, 2], [0, 2, 10], [3, 6, 7], [(1, 3), (1, 4), (2, 5)]]
127117
)
128-
@pytest.mark.parametrize("kind", ["series", "frame"])
129-
def test_loc_getitem_label_list_with_missing(self, key, typs, axes, kind, request):
130-
for typ in typs:
131-
obj = request.getfixturevalue(f"{kind}_{typ}")
132-
check_indexing_smoketest_or_raises(
133-
obj, "loc", key, axes=axes, fails=KeyError
134-
)
118+
def test_loc_getitem_label_list_with_missing(self, key, index, frame_or_series):
119+
if index is None:
120+
obj = frame_or_series()
121+
else:
122+
obj = frame_or_series(range(len(index)), index=index)
123+
check_indexing_smoketest_or_raises(obj, "loc", key, fails=KeyError)
135124

136-
@pytest.mark.parametrize("typs", ["ints", "uints"])
137-
@pytest.mark.parametrize("kind", ["series", "frame"])
138-
def test_loc_getitem_label_list_fails(self, typs, kind, request):
125+
@pytest.mark.parametrize("dtype", [np.int64, np.uint64])
126+
def test_loc_getitem_label_list_fails(self, dtype, frame_or_series):
139127
# fails
140-
obj = request.getfixturevalue(f"{kind}_{typs}")
128+
obj = frame_or_series(range(3), Index([0, 1, 2], dtype=dtype))
141129
check_indexing_smoketest_or_raises(
142130
obj, "loc", [20, 30, 40], axes=1, fails=KeyError
143131
)
144132

145-
def test_loc_getitem_label_array_like(self):
146-
# TODO: test something?
147-
# array like
148-
pass
149-
150-
@pytest.mark.parametrize("kind", ["series", "frame"])
151-
def test_loc_getitem_bool(self, kind, request):
152-
obj = request.getfixturevalue(f"{kind}_empty")
133+
def test_loc_getitem_bool(self, frame_or_series):
134+
obj = frame_or_series()
153135
# boolean indexers
154136
b = [True, False, True, False]
155137

156138
check_indexing_smoketest_or_raises(obj, "loc", b, fails=IndexError)
157139

158140
@pytest.mark.parametrize(
159-
"slc, typs, axes, fails",
141+
"slc, indexes, axes, fails",
160142
[
161143
[
162144
slice(1, 3),
163-
["labels", "mixed", "empty", "ts", "floats"],
145+
[
146+
Index(list("abcd"), dtype=object),
147+
Index([2, 4, "null", 8], dtype=object),
148+
None,
149+
date_range("20130101", periods=4),
150+
Index(range(0, 12, 3), dtype=np.float64),
151+
],
164152
None,
165153
TypeError,
166154
],
167-
[slice("20130102", "20130104"), ["ts"], 1, TypeError],
168-
[slice(2, 8), ["mixed"], 0, TypeError],
169-
[slice(2, 8), ["mixed"], 1, KeyError],
170-
[slice(2, 4, 2), ["mixed"], 0, TypeError],
155+
[
156+
slice("20130102", "20130104"),
157+
[date_range("20130101", periods=4)],
158+
1,
159+
TypeError,
160+
],
161+
[slice(2, 8), [Index([2, 4, "null", 8], dtype=object)], 0, TypeError],
162+
[slice(2, 8), [Index([2, 4, "null", 8], dtype=object)], 1, KeyError],
163+
[slice(2, 4, 2), [Index([2, 4, "null", 8], dtype=object)], 0, TypeError],
171164
],
172165
)
173-
@pytest.mark.parametrize("kind", ["series", "frame"])
174-
def test_loc_getitem_label_slice(self, slc, typs, axes, fails, kind, request):
166+
def test_loc_getitem_label_slice(self, slc, indexes, axes, fails, frame_or_series):
175167
# label slices (with ints)
176168

177169
# real label slices
178170

179171
# GH 14316
180-
for typ in typs:
181-
obj = request.getfixturevalue(f"{kind}_{typ}")
172+
for index in indexes:
173+
if index is None:
174+
obj = frame_or_series()
175+
else:
176+
obj = frame_or_series(range(len(index)), index=index)
182177
check_indexing_smoketest_or_raises(
183178
obj,
184179
"loc",

pandas/tests/indexing/test_scalar.py

+26-12
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@
1010

1111
from pandas import (
1212
DataFrame,
13+
Index,
1314
Series,
1415
Timedelta,
1516
Timestamp,
@@ -32,29 +33,42 @@ def generate_indices(f, values=False):
3233

3334

3435
class TestScalar:
35-
@pytest.mark.parametrize("kind", ["series", "frame"])
36-
@pytest.mark.parametrize("col", ["ints", "uints"])
37-
def test_iat_set_ints(self, kind, col, request):
38-
f = request.getfixturevalue(f"{kind}_{col}")
36+
@pytest.mark.parametrize("dtype", [np.int64, np.uint64])
37+
def test_iat_set_ints(self, dtype, frame_or_series):
38+
f = frame_or_series(range(3), index=Index([0, 1, 2], dtype=dtype))
3939
indices = generate_indices(f, True)
4040
for i in indices:
4141
f.iat[i] = 1
4242
expected = f.values[i]
4343
tm.assert_almost_equal(expected, 1)
4444

45-
@pytest.mark.parametrize("kind", ["series", "frame"])
46-
@pytest.mark.parametrize("col", ["labels", "ts", "floats"])
47-
def test_iat_set_other(self, kind, col, request):
48-
f = request.getfixturevalue(f"{kind}_{col}")
45+
@pytest.mark.parametrize(
46+
"index",
47+
[
48+
Index(list("abcd"), dtype=object),
49+
date_range("20130101", periods=4),
50+
Index(range(0, 8, 2), dtype=np.float64),
51+
],
52+
)
53+
def test_iat_set_other(self, index, frame_or_series):
54+
f = frame_or_series(range(len(index)), index=index)
4955
msg = "iAt based indexing can only have integer indexers"
5056
with pytest.raises(ValueError, match=msg):
5157
idx = next(generate_indices(f, False))
5258
f.iat[idx] = 1
5359

54-
@pytest.mark.parametrize("kind", ["series", "frame"])
55-
@pytest.mark.parametrize("col", ["ints", "uints", "labels", "ts", "floats"])
56-
def test_at_set_ints_other(self, kind, col, request):
57-
f = request.getfixturevalue(f"{kind}_{col}")
60+
@pytest.mark.parametrize(
61+
"index",
62+
[
63+
Index(list("abcd"), dtype=object),
64+
date_range("20130101", periods=4),
65+
Index(range(0, 8, 2), dtype=np.float64),
66+
Index(range(0, 8, 2), dtype=np.uint64),
67+
Index(range(0, 8, 2), dtype=np.int64),
68+
],
69+
)
70+
def test_at_set_ints_other(self, index, frame_or_series):
71+
f = frame_or_series(range(len(index)), index=index)
5872
indices = generate_indices(f, False)
5973
for i in indices:
6074
f.at[i] = 1

0 commit comments

Comments
 (0)