diff --git a/src/graphql/execution/execute.py b/src/graphql/execution/execute.py index 7b2837de..eda552a3 100644 --- a/src/graphql/execution/execute.py +++ b/src/graphql/execution/execute.py @@ -131,9 +131,12 @@ def __iter__(self) -> Iterable[Any]: @property def formatted(self) -> Dict[str, Any]: """Get execution result formatted according to the specification.""" + formatted_errors = ([err.formatted for err in self.errors] + if self.errors is not None + else None) if self.extensions is None: - return dict(data=self.data, errors=self.errors) - return dict(data=self.data, errors=self.errors, extensions=self.extensions) + return dict(data=self.data, errors=formatted_errors) + return dict(data=self.data, errors=formatted_errors, extensions=self.extensions) def __eq__(self, other: Any) -> bool: if isinstance(other, dict): diff --git a/tests/execution/test_execution_result.py b/tests/execution/test_execution_result.py index 71ab9fe8..e6c1d3e4 100644 --- a/tests/execution/test_execution_result.py +++ b/tests/execution/test_execution_result.py @@ -34,11 +34,11 @@ def prints_a_representation(): def formats_properly(): res = ExecutionResult(data, errors) - assert res.formatted == {"data": data, "errors": errors} + assert res.formatted == {"data": data, "errors": [{'message': 'Some error', 'locations': None, 'path': None}]} res = ExecutionResult(data, errors, extensions) assert res.formatted == { "data": data, - "errors": errors, + "errors": [{'message': 'Some error', 'locations': None, 'path': None}], "extensions": extensions, }