Compare commits
2 Commits
eb074e5dd5
...
ded28f6a1e
| Author | SHA1 | Date |
|---|---|---|
|
|
ded28f6a1e | |
|
|
4e64fb2422 |
|
|
@ -0,0 +1,44 @@
|
|||
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()
|
||||
|
|
@ -0,0 +1,34 @@
|
|||
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