Skip to content

Commit 5031be7

Browse files
committed
Move test
1 parent f0c2097 commit 5031be7

File tree

3 files changed

+43
-18
lines changed

3 files changed

+43
-18
lines changed

pandas/conftest.py

+19
Original file line numberDiff line numberDiff line change
@@ -1367,6 +1367,25 @@ def any_string_dtype(request):
13671367
return request.param
13681368

13691369

1370+
@pytest.fixture(
1371+
params=[
1372+
"object",
1373+
"string[python]",
1374+
pytest.param("string[pyarrow]", marks=td.skip_if_no("pyarrow")),
1375+
pytest.param("string[pyarrow_numpy]", marks=td.skip_if_no("pyarrow")),
1376+
pytest.param(pd.ArrowDtype(pa.string()), marks=td.skip_if_no("pyarrow")), # noqa: F821
1377+
]
1378+
)
1379+
def any_string_dtype_2(request):
1380+
"""
1381+
Parametrized fixture for string dtypes.
1382+
* 'object'
1383+
* 'string[python]'
1384+
* 'string[pyarrow]'
1385+
"""
1386+
return request.param
1387+
1388+
13701389
@pytest.fixture(params=tm.DATETIME64_DTYPES)
13711390
def datetime64_dtype(request):
13721391
"""

pandas/tests/extension/test_arrow.py

-10
Original file line numberDiff line numberDiff line change
@@ -2296,16 +2296,6 @@ def test_str_split_pat_none(method):
22962296
tm.assert_series_equal(result, expected)
22972297

22982298

2299-
def test_str_split_regex_none():
2300-
# GH 58321
2301-
ser = pd.Series(["230/270/270", "240-290-290"], dtype=ArrowDtype(pa.string()))
2302-
result = ser.str.split(r"/|-", regex=None)
2303-
expected = pd.Series(
2304-
ArrowExtensionArray(pa.array([["230", "270", "270"], ["240", "290", "290"]]))
2305-
)
2306-
tm.assert_series_equal(result, expected)
2307-
2308-
23092299
def test_str_split():
23102300
# GH 52401
23112301
ser = pd.Series(["a1cbcb", "a2cbcb", None], dtype=ArrowDtype(pa.string()))

pandas/tests/strings/test_split_partition.py

+24-8
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,10 @@
1717
object_pyarrow_numpy,
1818
)
1919

20+
pa = pytest.importorskip("pyarrow")
21+
22+
from pandas.core.arrays.arrow.array import ArrowExtensionArray
23+
2024

2125
@pytest.mark.parametrize("method", ["split", "rsplit"])
2226
def test_split(any_string_dtype, method):
@@ -59,27 +63,39 @@ def test_split_regex(any_string_dtype):
5963
tm.assert_series_equal(result, exp)
6064

6165

62-
def test_split_regex_explicit(any_string_dtype):
66+
def test_split_regex_explicit(any_string_dtype_2):
6367
# explicit regex = True split with compiled regex
6468
regex_pat = re.compile(r".jpg")
65-
values = Series("xxxjpgzzz.jpg", dtype=any_string_dtype)
66-
result = values.str.split(regex_pat)
67-
exp = Series([["xx", "zzz", ""]])
68-
tm.assert_series_equal(result, exp)
69+
values = Series("xxxjpgzzz.jpg", dtype=any_string_dtype_2)
70+
71+
if not isinstance(any_string_dtype_2, pd.ArrowDtype):
72+
# ArrowDtype does not support compiled regex
73+
result = values.str.split(regex_pat)
74+
exp = Series([["xx", "zzz", ""]])
75+
tm.assert_series_equal(result, exp)
6976

7077
# explicit regex = False split
7178
result = values.str.split(r"\.jpg", regex=False)
72-
exp = Series([["xxxjpgzzz.jpg"]])
79+
if not isinstance(any_string_dtype_2, pd.ArrowDtype):
80+
exp = Series([["xxxjpgzzz.jpg"]])
81+
else:
82+
exp = Series(ArrowExtensionArray(pa.array([["xxxjpgzzz.jpg"]])))
7383
tm.assert_series_equal(result, exp)
7484

7585
# non explicit regex split, pattern length == 1
7686
result = values.str.split(r".")
77-
exp = Series([["xxxjpgzzz", "jpg"]])
87+
if not isinstance(any_string_dtype_2, pd.ArrowDtype):
88+
exp = Series([["xxxjpgzzz", "jpg"]])
89+
else:
90+
exp = Series(ArrowExtensionArray(pa.array([["xxxjpgzzz", "jpg"]])))
7891
tm.assert_series_equal(result, exp)
7992

8093
# non explicit regex split, pattern length != 1
8194
result = values.str.split(r".jpg")
82-
exp = Series([["xx", "zzz", ""]])
95+
if not isinstance(any_string_dtype_2, pd.ArrowDtype):
96+
exp = Series([["xx", "zzz", ""]])
97+
else:
98+
exp = Series(ArrowExtensionArray(pa.array([["xx", "zzz", ""]])))
8399
tm.assert_series_equal(result, exp)
84100

85101
# regex=False with pattern compiled regex raises error

0 commit comments

Comments
 (0)