0

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)
Irin
  • 1
  • So do you want to know how to write tests for Django projects? https://docs.djangoproject.com/en/3.1/topics/testing/ – Dmitry Belaventsev Nov 10 '20 at 07:21
  • @DmitryBelaventsev yes.. But i want to write testcases without creating database , need to mock the database related functions – Irin Nov 10 '20 at 10:30

0 Answers0