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
« prev ^ index » next coverage.py v7.13.0, created at 2026-04-03 18:53 +0000
1"""Unit tests for GitleaksIssue model."""
3from __future__ import annotations
5from assertpy import assert_that
7from lintro.parsers.gitleaks.gitleaks_issue import GitleaksIssue
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 )
21 row = issue.to_display_row()
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]")
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 )
42 assert_that(issue.message).is_equal_to("[test-rule] Test Description")
43 assert_that(issue.message).does_not_contain("REDACTED")