Skip to content

Commit a7db602

Browse files
committed
Merge and add the tests
1 parent be86dd0 commit a7db602

File tree

2 files changed

+25
-20
lines changed

2 files changed

+25
-20
lines changed

pandas/tests/io/excel/test_style.py

Lines changed: 3 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -338,7 +338,8 @@ def test_styler_to_s3(s3_public_bucket, s3so):
338338
tm.assert_frame_equal(result, df)
339339

340340

341-
def test_format_hierarchical_rows_periodindex_merge_cells():
341+
@pytest.mark.parametrize("merge_cells", [True, False])
342+
def test_format_hierarchical_rows_periodindex(merge_cells):
342343
# GH#60099
343344
df = DataFrame(
344345
{"A": [1, 2]},
@@ -347,25 +348,7 @@ def test_format_hierarchical_rows_periodindex_merge_cells():
347348
names=["date", "category"],
348349
),
349350
)
350-
formatter = ExcelFormatter(df, merge_cells=True)
351-
formatted_cells = list(formatter._format_hierarchical_rows())
352-
353-
for cell in formatted_cells:
354-
assert not isinstance(
355-
cell.val, Period
356-
), "Period should be converted to Timestamp"
357-
358-
359-
def test_format_hierarchical_rows_periodindex_no_merge_cells():
360-
# GH#60099
361-
df = DataFrame(
362-
{"A": [1, 2]},
363-
index=MultiIndex.from_arrays(
364-
[period_range("2023-01", "2023-02", freq="M"), ["X", "Y"]],
365-
names=["date", "category"],
366-
),
367-
)
368-
formatter = ExcelFormatter(df, merge_cells=False)
351+
formatter = ExcelFormatter(df, merge_cells=merge_cells)
369352
formatted_cells = list(formatter._format_hierarchical_rows())
370353

371354
for cell in formatted_cells:

pandas/tests/io/excel/test_writers.py

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@
2525
MultiIndex,
2626
date_range,
2727
option_context,
28+
period_range,
2829
)
2930
import pandas._testing as tm
3031

@@ -1549,3 +1550,24 @@ def test_subclass_attr(klass):
15491550
attrs_base = {name for name in dir(ExcelWriter) if not name.startswith("_")}
15501551
attrs_klass = {name for name in dir(klass) if not name.startswith("_")}
15511552
assert not attrs_base.symmetric_difference(attrs_klass)
1553+
1554+
1555+
@pytest.mark.parametrize("merge_cells", [True, False])
1556+
def test_excel_round_trip_with_periodindex(merge_cells):
1557+
# GH#60099
1558+
df = DataFrame(
1559+
{"A": [1, 2]},
1560+
index=MultiIndex.from_arrays(
1561+
[period_range("2023-01", "2023-02", freq="M"), ["X", "Y"]],
1562+
names=["date", "category"],
1563+
),
1564+
)
1565+
1566+
with BytesIO() as buffer:
1567+
with ExcelWriter(buffer, engine="xlsxwriter") as writer:
1568+
df.to_excel(writer, merge_cells=merge_cells)
1569+
1570+
buffer.seek(0)
1571+
result_df = pd.read_excel(buffer, index_col=[0, 1])
1572+
1573+
tm.assert_frame_equal(df, result_df)

0 commit comments

Comments
 (0)