Seeing issue in unit test of exception case in FastAPI route. Having following route configuration: @router.get("/{user_id}", response_model=UserDbData, responses={ 404: {"model": ErrorMessage}, 500: {"model": ErrorMessage} }) def get_user(user_id: str, db_session: Session = db_session): """Route for providing user information """ log.info(f"Handling user get request for id: {user_id}") user: UserDbData try: user: UserDbData = UserService(db_session).get_user(user_id) except UserInvalidException: log.error(f"User_id:{user_id} do not exist.") return error_response( status_code=status.HTTP_404_NOT_FOUND, message=ErrorMessage(detail=f"User_id:{user_id} do not exist.") ) except UserReadException: log.error(f"Issue in querying data for user_id:{user_id}") return error_response( status_code=status.HTTP_500_INTERNAL_SERVER_ERROR, message=ErrorMessage(detail=f"Issue in querying data for user_id:{user_id}") ) else: log.debug(f"User info for id: {user_id}, is: {user}") return user When I am trying to test the exception cases of the route, I am not able to get response from except clause: @patch('user.service.UserService.get_user') def test_user_get_invalid_user_response(mock_get_user): """Testing get user route - invalid user respose case""" mock_get_user.side_effect = UserInvalidException("") response = client.get("/user/sam21") assert response.status_code == 404 I am getting following issue in pytest: self = <MagicMock name='get_user' id='4359134512'>, args = ('sam21',), kwargs = {}, effect = UserInvalidException('') def _execute_mock_call(self, /, *args, **kwargs): # separate from _increment_mock_call so that awaited functions are # executed separately from their call, also AsyncMock overrides this method effect = self.side_effect if effect is not None: if _is_exception(effect): > raise effect E health_manager.user.exceptions.UserInvalidException Continue reading...