Coverage for tests / unit / parsers / streaming / test_collect.py: 100%
19 statements
« prev ^ index » next coverage.py v7.13.0, created at 2026-04-03 18:53 +0000
« prev ^ index » next coverage.py v7.13.0, created at 2026-04-03 18:53 +0000
1"""Tests for collect_streaming_results function."""
3from __future__ import annotations
5from collections.abc import Generator
6from typing import TYPE_CHECKING
8from assertpy import assert_that
10from lintro.parsers.streaming import collect_streaming_results
11from tests.unit.parsers.streaming.conftest import SimpleIssue
13if TYPE_CHECKING:
14 pass
17def test_collects_to_list() -> None:
18 """Collect generator results into a list."""
20 def gen() -> Generator[SimpleIssue, None, None]:
21 yield SimpleIssue(file="a.py")
22 yield SimpleIssue(file="b.py")
24 results: list[SimpleIssue] = collect_streaming_results(gen())
26 assert_that(results).is_length(2)
27 assert_that(results[0].file).is_equal_to("a.py")
28 assert_that(results[1].file).is_equal_to("b.py")
31def test_empty_generator_returns_empty_list() -> None:
32 """Empty generator returns empty list."""
34 def gen() -> Generator[SimpleIssue, None, None]:
35 return
36 yield # noqa: B901
38 results: list[SimpleIssue] = collect_streaming_results(gen())
40 assert_that(results).is_empty()