from pathlib import Path
ROOT=Path(__file__).resolve().parents[1]
def test_v011_router_ui_and_version():
    api=(ROOT/'app/api/v011.py').read_text(); main=(ROOT/'app/main.py').read_text()
    assert "prefix='/api/v011'" in api and 'v011_router' in main
    assert (ROOT/'app/static/master-data.html').exists()
def test_v011_models_and_migration():
    text=(ROOT/'app/models/entities.py').read_text()
    for n in ['MasterEntity','MasterSourceRecord','MatchRule','DuplicateCandidate','SurvivorshipRule','MasterChangeRequest','MasterAuditEvent']: assert f'class {n}' in text
    assert (ROOT/'migrations/011_master_data_management.sql').exists()
def test_v011_golden_record_and_matching():
    service=(ROOT/'app/services/mdm.py').read_text(); api=(ROOT/'app/api/v011.py').read_text()
    for term in ['rebuild_golden','match_score','source_priority','most_recent','source_order']: assert term in service
    assert 'duplicates/scan/{entity_type}' in api and "p.decision=='merge'" in api
def test_v011_governance_and_audit():
    api=(ROOT/'app/api/v011.py').read_text()
    for term in ['require_roles(*ELEVATED)','change-requests','entity.approved','duplicate.merged','MasterAuditEvent']: assert term in api
