Files
Aislo/resources/tester/test_est_issues.py
T

27 lines
1.3 KiB
Python

from test_est_rea_parity import run
def test_data_issues_detect_duplicate_missing_and_mismatched_links_without_modifying_data():
result = run(
"math",
"""(()=>{
const p=EstNative.empty();p.tables.StuffcDat=[{Code:'A',Name:'sand',Size:'large'},
{Code:'B',Name:'first'},{Code:'B',Name:'second'}];
p.tables.HeadMainDat=[{Index:1,Code:'H',Name:'group'},{Index:0,Code:'A',LinkIndex:5,Name:'sand',Size:'large'}];
p.tables.EstMainDat=[{Code:'A',LinkIndex:5,Name:'stone',Size:'small'},
{Code:'B',LinkIndex:5,Name:'ambiguous'},{Code:'missing',LinkIndex:5,Name:'missing'},
{Code:'H',LinkIndex:103,Name:'group'}];
const before=JSON.stringify(p),issues=EstIssues.scan(p);
return {issues,same:before===JSON.stringify(p)};
})()""",
)
assert result["same"]
items = {(row["table"], row["index"], row["message"]) for row in result["issues"]}
assert ("StuffcDat", 1, "코드 중복") in items
assert ("StuffcDat", 2, "코드 중복") in items
assert ("EstMainDat", 0, "연결 품명 차이") in items
assert ("EstMainDat", 0, "연결 규격 차이") in items
assert ("EstMainDat", 1, "연결 코드 중복") in items
assert ("EstMainDat", 2, "연결 자료 없음") in items
assert len(items) == 6