Coverage for tests / unit / formatters / styles / test_style_plain.py: 100%

21 statements  

« prev     ^ index     » next       coverage.py v7.13.0, created at 2026-04-03 18:53 +0000

1"""Unit tests for PlainStyle formatter. 

2 

3Tests verify PlainStyle correctly formats tabular data as plain text 

4with proper column alignment and separators. 

5""" 

6 

7from __future__ import annotations 

8 

9from assertpy import assert_that 

10 

11from lintro.formatters.styles.plain import PlainStyle 

12 

13from .conftest import MULTI_ROW_DATA, SINGLE_ROW_DATA, STANDARD_COLUMNS, TWO_COLUMNS 

14 

15 

16def test_plain_style_single_row_contains_all_data(plain_style: PlainStyle) -> None: 

17 """PlainStyle format includes header and data values. 

18 

19 Args: 

20 plain_style: The PlainStyle formatter instance. 

21 """ 

22 result = plain_style.format(STANDARD_COLUMNS, SINGLE_ROW_DATA) 

23 

24 assert_that(result).contains("File") 

25 assert_that(result).contains("src/main.py") 

26 assert_that(result).contains("Error found") 

27 

28 

29def test_plain_style_multiple_rows_contains_all_files( 

30 plain_style: PlainStyle, 

31) -> None: 

32 """PlainStyle format includes all file paths from multiple rows. 

33 

34 Args: 

35 plain_style: The PlainStyle formatter instance. 

36 """ 

37 result = plain_style.format(TWO_COLUMNS, MULTI_ROW_DATA) 

38 

39 assert_that(result).contains("src/a.py") 

40 assert_that(result).contains("src/b.py") 

41 

42 

43def test_plain_style_row_shorter_than_columns(plain_style: PlainStyle) -> None: 

44 """PlainStyle handles row with fewer elements than columns. 

45 

46 Args: 

47 plain_style: The PlainStyle formatter instance. 

48 """ 

49 result = plain_style.format(STANDARD_COLUMNS, [["src/main.py"]]) 

50 

51 assert_that(result).contains("src/main.py") 

52 

53 

54def test_plain_style_has_separator_line(plain_style: PlainStyle) -> None: 

55 """PlainStyle output includes separator line with dashes. 

56 

57 Args: 

58 plain_style: The PlainStyle formatter instance. 

59 """ 

60 result = plain_style.format(TWO_COLUMNS, [["src/main.py", "10"]]) 

61 lines = result.split("\n") 

62 

63 assert_that(len(lines)).is_greater_than_or_equal_to(3) 

64 assert_that(lines[1]).contains("-")