34 lines
1.3 KiB
Python
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}"
|