You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
73 lines
2.5 KiB
73 lines
2.5 KiB
# import requests
|
|
# import json
|
|
#
|
|
# url = 'http://127.0.0.1:8000/show/information/' # 确保 URL 正确
|
|
#
|
|
# data = {
|
|
# 'order':1,
|
|
# 'class_name': '软件工程',
|
|
# 'sid':102201539 ,
|
|
# }
|
|
#
|
|
# response = requests.post(url, data=data)
|
|
# data1 = response.json()
|
|
# print(response.text)
|
|
|
|
from django.test import TestCase
|
|
from django.urls import reverse
|
|
from app01.models import Student
|
|
from django.db.models import Window, F
|
|
from django.db.models.functions import Rank
|
|
class ShowInformationTestCase(TestCase):
|
|
def setUp(self):
|
|
# 创建一些测试数据
|
|
Student.objects.create(name='学生1', sid='001', credit=0.0, class_name='测试班级1', probability=1, max=0.0, min=0.0)
|
|
Student.objects.create(name='学生2', sid='002', credit=0.0, class_name='测试班级1', probability=1, max=0.0, min=0.0)
|
|
|
|
def test_show_information(self):
|
|
# 测试带有有效参数的POST请求
|
|
url = reverse('show_information')
|
|
data = {
|
|
'class_name': '测试班级1',
|
|
'sid': '001',
|
|
'order': '1'
|
|
}
|
|
response = self.client.post(url, data)
|
|
self.assertEqual(response.status_code, 200)
|
|
self.assertEqual(response.json()['sid'], '001')
|
|
self.assertEqual(response.json()['name'], '学生1')
|
|
self.assertEqual(response.json()['student_rank'], 1)
|
|
|
|
def test_show_information_with_get_request(self):
|
|
# 测试GET请求
|
|
url = reverse('show_information')
|
|
response = self.client.get(url)
|
|
self.assertEqual(response.status_code, 200)
|
|
self.assertEqual(response.json()['message'], 0)
|
|
self.assertEqual(response.json()['error'], '请求方法错误')
|
|
|
|
def test_show_information_without_class_name(self):
|
|
# 测试缺少班级的请求
|
|
url = reverse('show_information')
|
|
data = {
|
|
'sid': '001',
|
|
'order': '1'
|
|
}
|
|
response = self.client.post(url, data)
|
|
self.assertEqual(response.status_code, 200)
|
|
self.assertEqual(response.json()['message'], 0)
|
|
self.assertEqual(response.json()['error'], '缺少必要的参数')
|
|
|
|
def test_show_information_without_sid(self):
|
|
# 测试缺少学号的请求
|
|
url = reverse('show_information')
|
|
data = {
|
|
'class_name':'测试班级1',
|
|
'order': '1'
|
|
}
|
|
response = self.client.post(url, data)
|
|
self.assertEqual(response.status_code, 200)
|
|
self.assertEqual(response.json()['message'], 0)
|
|
self.assertEqual(response.json()['error'], '缺少必要的参数')
|
|
|