Compare commits
No commits in common. "ded28f6a1ef70488e24f0fc317b7ca5786b58879" and "eb074e5dd5f3290419c1c7f7d5070ef4538efc69" have entirely different histories.
ded28f6a1e
...
eb074e5dd5
|
|
@ -1,44 +0,0 @@
|
||||||
import unittest
|
|
||||||
|
|
||||||
from app.views import *
|
|
||||||
from flask import session
|
|
||||||
from unittest.mock import patch # 如果需要模拟数据库方法
|
|
||||||
|
|
||||||
|
|
||||||
class MenuAPITestCase(unittest.TestCase):
|
|
||||||
|
|
||||||
def setUp(self):
|
|
||||||
app.testing = True # 设置 Flask 应用为测试模式
|
|
||||||
self.client = app.test_client() # 创建一个测试客户端
|
|
||||||
self.expected_menu = [
|
|
||||||
{"name": "课程类别", "path": "/course-category"},
|
|
||||||
{"name": "课程信息", "path": "/course-info"},
|
|
||||||
{"name": "课程签到", "path": "/attendance-teacher"},
|
|
||||||
{"name": "签到提醒", "path": "/attendance-reminder"}
|
|
||||||
]
|
|
||||||
|
|
||||||
def test_menu_no_login(self):
|
|
||||||
# 测试未登录情况下请求API
|
|
||||||
response = self.client.get('/api/menu')
|
|
||||||
self.assertEqual(response.status_code, 401)
|
|
||||||
self.assertEqual(response.get_json(), [])
|
|
||||||
|
|
||||||
def test_login(self):
|
|
||||||
with self.client:
|
|
||||||
self.client.post('/login', data=dict(
|
|
||||||
number='G0001',
|
|
||||||
password='1'
|
|
||||||
))
|
|
||||||
|
|
||||||
# 确认登录后session中有数据
|
|
||||||
self.assertIn('role', session)
|
|
||||||
|
|
||||||
# 执行logout
|
|
||||||
response = self.client.get('/api/menu')
|
|
||||||
print(response.get_json())
|
|
||||||
# 确认响应是重定向到登录页面
|
|
||||||
self.assertEqual(response.status_code, 200)
|
|
||||||
self.assertEqual(self.expected_menu,response.get_json())
|
|
||||||
|
|
||||||
if __name__ == '__main__':
|
|
||||||
unittest.main()
|
|
||||||
|
|
@ -1,34 +0,0 @@
|
||||||
import unittest
|
|
||||||
|
|
||||||
from app.views import *
|
|
||||||
|
|
||||||
class LogoutTestCase(unittest.TestCase):
|
|
||||||
|
|
||||||
def setUp(self):
|
|
||||||
# 设置 Flask 测试模式
|
|
||||||
app.testing = True
|
|
||||||
self.client = app.test_client()
|
|
||||||
|
|
||||||
def test_logout(self):
|
|
||||||
# 先登录,确保 session 是设置的
|
|
||||||
with self.client:
|
|
||||||
self.client.post('/login', data=dict(
|
|
||||||
number='G0001',
|
|
||||||
password='1'
|
|
||||||
))
|
|
||||||
|
|
||||||
# 确认登录后session中有数据
|
|
||||||
self.assertIn('number', session)
|
|
||||||
|
|
||||||
# 执行logout
|
|
||||||
response = self.client.get('/logout')
|
|
||||||
|
|
||||||
# 确认 session 被清空
|
|
||||||
self.assertNotIn('number', session)
|
|
||||||
|
|
||||||
# 确认响应是重定向到登录页面
|
|
||||||
self.assertEqual(response.status_code, 302)
|
|
||||||
self.assertTrue(response.location.endswith('/login'))
|
|
||||||
|
|
||||||
if __name__ == '__main__':
|
|
||||||
unittest.main()
|
|
||||||
Reference in New Issue