from genesis.data_models import SheetType from genesis.parsers.excel_parser import ExcelParseResult, ExcelParser from tests.excel_helpers import new_workbook, save_workbook def test_parse_table_sheets(tmp_path): wb = new_workbook({ "機能一覧": [["機能ID", "機能名"], ["A001", "社員登録"]], "バッチ一覧": [["バッチID", "処理名"], ["B1", "夜間集計"]], }) path = save_workbook(tmp_path, wb) result = ExcelParser().parse(path) assert isinstance(result, ExcelParseResult) by_name = {t.name: t for t in result.tables} assert by_name["機能一覧"].detected_type == SheetType.FUNCTION assert len(by_name["機能一覧"].rows) == 1 assert by_name["バッチ一覧"].detected_type == SheetType.BATCH def test_parse_free_text_sheet(tmp_path): wb = new_workbook({"メモ": [["新入社員を登録"], [], [], [], []]}) path = save_workbook(tmp_path, wb) result = ExcelParser().parse(path) assert len(result.tables) == 1 assert result.tables[0].extraction_method == "llm_from_free_text"