#!/usr/bin/env -S python3 -I
import sys,json,os,datetime
from pathlib import Path
root=Path(__file__).resolve().parent.parent
state=json.loads((root/'state.json').read_text());args=sys.argv[1:]
def val(k,default=None):
 return args[args.index(k)+1] if k in args else default
number=int(val('--id','42'));skip=int(val('--skip','0'))
show={'pullRequestId':number,'title':'Add the page','status':'active','mergeStatus':'succeeded','sourceRefName':'refs/heads/feat/page','targetRefName':'refs/heads/main','creationDate':'2026-07-01T00:00:00Z','createdBy':{'displayName':'Proof Author','uniqueName':'proof@example.invalid'},'url':f'https://dev.azure.com/acme/_apis/git/repositories/web/pullRequests/{number}','repository':{'name':'web','webUrl':'https://dev.azure.com/acme/platform/_git/web','project':{'name':'platform'}},'lastMergeSourceCommit':{'commitId':'a'*40},'reviewers':[]}
def policy(i,status,required=True,kind='0609b952-1397-4640-95ec-e00a01b2c241',**extra):
 return {'status':status,'configuration':{'id':i,'isEnabled':True,'isBlocking':required,'type':{'id':kind},'settings':{'displayName':'Tests' if i in [12,13] else 'Advisory'},**extra}}
code=0;route='unknown';out=None;plain=False
if args==['--version']:route='version';out='azure-cli 2.85.0 (synthetic fixture)';plain=True
elif args[:2]==['account','show']:
 route='account';out='proof@example.invalid' if val('--query')=='user.name' else {'name':'proof@example.invalid','type':'user'};plain=isinstance(out,str)
elif args[:3]==['repos','pr','show']:route='show';out=show
elif args[:4]==['repos','pr','policy','list']:
 route='policy';mode='denied' if number>=90 else state['mode']
 if mode=='denied':code=1;out='synthetic policy permission denied';plain=True
 elif skip==0:out=[policy(12+i,'approved') for i in range(100)] if mode=='malformed' else [policy(1000+i,'approved',kind='non-build') for i in range(100)]
 elif mode=='malformed':out={}
 else:
  out=[policy(i,s,i!=14) for i,s in zip([12,13,14],state['statuses'])]
  out.extend([policy(20,'running',isEnabled=False),policy(21,'running',isDeleted=True),policy(22,'notApplicable')])
elif '--resource' in args:
 route=val('--resource')
 if route=='pullRequestIterations':out={'value':[{'id':2 if state['head']=='c' else 1,'sourceRefCommit':{'commitId':state['head']*40},'commonRefCommit':{'commitId':'b'*40}}]}
 elif route=='pullRequestIterationChanges':out={'changeEntries':[]}
 elif route=='pullRequestThreads':out={'value':[]}
 else:code=1;out='unsupported resource';plain=True
elif args[:3]==['repos','pr','list']:route='list';out=[show]
else:code=1;out='UNHANDLED az fixture argv '+repr(args);plain=True
record={'timestamp':datetime.datetime.now(datetime.timezone.utc).isoformat(),'pid':os.getpid(),'cwd':os.getcwd(),'argv':args,'phase':state['phase'],'state':state,'skip':skip,'number':number,'route':route,'exit':code,'result':out}
with (root/'az.jsonl').open('a') as f:f.write(json.dumps(record)+'\n')
print(out if plain else json.dumps(out),file=sys.stderr if code else sys.stdout);sys.exit(code)
