|
|
|
@ -164,7 +164,8 @@ return jsonify(message="学生名单上传成功"), 200`
|
|
|
|
|
|
|
|
|
|
文件上传:接收学生名单的 Excel 文件,检查文件格式和内容。
|
|
|
|
|
数据验证:确保文件包含必需的“姓名”和“学号”列。
|
|
|
|
|
数据存储:使用 Pandas 读取 Excel 文件并将学生信息存入数据库。
|
|
|
|
|
数据存储:使用 Pandas 读取 Excel 文件并将学生信息存入数据库
|
|
|
|
|
|
|
|
|
|
## 3.5 性能分析与改进(1分)
|
|
|
|
|
|
|
|
|
|
#### 3.5.1. 数据验证与错误处理
|
|
|
|
@ -198,7 +199,6 @@ db.drop_all()`
|
|
|
|
|
#### client fixture: 这是一个测试客户端的 fixture。它在内存中创建一个 SQLite 数据库,并在每个测试用例之间重置。
|
|
|
|
|
|
|
|
|
|
`def test_upload_students(client):
|
|
|
|
|
# 测试上传学生名单
|
|
|
|
|
data = {
|
|
|
|
|
'file': (open('students.xlsx', 'rb'), 'students.xlsx') # 假设有一个 Excel 文件
|
|
|
|
|
}
|
|
|
|
@ -209,7 +209,6 @@ db.drop_all()`
|
|
|
|
|
#### test_upload_students: 测试学生名单的上传功能。假设您有一个 Excel 文件 students.xlsx,它会被用来测试上传功能。
|
|
|
|
|
|
|
|
|
|
`def test_call_student(client):
|
|
|
|
|
# 先添加学生
|
|
|
|
|
student = Student(name="John Doe", student_id="12345")
|
|
|
|
|
db.session.add(student)
|
|
|
|
|
db.session.commit()
|
|
|
|
@ -222,14 +221,13 @@ db.drop_all()`
|
|
|
|
|
#### test_call_student: 测试随机叫学生的功能。首先添加一个学生,然后调用点名 API,检查返回的学生信息。
|
|
|
|
|
|
|
|
|
|
`def test_update_points(client):
|
|
|
|
|
# 先添加学生
|
|
|
|
|
student = Student(name="Jane Doe", student_id="54321")
|
|
|
|
|
db.session.add(student)
|
|
|
|
|
db.session.commit()
|
|
|
|
|
response = client.post('/update_points', json={'index': student.id, 'answer': '1+1=?'})
|
|
|
|
|
assert response.status_code == 200
|
|
|
|
|
data = json.loads(response.data)
|
|
|
|
|
assert data['points'] >= 0 # 确保积分更新成功
|
|
|
|
|
assert data['points'] >= 0
|
|
|
|
|
assert 'message' in data`
|
|
|
|
|
|
|
|
|
|
#### test_update_points: 测试更新积分的功能。先添加一个学生,然后调用更新积分的 API,检查积分更新是否成功。
|
|
|
|
|