argus-netconf-exporter/tests/test_error_classification.py

22 lines
900 B
Python

import xml.etree.ElementTree as ET
import paramiko
from ncclient.operations.errors import TimeoutExpiredError
from exporter.errors import classify_error
def test_classify_error_from_exception():
assert classify_error(paramiko.SSHException()) == "SSHError"
assert classify_error(TimeoutError()) == "TimeoutError"
assert classify_error(TimeoutExpiredError("rpc timeout")) == "TimeoutError"
assert classify_error(ET.ParseError()) == "XMLParseError"
assert classify_error(PermissionError()) == "AuthenticationError"
assert classify_error(RuntimeError("filter failed")) == "FilterError"
# SessionCloseError / SessionError 通过类名匹配
SessionCloseErrorType = type("SessionCloseError", (Exception,), {})
assert classify_error(SessionCloseErrorType("closed")) == "SessionCloseError"
assert classify_error(RuntimeError("something else")) == "UnknownError"