import pytest from genesis.parsers.excel_reader import open_workbook, sheet_matrix from genesis.parsers.provenance import build_source_uri from tests.excel_helpers import new_workbook, save_workbook def test_build_source_uri_format(): assert build_source_uri("要求.xlsx", "機能一覧", "A5") == "要求.xlsx#機能一覧!A5" def test_open_workbook_and_sheet_matrix(tmp_path): wb = new_workbook({"機能一覧": [["機能ID", "機能名"], ["F001", "社員登録"]]}) path = save_workbook(tmp_path, wb) ws = open_workbook(path)["機能一覧"] assert sheet_matrix(ws) == [["機能ID", "機能名"], ["F001", "社員登録"]] def test_open_workbook_rejects_xls(tmp_path): bad = tmp_path / "old.xls" bad.write_bytes(b"not really xls") with pytest.raises(ValueError): open_workbook(bad)