35 lines
1.8 KiB
Python
35 lines
1.8 KiB
Python
#!/usr/bin/env python3
|
|
"""No business mutations; inspect only status and non-sensitive response shape."""
|
|
import json, ssl, urllib.request, urllib.error
|
|
from pathlib import Path
|
|
ROOT=Path(__file__).resolve().parents[1]
|
|
evidence=ROOT/'.local/uat-deploy/evidence'
|
|
ctx=ssl.create_default_context(cafile=str(evidence/'server.crt'))
|
|
base='https://192.168.68.223:8445/syly/'
|
|
results=[]
|
|
cases=[
|
|
('login-page','',200,'formLogin'),
|
|
('login-controller','loginController.do?login',200,'formLogin'),
|
|
('captcha','randCodeImage',200,None),
|
|
('anonymous-business','hotelController.do?datagrid',401,None),
|
|
('repair-disabled','repairController.do?uat_probe',403,None),
|
|
('password-reset-disabled','userController.do?savenewpwdforuser',403,None),
|
|
('mobile-disabled','appservice.do?uat_probe',403,None),
|
|
('sync-disabled','hoteldataupdatecontroller.do?uat_probe',403,None),
|
|
('druid-disabled','webpage/system/druid/index.html',403,None),
|
|
('upload-disabled','plug-in/ckfinder/core/connector/java/connector.java',403,None),
|
|
('rest-disabled','rest/uat_probe',403,None),
|
|
('backup-account-login-disabled','loginController.do?checkuser&userName=admin',200,'UAT permits only'),
|
|
]
|
|
for name,path,expected,marker in cases:
|
|
req=urllib.request.Request(base+path,headers={'User-Agent':'syly2-uat-deployment-verification'})
|
|
try: res=urllib.request.urlopen(req,context=ctx,timeout=45)
|
|
except urllib.error.HTTPError as e: res=e
|
|
body=res.read(1024*1024)
|
|
ok=res.status==expected and (marker is None or marker.encode() in body)
|
|
if name=='captcha': ok=ok and body.startswith(b'\xff\xd8')
|
|
results.append({'check':name,'status':res.status,'expected_status':expected,'passed':ok,'bytes':len(body)})
|
|
(evidence/'http-checks.json').write_text(json.dumps(results,indent=2))
|
|
print(json.dumps(results,indent=2))
|
|
assert all(x['passed'] for x in results)
|