|
3 | 3 | import os |
4 | 4 |
|
5 | 5 | import numpy as np |
| 6 | +import openpyxl |
6 | 7 | import pandas as pd |
7 | 8 | import pytest |
8 | 9 |
|
9 | 10 | from semeio.fmudesign import excel2dict_design, inputdict_to_yaml |
10 | | -from semeio.fmudesign._excel2dict import _has_value |
| 11 | +from semeio.fmudesign._excel2dict import _assert_no_merged_cells, _has_value |
11 | 12 |
|
12 | 13 | MOCK_GENERAL_INPUT = pd.DataFrame( |
13 | 14 | data=[ |
@@ -226,3 +227,24 @@ def test_background_sheet(tmpdir, monkeypatch): |
226 | 227 | ] |
227 | 228 | assert dict_design["repeats"] == 3 |
228 | 229 | assert dict_design["defaultvalues"]["extraseed"] == 0 |
| 230 | + |
| 231 | + |
| 232 | +def test_assert_no_merged_cells(tmpdir, monkeypatch): |
| 233 | + """Test that assert_no_merged_cells detects merged cells""" |
| 234 | + monkeypatch.chdir(tmpdir) |
| 235 | + |
| 236 | + # Create Excel file with merged cells |
| 237 | + test_data = pd.DataFrame({"A": [1, 2], "B": [3, 4]}) |
| 238 | + writer = pd.ExcelWriter("test_file.xlsx", engine="openpyxl") |
| 239 | + test_data.to_excel(writer, sheet_name="sheet1", index=False) |
| 240 | + writer.close() |
| 241 | + |
| 242 | + # Add merged cells |
| 243 | + workbook = openpyxl.load_workbook("test_file.xlsx") |
| 244 | + workbook["sheet1"].merge_cells("A1:B1") |
| 245 | + workbook.save("test_file.xlsx") |
| 246 | + workbook.close() |
| 247 | + |
| 248 | + # Should raise exception |
| 249 | + with pytest.raises(Exception, match="Merged cells"): |
| 250 | + _assert_no_merged_cells("test_file.xlsx") |
0 commit comments