def post(self, request): serializer = UserSerializer(data=request.data) if serializer.is_valid(raise_exception=ValueError): serializer.create(validated_data=request.data) return Response({'message': 'User registered succesfully'}, status=status.HTTP_201_CREATED) return Response( { "error": "True", "error_msg": serializer.error_messages }, status=status.HTTP_400_BAD_REQUEST)
class UserSerializerTest(SerializerTest): def setUp(self): self.serializer = UserSerializer() def test_user_creation(self): user = self.serializer.create(self.USER_DATA) auth_role = AuthRole.get_auth_role(user.pk) self.assertIsInstance(user, User) self.assertEqual(auth_role, AuthRole.RoleTypes.USER, msg='Auth role is user') self.assertEqual(user.first_name, self.USER_DATA.get('first_name')) self.assertEqual(user.last_name, self.USER_DATA.get('last_name')) self.assertEqual(user.email, self.USER_DATA.get('email')) self.assertEqual(user.username, self.USER_DATA.get('username')) self.assertEqual(user.check_password(self.USER_DATA.get('password')), True) def test_user_update(self): manager = self.create_manager() manager = self.serializer.update(manager, self.TEST_DATA) # type: User manager_role = AuthRole.get_auth_role(manager.pk) self.assertIsInstance(manager, User) self.assertEqual(manager_role, AuthRole.RoleTypes.MANAGER, msg='Auth role is manager') self.assertEqual(manager.first_name, self.TEST_DATA.get('first_name')) self.assertEqual(manager.last_name, self.TEST_DATA.get('last_name')) self.assertEqual(manager.email, self.TEST_DATA.get('email')) self.assertEqual(manager.username, self.TEST_DATA.get('username')) self.assertEqual( manager.check_password(self.TEST_DATA.get('password')), True)
def signup(request): data = request.data serializer = UserSerializer(data=data) if serializer.is_valid(): user = serializer.create(data) token = Token.objects.get(user=user) response = {"username": user.username, "token":str(token)} return Response(response, status=201) return Response(serializer.errors, status=400)
def test_create_user(): serializer = UserSerializer() with pytest.raises(ValueError): serializer.create({})