25 lines
835 B
Python
25 lines
835 B
Python
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)
|