27 lines
1.3 KiB
Python
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
|