Is serializer.save() atomic?
@api_view([“POST”]) def register_view(request: “Request”): serializer = RegisterSerializer(data=request.data) serializer.is_valid(raise_exception=True) try: serializer.save() except IntegrityError: raise ConflictException return Response(serializer.data, status=status.HTTP_201_CREATED) class ConflictException(APIException): status_code = 409 default_detail = “username is already taken” default_code = “conflict” def test_username_taken(self): with transaction.atomic(): User.objects.create_user(username=”customer4″, password=”Passw0rd!”) response = self.client.post( “/register”, { “username”: “customer4”, “password”: “Passw0rd!”, “confirm_password”: “Passw0rd!”, “phone_number”: “13324252666” }, ) self.assertEqual(response.status_code, status.HTTP_409_CONFLICT) The […]