from pathlib import Path
import json
from python import create_reference_transaction
data=json.loads(Path(__file__).with_name("mock-data.json").read_text())
accepted=create_reference_transaction(lambda **kw: {"status":202,"body":data["accepted"]},data["request"],lambda _: {})
assert accepted["outcome"]=="ACCEPTED"
invalid=create_reference_transaction(lambda **kw: {"status":422}, {},lambda _: {})
assert invalid["outcome"]=="INVALID_INPUT"
def timeout(**kw): raise TimeoutError("simulation")
lost=create_reference_transaction(timeout,data["request"],lambda _: {"source_record":"retained"})
assert lost["outcome"]=="UNCERTAIN"
print(json.dumps({"accepted":accepted,"invalid":invalid,"lost":lost,"model_status":"SIMULATED_ONLY"},indent=2))
