Files
2025-02-18 20:37:06 +00:00

34 lines
1.3 KiB
Python

import pandas as pd
import pytest
from src.rule_processor import SeverityLevel, get_severity
@pytest.mark.parametrize(
"input_severity, expected_enum",
[
("INFO", SeverityLevel.INFO),
("info", SeverityLevel.INFO),
("Info", SeverityLevel.INFO),
("WARNING", SeverityLevel.WARNING),
("warning", SeverityLevel.WARNING),
("Warning", SeverityLevel.WARNING),
("ERROR", SeverityLevel.ERROR),
("error", SeverityLevel.ERROR),
("Error", SeverityLevel.ERROR),
("WARN", SeverityLevel.WARNING),
("warn", SeverityLevel.WARNING),
("Critical", SeverityLevel.ERROR), # Invalid → Defaults to ERROR
("Severe", SeverityLevel.ERROR), # Invalid → Defaults to ERROR
("", SeverityLevel.ERROR), # Empty string → Defaults to ERROR
(None, SeverityLevel.ERROR), # None → Defaults to ERROR
(1.0, SeverityLevel.ERROR), # None → Defaults to ERROR
],
)
def test_severity_conversion(input_severity, expected_enum):
"""Test various user inputs for severity and check expected outputs."""
rule_info = pd.Series({"Report Severity": input_severity})
severity = get_severity(rule_info)
assert severity == expected_enum, f"Failed for input: {input_severity}"