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

1"""Tests for collect_streaming_results function.""" 

2 

3from __future__ import annotations 

4 

5from collections.abc import Generator 

6from typing import TYPE_CHECKING 

7 

8from assertpy import assert_that 

9 

10from lintro.parsers.streaming import collect_streaming_results 

11from tests.unit.parsers.streaming.conftest import SimpleIssue 

12 

13if TYPE_CHECKING: 

14 pass 

15 

16 

17def test_collects_to_list() -> None: 

18 """Collect generator results into a list.""" 

19 

20 def gen() -> Generator[SimpleIssue, None, None]: 

21 yield SimpleIssue(file="a.py") 

22 yield SimpleIssue(file="b.py") 

23 

24 results: list[SimpleIssue] = collect_streaming_results(gen()) 

25 

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") 

29 

30 

31def test_empty_generator_returns_empty_list() -> None: 

32 """Empty generator returns empty list.""" 

33 

34 def gen() -> Generator[SimpleIssue, None, None]: 

35 return 

36 yield # noqa: B901 

37 

38 results: list[SimpleIssue] = collect_streaming_results(gen()) 

39 

40 assert_that(results).is_empty()