From b243aefa4a71f5fb2af77d0dbd567285d24e8d06 Mon Sep 17 00:00:00 2001 From: zxc <3425933825@qq.com> Date: Wed, 22 Oct 2025 14:43:43 +0800 Subject: [PATCH] Update tests.py --- src/DjangoBlog-master/owntracks/tests.py | 40 ++++++++++++++++++++---- 1 file changed, 34 insertions(+), 6 deletions(-) diff --git a/src/DjangoBlog-master/owntracks/tests.py b/src/DjangoBlog-master/owntracks/tests.py index 3b4b9d8..904ddaa 100644 --- a/src/DjangoBlog-master/owntracks/tests.py +++ b/src/DjangoBlog-master/owntracks/tests.py @@ -8,57 +8,85 @@ from .models import OwnTrackLog # Create your tests here. +# 定义测试类,继承自Django的TestCase,用于测试OwnTrackLog相关功能 class OwnTrackLogTest(TestCase): + # 测试前的初始化方法,会在每个测试方法执行前调用 def setUp(self): + # 创建一个测试客户端,用于模拟HTTP请求 self.client = Client() + # 创建一个请求工厂,用于构造更复杂的请求对象(本测试中未实际使用) self.factory = RequestFactory() + # 核心测试方法,测试OwnTrackLog的相关接口和功能 def test_own_track_log(self): + # 1. 测试正常提交位置数据 + # 构造符合要求的测试数据(包含tid、lat、lon三个必要字段) o = { 'tid': 12, 'lat': 123.123, 'lon': 134.341 } + # 模拟POST请求提交数据到日志记录接口 self.client.post( - '/owntracks/logtracks', - json.dumps(o), - content_type='application/json') + '/owntracks/logtracks', # 请求的URL + json.dumps(o), # 将数据序列化为JSON字符串 + content_type='application/json' # 指定内容类型为JSON + ) + # 验证数据库中是否成功创建了一条记录 length = len(OwnTrackLog.objects.all()) self.assertEqual(length, 1) + # 2. 测试提交不完整数据(缺少lon字段) o = { 'tid': 12, - 'lat': 123.123 + 'lat': 123.123 # 缺少经度lon字段 } + # 再次发送POST请求 self.client.post( '/owntracks/logtracks', json.dumps(o), - content_type='application/json') + content_type='application/json' + ) + # 验证数据库记录数未增加(因数据不完整未创建新记录) length = len(OwnTrackLog.objects.all()) self.assertEqual(length, 1) + # 3. 测试未登录状态访问受保护页面 + # 访问地图展示页面 rsp = self.client.get('/owntracks/show_maps') + # 验证未登录时被重定向(状态码302) self.assertEqual(rsp.status_code, 302) + # 4. 创建超级用户并登录,测试登录后访问功能 + # 创建超级用户 user = BlogUser.objects.create_superuser( email="liangliangyy1@gmail.com", username="liangliangyy1", - password="liangliangyy1") + password="liangliangyy1" + ) + # 使用测试客户端登录 self.client.login(username='liangliangyy1', password='liangliangyy1') + + # 手动创建一条位置记录 s = OwnTrackLog() s.tid = 12 s.lon = 123.234 s.lat = 34.234 s.save() + # 测试登录后访问各接口是否正常(状态码200) rsp = self.client.get('/owntracks/show_dates') self.assertEqual(rsp.status_code, 200) + rsp = self.client.get('/owntracks/show_maps') self.assertEqual(rsp.status_code, 200) + rsp = self.client.get('/owntracks/get_datas') self.assertEqual(rsp.status_code, 200) + + # 测试带日期参数的接口请求 rsp = self.client.get('/owntracks/get_datas?date=2018-02-26') self.assertEqual(rsp.status_code, 200)