22 lines
900 B
Python
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"
|