feat: ExcelParser 编排器(类型/性质/提取/汇总)
This commit is contained in:
@@ -0,0 +1,26 @@
|
||||
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"
|
||||
Reference in New Issue
Block a user