I am using
Django==3.0.3
djangorestframework==3.11.0
python ==3.6.8
I want to write unit testing for API and no need to use any database(no need of mock database) that mean I want to mock the database call and write unit test cases
how can i write which property is used for this
Showing my 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)