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())