37 lines
2.0 KiB
Python
37 lines
2.0 KiB
Python
"""真实会话只读验证独立排行榜接口,不创建业务数据。"""
|
|
import argparse
|
|
import json
|
|
import urllib.request
|
|
from pathlib import Path
|
|
|
|
|
|
def main():
|
|
parser = argparse.ArgumentParser(description=__doc__)
|
|
parser.add_argument('--base-url', default='http://127.0.0.1:18000')
|
|
parser.add_argument('--token-file', required=True, type=Path)
|
|
parser.add_argument('--output', required=True, type=Path)
|
|
args = parser.parse_args()
|
|
token = args.token_file.read_text(encoding='utf-8').strip()
|
|
checks = []
|
|
for kind in ['channel', 'business', 'game']:
|
|
for query, expected in [('sourceDb=lx,hw,yq', 0), ('beginTime=bad&endTime=2026-11-04', 7), ('beginTime=2026-11-05&endTime=2026-11-04', 7)]:
|
|
path = '/sw/rank/' + kind + '?' + query
|
|
req = urllib.request.Request(args.base_url + path, headers={'x-token': token})
|
|
with urllib.request.urlopen(req, timeout=30) as response:
|
|
payload = json.load(response)
|
|
item = {'path': path, 'http': response.status, 'code': payload.get('code'), 'msg': payload.get('msg'), 'passed': payload.get('code') == expected}
|
|
if expected == 0:
|
|
data = payload.get('data', {})
|
|
item['available'] = data.get('available')
|
|
item['passed'] &= data.get('available') is False and all(data.get(key) == [] for key in ['registerRankList', 'rechargeRankList', 'payRateRankList', 'activeRankList'])
|
|
checks.append(item)
|
|
report = {'scope': '真实 sw7 会话;当前缺业务表,只读验证输入与未接入提示。正向排行和权限通过隔离 TCP HTTP 测试。', 'checks': checks, 'passed': all(item['passed'] for item in checks)}
|
|
args.output.write_text(json.dumps(report, ensure_ascii=False, indent=2) + '\n', encoding='utf-8')
|
|
print(json.dumps(report, ensure_ascii=False))
|
|
if not report['passed']:
|
|
raise SystemExit(1)
|
|
|
|
|
|
if __name__ == '__main__':
|
|
main()
|