Coverage for tests / unit / enums / test_bandit_levels.py: 100%
30 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 lintro.enums.bandit_levels module."""
3from __future__ import annotations
5import pytest
6from assertpy import assert_that
8from lintro.enums.bandit_levels import (
9 BanditConfidenceLevel,
10 BanditSeverityLevel,
11 normalize_bandit_confidence_level,
12 normalize_bandit_severity_level,
13)
16@pytest.mark.parametrize(
17 ("member", "expected"),
18 [
19 (BanditSeverityLevel.LOW, "LOW"),
20 (BanditSeverityLevel.MEDIUM, "MEDIUM"),
21 (BanditSeverityLevel.HIGH, "HIGH"),
22 ],
23)
24def test_severity_level_values(member: BanditSeverityLevel, expected: str) -> None:
25 """BanditSeverityLevel members have correct uppercase string values.
27 Args:
28 member: The BanditSeverityLevel enum member to test.
29 expected: The expected string value.
30 """
31 assert_that(member.value).is_equal_to(expected)
34@pytest.mark.parametrize(
35 ("member", "expected"),
36 [
37 (BanditConfidenceLevel.LOW, "LOW"),
38 (BanditConfidenceLevel.MEDIUM, "MEDIUM"),
39 (BanditConfidenceLevel.HIGH, "HIGH"),
40 ],
41)
42def test_confidence_level_values(member: BanditConfidenceLevel, expected: str) -> None:
43 """BanditConfidenceLevel members have correct uppercase string values.
45 Args:
46 member: The BanditConfidenceLevel enum member to test.
47 expected: The expected string value.
48 """
49 assert_that(member.value).is_equal_to(expected)
52def test_normalize_severity_from_string() -> None:
53 """normalize_bandit_severity_level converts string to BanditSeverityLevel."""
54 assert_that(normalize_bandit_severity_level("high")).is_equal_to(
55 BanditSeverityLevel.HIGH,
56 )
59def test_normalize_severity_case_insensitive() -> None:
60 """normalize_bandit_severity_level is case-insensitive."""
61 assert_that(normalize_bandit_severity_level("HIGH")).is_equal_to(
62 BanditSeverityLevel.HIGH,
63 )
64 assert_that(normalize_bandit_severity_level("High")).is_equal_to(
65 BanditSeverityLevel.HIGH,
66 )
69def test_normalize_severity_passthrough() -> None:
70 """normalize_bandit_severity_level returns BanditSeverityLevel unchanged."""
71 assert_that(normalize_bandit_severity_level(BanditSeverityLevel.HIGH)).is_equal_to(
72 BanditSeverityLevel.HIGH,
73 )
76def test_normalize_severity_invalid_raises() -> None:
77 """normalize_bandit_severity_level raises ValueError for unknown level."""
78 with pytest.raises(ValueError, match="Unknown bandit severity level"):
79 normalize_bandit_severity_level("critical")
82def test_normalize_confidence_from_string() -> None:
83 """normalize_bandit_confidence_level converts string to BanditConfidenceLevel."""
84 assert_that(normalize_bandit_confidence_level("high")).is_equal_to(
85 BanditConfidenceLevel.HIGH,
86 )
89def test_normalize_confidence_case_insensitive() -> None:
90 """normalize_bandit_confidence_level is case-insensitive."""
91 assert_that(normalize_bandit_confidence_level("HIGH")).is_equal_to(
92 BanditConfidenceLevel.HIGH,
93 )
94 assert_that(normalize_bandit_confidence_level("High")).is_equal_to(
95 BanditConfidenceLevel.HIGH,
96 )
99def test_normalize_confidence_passthrough() -> None:
100 """normalize_bandit_confidence_level returns BanditConfidenceLevel unchanged."""
101 assert_that(
102 normalize_bandit_confidence_level(BanditConfidenceLevel.HIGH),
103 ).is_equal_to(BanditConfidenceLevel.HIGH)
106def test_normalize_confidence_invalid_raises() -> None:
107 """normalize_bandit_confidence_level raises ValueError for unknown level."""
108 with pytest.raises(ValueError, match="Unknown bandit confidence level"):
109 normalize_bandit_confidence_level("critical")