#!/usr/bin/env python3 """ 专门测试课程ID 7的考试设置 """ import asyncio import json import httpx from datetime import datetime BASE_URL = "http://localhost:8000" async def main(): async with httpx.AsyncClient() as client: # 1. 登录获取token print("1. 登录管理员账号...") login_resp = await client.post( f"{BASE_URL}/api/v1/auth/login", json={"username": "admin", "password": "Admin123!"} ) token = login_resp.json()["data"]["token"]["access_token"] headers = {"Authorization": f"Bearer {token}"} # 2. 获取当前考试设置 print("\n2. 获取课程7的当前考试设置...") get_resp = await client.get( f"{BASE_URL}/api/v1/courses/7/exam-settings", headers=headers ) current_settings = get_resp.json() print(f"当前设置: {json.dumps(current_settings['data'], indent=2, ensure_ascii=False)}") # 3. 修改考试设置 print("\n3. 修改考试设置...") new_settings = { "single_choice_count": 30, "multiple_choice_count": 15, "true_false_count": 12, "fill_blank_count": 8, "duration_minutes": 150, "difficulty_level": 4, "is_enabled": True } save_resp = await client.post( f"{BASE_URL}/api/v1/courses/7/exam-settings", json=new_settings, headers=headers ) print(f"保存响应: {save_resp.json()}") # 4. 再次获取验证 print("\n4. 再次获取考试设置验证保存...") verify_resp = await client.get( f"{BASE_URL}/api/v1/courses/7/exam-settings", headers=headers ) updated_settings = verify_resp.json() print(f"更新后的设置: {json.dumps(updated_settings['data'], indent=2, ensure_ascii=False)}") # 5. 验证数据 saved_data = updated_settings['data'] all_correct = ( saved_data['single_choice_count'] == 30 and saved_data['multiple_choice_count'] == 15 and saved_data['true_false_count'] == 12 and saved_data['fill_blank_count'] == 8 and saved_data['duration_minutes'] == 150 and saved_data['difficulty_level'] == 4 ) if all_correct: print("\n✅ 测试通过!考试设置保存和读取功能正常。") else: print("\n❌ 测试失败!数据未正确保存。") if __name__ == "__main__": asyncio.run(main())