Skip to content

Commit bab512e

Browse files
committed
fix(incremental): fix paths for subsequent async stream items
Replicates graphql/graphql-js@c6ebbf4
1 parent 53aa07b commit bab512e

File tree

6 files changed

+123
-146
lines changed

6 files changed

+123
-146
lines changed

src/graphql/execution/execute.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1881,7 +1881,7 @@ def executor() -> AwaitableOrValue[StreamItemResult]:
18811881
return self.get_next_async_stream_item_result(
18821882
stream_item_queue,
18831883
stream_path,
1884-
index,
1884+
index + 1,
18851885
async_iterator,
18861886
field_group,
18871887
info,

src/graphql/execution/incremental_graph.py

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -280,7 +280,6 @@ async def _on_stream_items(self, stream_record: StreamRecord) -> None:
280280
"""Handle stream items."""
281281
enqueue = self._enqueue
282282
items: list[Any] = []
283-
append_item = items.append
284283
errors: list[GraphQLError] = []
285284
incremental_data_records: list[IncrementalDataRecord] = []
286285
stream_item_queue = stream_record.stream_item_queue
@@ -319,7 +318,7 @@ async def _on_stream_items(self, stream_record: StreamRecord) -> None:
319318
)
320319
enqueue(StreamItemsResult(stream_record, errors=result.errors or None))
321320
return
322-
append_item(result.item)
321+
items.append(result.item)
323322
if result.errors:
324323
errors.extend(result.errors)
325324
if result.incremental_data_records:

tests/execution/test_lists.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -204,7 +204,7 @@ async def __anext__(self):
204204
None,
205205
)
206206

207-
@pytest.mark.filterwarnings("ignore:.* was never awaited:RuntimeWarning")
207+
@pytest.mark.filterwarnings("ignore:coroutine .* was never awaited:RuntimeWarning")
208208
async def can_customize_detection_of_async_iterables():
209209
class CustomIterable:
210210
"""An object that is both an iterable and an async iterable."""
@@ -288,7 +288,7 @@ async def list_field():
288288
],
289289
)
290290

291-
@pytest.mark.filterwarnings("ignore:.* was never awaited:RuntimeWarning")
291+
@pytest.mark.filterwarnings("ignore:coroutine .* was never awaited:RuntimeWarning")
292292
async def handles_errors_from_complete_value_in_async_iterables():
293293
async def list_field():
294294
yield "two"

0 commit comments

Comments
 (0)