Coverage for tests / unit / parsers / gitleaks_parser / test_issue_model.py: 100%

16 statements  

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

1"""Unit tests for GitleaksIssue model.""" 

2 

3from __future__ import annotations 

4 

5from assertpy import assert_that 

6 

7from lintro.parsers.gitleaks.gitleaks_issue import GitleaksIssue 

8 

9 

10def test_gitleaks_issue_display_row() -> None: 

11 """GitleaksIssue should produce correct display row.""" 

12 issue = GitleaksIssue( # nosec B106 - test data for secret detection 

13 file="config.py", 

14 line=10, 

15 column=5, 

16 rule_id="aws-access-key-id", 

17 description="AWS Access Key", 

18 secret="AKIAEXAMPLE", 

19 ) 

20 

21 row = issue.to_display_row() 

22 

23 assert_that(row["file"]).is_equal_to("config.py") 

24 assert_that(row["line"]).is_equal_to("10") 

25 assert_that(row["column"]).is_equal_to("5") 

26 assert_that(row["code"]).is_equal_to("aws-access-key-id") 

27 assert_that(row["message"]).contains("AWS Access Key") 

28 assert_that(row["message"]).contains("[REDACTED]") 

29 

30 

31def test_gitleaks_issue_message_without_secret() -> None: 

32 """GitleaksIssue message should not show REDACTED when no secret.""" 

33 issue = GitleaksIssue( # nosec B106 - test data for secret detection 

34 file="test.py", 

35 line=1, 

36 column=1, 

37 rule_id="test-rule", 

38 description="Test Description", 

39 secret="", 

40 ) 

41 

42 assert_that(issue.message).is_equal_to("[test-rule] Test Description") 

43 assert_that(issue.message).does_not_contain("REDACTED")