Beispiel #1
0
def api_get_users(request):

    if request.method == 'GET':
        try:
            page_num = int(request.GET.get('pg_no', 0))
        except ValueError:
            return Response({'status': 'bad request'}, status=api_status.HTTP_400_BAD_REQUEST)

        if page_num < 0:
            page_num = 0
        non_admin_users = get_user_model().objects.filter(is_admin=False)
        return Response(UserSerializer(non_admin_users.order_by('-created_date')[page_num:page_num+10], many=True)
                        .data, status=api_status.HTTP_200_OK)
    elif request.method == 'POST':

        form = CreateUserForm(data=request.POST)
        if form.is_valid():
            user = form.save(commit=False)
            user.set_password(form.cleaned_data['password'])
            user.is_admin = False
            user.save()
            return Response({'save_status': True}, status=api_status.HTTP_200_OK)
        return Response({'save_status': form.errors}, status=api_status.HTTP_200_OK)

    elif request.method == 'PUT':

        form = EditUserForm(data=request.data)

        if form.is_valid():
            user = get_user_model().objects.filter(email=form.cleaned_data['email'])
            user.update(**form.cleaned_data)
            return Response({'save_status': True}, status=api_status.HTTP_200_OK)
        return Response({'save_status': form.errors}, status=api_status.HTTP_200_OK)

    elif request.method == 'DELETE':

        email = request.data.get('email')
        user = get_user_model().objects.filter(email=email)

        if user:
            user.delete()
            return Response({'save_status': True}, status=api_status.HTTP_200_OK)

        return Response({'save_status': False}, status=api_status.HTTP_204_NO_CONTENT)
    def test_form_is_invalid(self):
        form = CreateUserForm(data={'email': '', 'password': '******', 'first_name': 'name1',
                                    'confirm_password': '******', 'gender': 'm'})
        self.assertFalse(form.is_valid())

        form = CreateUserForm(data={'email': 'invalid email', 'password': '******', 'first_name': 'name1',
                                    'confirm_password': '******', 'gender': 'm'})
        self.assertFalse(form.is_valid())

        form = CreateUserForm(data={'email': '*****@*****.**', 'password': '', 'first_name': 'name1',
                                    'confirm_password': '******', 'gender': 'm'})
        self.assertFalse(form.is_valid())

        form = CreateUserForm(data={'email': '*****@*****.**', 'password': '******', 'first_name': '',
                                    'confirm_password': '******', 'gender': 'm'})
        self.assertFalse(form.is_valid())

        form = CreateUserForm(data={'email': '*****@*****.**', 'password': '******', 'first_name': 'name1',
                                    'confirm_password': '', 'gender': 'm'})
        self.assertFalse(form.is_valid())

        form = CreateUserForm(data={'email': '*****@*****.**', 'password': '******', 'first_name': 'name1',
                                    'confirm_password': '******', 'gender': ''})
        self.assertFalse(form.is_valid())

        form = CreateUserForm(data={'email': '*****@*****.**', 'password': '******', 'first_name': 'name1',
                                    'confirm_password': '******', 'gender': 'm'})
        self.assertFalse(form.is_valid())

        form = CreateUserForm(data={'email': '*****@*****.**', 'password': '******', 'first_name': 'name1',
                                    'confirm_password': '******', 'gender': '-1'})
        self.assertFalse(form.is_valid())

        form = CreateUserForm(data={'email': '*****@*****.**', 'password': '******', 'first_name': 'name1',
                                    'confirm_password': '******', 'gender': 'm', 'phone': 'invalid_phone_number'})
        self.assertFalse(form.is_valid())

        get_user_model().objects.create_user(email='*****@*****.**', first_name='name1', password='******')

        form = CreateUserForm(data={'email': '*****@*****.**', 'password': '******', 'first_name': 'name1',
                                    'confirm_password': '******', 'gender': 'm'})
        self.assertFalse(form.is_valid())
 def test_form_is_valid(self):
     form = CreateUserForm(data={'email': '*****@*****.**', 'password': '******', 'first_name': 'name1',
                                 'confirm_password': '******', 'gender': 'm', 'phone': '+23470876564'})
     self.assertTrue(form.is_valid())