test_auth.py 1.14 KB
import os
import sys
from typing import Tuple

from client import ApiClient


BASE_URL = os.environ.get('API_BASE_URL', 'http://localhost:8083')


def login_and_print_token(username: str, password: str) -> Tuple[bool, str]:
	client = ApiClient(BASE_URL)
	resp = client.post('/api/auth/login', {
		'username': username,
		'password': password
	}, auth=False)
	try:
		data = resp.json()
	except Exception:
		print('登录接口返回非JSON,status=', resp.status_code)
		print(resp.text)
		return False, ''

	if resp.status_code == 200 and isinstance(data, dict) and data.get('code') == 200:
		token = (data.get('data') or {}).get('token')
		if token:
			print('登录成功,token=')
			print(token)
			client.set_token(token)
			return True, token
		print('登录成功但未返回token,完整返回:', data)
		return False, ''

	print('登录失败:', data)
	return False, ''


if __name__ == '__main__':
	# 默认账户可根据实际系统修改
	username = sys.argv[1] if len(sys.argv) > 1 else 'admin'
	password = sys.argv[2] if len(sys.argv) > 2 else 'password'
	success, _ = login_and_print_token(username, password)
	sys.exit(0 if success else 1)