问题描述
我正在使用
Django == 3.0.3
djangorestframework == 3.11.0
python == 3.6.8
我想为API编写单元测试,不需要使用任何数据库(不需要模拟数据库) 那意味着我想模拟数据库调用并编写单元测试用例
我该如何写出用于哪个属性
显示我的api
@api_view(['POST'])
@permission_classes([IsAuthenticated])
def employee_entry(request):
try:
login = User.objects.get(pk=request.user.id)
validationmsg = ''
emp_data = request.data
if not emp_data:
validationmsg = validation["FDP15"]
elif emp_data["EmployeeName"] is None or emp_data["EmployeeName"] == '':
validationmsg = validation["FDP1"]
elif emp_data["EmployeeCode"] is None or emp_data["EmployeeCode"] == '':
validationmsg = validation["FDP2"]
elif Employee.objects.filter(EmployeeCode=emp_data["EmployeeCode"]).count() > 0:
validationmsg = validation["FDP3"]
if validationmsg != '':
return Response({msg: validationmsg},status=status.HTTP_400_BAD_REQUEST)
employee = Employee(
EmployeeName=emp_data["EmployeeName"],EmployeeCode=emp_data["EmployeeCode"],Security=emp_data["Security"],CreatedDate=date.today(),CreatedUser=login,)
employee.save()
if emp_data["Security"] == 1:
device = Device.objects.filter(~Q(DeviceStatus=static_values["const0"]))
employee.Device.set(device)
elif emp_data["Security"] == 0:
device = Device.objects.filter(~Q(DeviceStatus=static_values["const0"]),DefaultAccess=True)
employee.Device.set(device)
return Response({"EmployeeId": employee.EmployeeId},status=status.HTTP_200_OK)
except(KeyError,TypeError,ValueError) as ex:
logging.getLogger("error_logger").exception(repr(ex))
return Response({msg: validation["FDP21"]},status=status.HTTP_400_BAD_REQUEST)
except Exception as ex:
logging.getLogger("error_logger").exception(repr(ex))
return Response({msg: validation["FDP23"]},status=status.HTTP_400_BAD_REQUEST)
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)