Skip to content

Commit 9bc88c7

Browse files
authored
TST (string dtype): resolve all xfails in JSON IO tests (#60318)
1 parent 45aa7a5 commit 9bc88c7

File tree

2 files changed

+5
-17
lines changed

2 files changed

+5
-17
lines changed

Diff for: pandas/tests/io/json/test_json_table_schema.py

+1-7
Original file line numberDiff line numberDiff line change
@@ -7,8 +7,6 @@
77
import numpy as np
88
import pytest
99

10-
from pandas._config import using_string_dtype
11-
1210
from pandas.core.dtypes.dtypes import (
1311
CategoricalDtype,
1412
DatetimeTZDtype,
@@ -27,10 +25,6 @@
2725
set_default_names,
2826
)
2927

30-
pytestmark = pytest.mark.xfail(
31-
using_string_dtype(), reason="TODO(infer_string)", strict=False
32-
)
33-
3428

3529
@pytest.fixture
3630
def df_schema():
@@ -127,7 +121,7 @@ def test_multiindex(self, df_schema, using_infer_string):
127121
expected["fields"][0] = {
128122
"name": "level_0",
129123
"type": "any",
130-
"extDtype": "string",
124+
"extDtype": "str",
131125
}
132126
expected["fields"][3] = {"name": "B", "type": "any", "extDtype": "str"}
133127
assert result == expected

Diff for: pandas/tests/io/json/test_pandas.py

+4-10
Original file line numberDiff line numberDiff line change
@@ -84,7 +84,7 @@ def datetime_frame(self):
8484
# since that doesn't round-trip, see GH#33711
8585
df = DataFrame(
8686
np.random.default_rng(2).standard_normal((30, 4)),
87-
columns=Index(list("ABCD"), dtype=object),
87+
columns=Index(list("ABCD")),
8888
index=date_range("2000-01-01", periods=30, freq="B"),
8989
)
9090
df.index = df.index._with_freq(None)
@@ -184,7 +184,6 @@ def test_roundtrip_simple(self, orient, convert_axes, dtype, float_frame):
184184

185185
assert_json_roundtrip_equal(result, expected, orient)
186186

187-
@pytest.mark.xfail(using_string_dtype(), reason="TODO(infer_string)", strict=False)
188187
@pytest.mark.parametrize("dtype", [False, np.int64])
189188
@pytest.mark.parametrize("convert_axes", [True, False])
190189
def test_roundtrip_intframe(self, orient, convert_axes, dtype, int_frame):
@@ -270,7 +269,6 @@ def test_roundtrip_empty(self, orient, convert_axes):
270269

271270
tm.assert_frame_equal(result, expected)
272271

273-
@pytest.mark.xfail(using_string_dtype(), reason="TODO(infer_string)", strict=False)
274272
@pytest.mark.parametrize("convert_axes", [True, False])
275273
def test_roundtrip_timestamp(self, orient, convert_axes, datetime_frame):
276274
# TODO: improve coverage with date_format parameter
@@ -698,7 +696,6 @@ def test_series_roundtrip_simple(self, orient, string_series, using_infer_string
698696

699697
tm.assert_series_equal(result, expected)
700698

701-
@pytest.mark.xfail(using_string_dtype(), reason="TODO(infer_string)")
702699
@pytest.mark.parametrize("dtype", [False, None])
703700
def test_series_roundtrip_object(self, orient, dtype, object_series):
704701
data = StringIO(object_series.to_json(orient=orient))
@@ -710,6 +707,9 @@ def test_series_roundtrip_object(self, orient, dtype, object_series):
710707
if orient != "split":
711708
expected.name = None
712709

710+
if using_string_dtype():
711+
expected = expected.astype("str")
712+
713713
tm.assert_series_equal(result, expected)
714714

715715
def test_series_roundtrip_empty(self, orient):
@@ -808,7 +808,6 @@ def test_path(self, float_frame, int_frame, datetime_frame):
808808
df.to_json(path)
809809
read_json(path)
810810

811-
@pytest.mark.xfail(using_string_dtype(), reason="TODO(infer_string)")
812811
def test_axis_dates(self, datetime_series, datetime_frame):
813812
# frame
814813
json = StringIO(datetime_frame.to_json())
@@ -821,7 +820,6 @@ def test_axis_dates(self, datetime_series, datetime_frame):
821820
tm.assert_series_equal(result, datetime_series, check_names=False)
822821
assert result.name is None
823822

824-
@pytest.mark.xfail(using_string_dtype(), reason="TODO(infer_string)")
825823
def test_convert_dates(self, datetime_series, datetime_frame):
826824
# frame
827825
df = datetime_frame
@@ -912,7 +910,6 @@ def test_convert_dates_infer(self, infer_word):
912910
result = read_json(StringIO(ujson_dumps(data)))[["id", infer_word]]
913911
tm.assert_frame_equal(result, expected)
914912

915-
@pytest.mark.xfail(using_string_dtype(), reason="TODO(infer_string)")
916913
@pytest.mark.parametrize(
917914
"date,date_unit",
918915
[
@@ -973,7 +970,6 @@ def test_date_format_series_raises(self, datetime_series):
973970
with pytest.raises(ValueError, match=msg):
974971
ts.to_json(date_format="iso", date_unit="foo")
975972

976-
@pytest.mark.xfail(using_string_dtype(), reason="TODO(infer_string)")
977973
def test_date_unit(self, unit, datetime_frame):
978974
df = datetime_frame
979975
df["date"] = Timestamp("20130101 20:43:42").as_unit("ns")
@@ -1114,7 +1110,6 @@ def test_round_trip_exception(self, datapath):
11141110
res = res.fillna(np.nan)
11151111
tm.assert_frame_equal(res, df)
11161112

1117-
@pytest.mark.xfail(using_string_dtype(), reason="TODO(infer_string)", strict=False)
11181113
@pytest.mark.network
11191114
@pytest.mark.single_cpu
11201115
@pytest.mark.parametrize(
@@ -1555,7 +1550,6 @@ def test_data_frame_size_after_to_json(self):
15551550

15561551
assert size_before == size_after
15571552

1558-
@pytest.mark.xfail(using_string_dtype(), reason="TODO(infer_string)", strict=False)
15591553
@pytest.mark.parametrize(
15601554
"index", [None, [1, 2], [1.0, 2.0], ["a", "b"], ["1", "2"], ["1.", "2."]]
15611555
)

0 commit comments

Comments
 (0)