ADD file via upload

zqx_branch
pmluby46i 4 months ago
parent 2a0aa60997
commit ef51e9cc82

@ -0,0 +1,83 @@
# 导入json模块用于处理JSON数据 #zqx: 引入json模块用于处理JSON格式数据的编码和解码
import json
# 从Django测试模块导入测试客户端、请求工厂和测试用例基类 #zqx: 从django.test导入Client(测试客户端)、RequestFactory(请求工厂)和TestCase(测试用例基类)
from django.test import Client, RequestFactory, TestCase
# 从accounts应用导入BlogUser模型 #zqx: 从accounts应用的models模块导入BlogUser用户模型
from accounts.models import BlogUser
# 从当前应用导入OwnTrackLog模型 #zqx: 从当前应用(.)的models模块导入OwnTrackLog模型
from .models import OwnTrackLog
# Create your tests here. #zqx: Django测试文件的标准注释标记测试代码区域开始
# 定义OwnTrackLogTest测试类继承自Django的TestCase #zqx: 定义OwnTrackLogTest测试类继承Django的TestCase类用于测试OwnTrackLog相关功能
class OwnTrackLogTest(TestCase):
# 测试初始化方法,在每个测试方法执行前运行 #zqx: setUp方法在每个测试方法执行前自动调用用于初始化测试环境
def setUp(self):
# 创建测试客户端实例 #zqx: 创建Client实例用于模拟HTTP请求
self.client = Client()
# 创建请求工厂实例 #zqx: 创建RequestFactory实例用于创建测试请求对象
self.factory = RequestFactory()
# 测试owntracks功能的主要测试方法 #zqx: 定义test_own_track_log测试方法用于测试owntracks功能
def test_own_track_log(self):
# 创建包含完整位置信息的测试数据 #zqx: 创建包含tid、lat、lon字段的字典对象作为完整位置信息测试数据
o = {
'tid': 12, #zqx: 用户ID字段值为12
'lat': 123.123, #zqx: 纬度字段值为123.123
'lon': 134.341 #zqx: 经度字段值为134.341
}
# 使用客户端发送POST请求将位置数据以JSON格式发送到/logtracks端点 #zqx: 使用client.post方法向/owntracks/logtracks路径发送POST请求数据为JSON格式
self.client.post(
'/owntracks/logtracks', #zqx: 请求的目标URL路径
json.dumps(o), #zqx: 将字典o转换为JSON字符串
content_type='application/json') #zqx: 设置请求的内容类型为application/json
# 检查数据库中OwnTrackLog记录数量是否为1 #zqx: 查询OwnTrackLog模型的所有记录检查记录数量是否为1
length = len(OwnTrackLog.objects.all()) #zqx: 获取OwnTrackLog所有对象的数量
self.assertEqual(length, 1) #zqx: 断言记录数量等于1
# 创建不完整的位置数据(缺少经度) #zqx: 创建缺少lon字段的字典对象作为不完整位置信息测试数据
o = {
'tid': 12, #zqx: 用户ID字段值为12
'lat': 123.123 #zqx: 纬度字段值为123.123
}
# 再次发送POST请求 #zqx: 使用client.post方法再次发送POST请求数据为不完整的JSON格式
self.client.post(
'/owntracks/logtracks', #zqx: 请求的目标URL路径
json.dumps(o), #zqx: 将不完整的字典o转换为JSON字符串
content_type='application/json') #zqx: 设置请求的内容类型为application/json
# 检查数据库记录数量是否仍为1不完整数据应该不被保存 #zqx: 查询OwnTrackLog模型的所有记录检查记录数量是否仍为1
length = len(OwnTrackLog.objects.all()) #zqx: 获取OwnTrackLog所有对象的数量
self.assertEqual(length, 1) #zqx: 断言记录数量仍等于1验证不完整数据未被保存
# 测试未登录用户访问/show_maps端点应该返回302重定向 #zqx: 测试未登录用户访问/show_maps端点的行为
rsp = self.client.get('/owntracks/show_maps') #zqx: 使用client.get方法向/owntracks/show_maps路径发送GET请求
self.assertEqual(rsp.status_code, 302) #zqx: 断言响应状态码为302表示重定向
# 创建超级用户用于测试 #zqx: 使用create_superuser方法创建超级用户用于后续测试
user = BlogUser.objects.create_superuser( #zqx: 调用BlogUser模型的create_superuser方法
email="liangliangyy1@gmail.com", #zqx: 设置用户邮箱
username="liangliangyy1", #zqx: 设置用户名
password="liangliangyy1") #zqx: 设置用户密码
# 使用创建的用户登录 #zqx: 使用client.login方法以创建的用户身份登录
self.client.login(username='liangliangyy1', password='liangliangyy1') #zqx: 使用用户名和密码登录
# 手动创建并保存一个OwnTrackLog实例 #zqx: 手动创建OwnTrackLog对象并保存到数据库
s = OwnTrackLog() #zqx: 创建OwnTrackLog实例
s.tid = 12 #zqx: 设置tid属性为12
s.lon = 123.234 #zqx: 设置lon属性为123.234
s.lat = 34.234 #zqx: 设置lat属性为34.234
s.save() #zqx: 保存对象到数据库
# 测试已登录用户访问各个端点都应该返回200成功状态码 #zqx: 测试已登录用户访问不同端点的响应状态
rsp = self.client.get('/owntracks/show_dates') #zqx: 向/owntracks/show_dates路径发送GET请求
self.assertEqual(rsp.status_code, 200) #zqx: 断言响应状态码为200表示请求成功
rsp = self.client.get('/owntracks/show_maps') #zqx: 向/owntracks/show_maps路径发送GET请求
self.assertEqual(rsp.status_code, 200) #zqx: 断言响应状态码为200表示请求成功
rsp = self.client.get('/owntracks/get_datas') #zqx: 向/owntracks/get_datas路径发送GET请求
self.assertEqual(rsp.status_code, 200) #zqx: 断言响应状态码为200表示请求成功
rsp = self.client.get('/owntracks/get_datas?date=2018-02-26') #zqx: 向带日期参数的/owntracks/get_datas路径发送GET请求
self.assertEqual(rsp.status_code, 200) #zqx: 断言响应状态码为200表示请求成功
Loading…
Cancel
Save