اضافه شدن قابلیت مقایسه شماتیک
This commit is contained in:
@@ -0,0 +1,28 @@
|
||||
#!/usr/bin/env python3
|
||||
"""Actual HTTP upload → durable comparison worker → private result/SVG check."""
|
||||
import argparse
|
||||
import json
|
||||
import os
|
||||
from pathlib import Path
|
||||
import time
|
||||
import httpx
|
||||
p=argparse.ArgumentParser();p.add_argument('old_file',type=Path);p.add_argument('new_file',type=Path);p.add_argument('--url',default='http://127.0.0.1:8000');args=p.parse_args()
|
||||
with httpx.Client(base_url=args.url,timeout=60) as client:
|
||||
response=client.post('/api/compare',headers={'X-API-Key':os.environ.get('API_KEY','')},
|
||||
files={'old_file':(args.old_file.name,args.old_file.read_bytes()),'new_file':(args.new_file.name,args.new_file.read_bytes())})
|
||||
assert response.status_code==202,response.text
|
||||
created=response.json();identifier=created['comparison_id'];headers={'X-Viewer-Token':created['viewer_token']};base='/api/v1/comparisons/'+identifier
|
||||
assert client.get(base).status_code==404
|
||||
deadline=time.monotonic()+120
|
||||
while time.monotonic()<deadline:
|
||||
result=client.get(base,headers=headers).json()
|
||||
if result['status'] in ('completed','failed'):break
|
||||
time.sleep(.5)
|
||||
assert result['status']=='completed',result
|
||||
for side in ('old','new'):
|
||||
svg=client.get(base+'/svg/'+side,headers=headers)
|
||||
assert svg.status_code==200 and '<svg' in svg.text
|
||||
assert client.get(base+'/svg/'+side).status_code==404
|
||||
assert client.get('/compare/'+identifier).status_code==200
|
||||
print(json.dumps({'id':identifier,'status':result['status'],'summary':result['summary'],
|
||||
'total_changed':result['total_changed'],'private_access_enforced':True},indent=2))
|
||||
مرجع در شماره جدید
مسدود کردن کاربر