def _fn(*args, **kwargs): from dagster_graphql.schema.errors import GraphenePythonError try: return fn(*args, **kwargs) except UserFacingGraphQLError as de_exception: return de_exception.error except Exception: # pylint: disable=broad-except return GraphenePythonError(serializable_error_info_from_exc_info(sys.exc_info()))
def test_python_error(): def func(): raise Exception("bar") try: func() except: # pylint: disable=W0702 python_error = GraphenePythonError(serializable_error_info_from_exc_info(sys.exc_info())) assert python_error assert isinstance(python_error.message, str) assert isinstance(python_error.stack, list) assert len(python_error.stack) == 2 assert "bar" in python_error.stack[1]
def default_on_exception(exc_info): from dagster_graphql.schema.errors import GraphenePythonError # Transform exception in to PythonError to present to user return GraphenePythonError(serializable_error_info_from_exc_info(exc_info))