feat(tests): add comprehensive test suite for backend functionality, including database, configuration, and telemetry utilities
This commit is contained in:
58
tests/backend/test_interface_config_parser.py
Normal file
58
tests/backend/test_interface_config_parser.py
Normal file
@@ -0,0 +1,58 @@
|
||||
from meshchatx.src.backend.interface_config_parser import InterfaceConfigParser
|
||||
|
||||
|
||||
def test_parse_simple_interface():
|
||||
config_text = """
|
||||
[[Test Interface]]
|
||||
type = TCPClientInterface
|
||||
enabled = yes
|
||||
target_host = 127.0.0.1
|
||||
target_port = 4242
|
||||
"""
|
||||
interfaces = InterfaceConfigParser.parse(config_text)
|
||||
assert len(interfaces) == 1
|
||||
assert interfaces[0]["name"] == "Test Interface"
|
||||
assert interfaces[0]["type"] == "TCPClientInterface"
|
||||
assert interfaces[0]["enabled"] == "yes"
|
||||
|
||||
|
||||
def test_parse_multiple_interfaces():
|
||||
config_text = """
|
||||
[[Interface One]]
|
||||
type = RNodeInterface
|
||||
[[Interface Two]]
|
||||
type = TCPClientInterface
|
||||
"""
|
||||
interfaces = InterfaceConfigParser.parse(config_text)
|
||||
assert len(interfaces) == 2
|
||||
assert interfaces[0]["name"] == "Interface One"
|
||||
assert interfaces[1]["name"] == "Interface Two"
|
||||
|
||||
|
||||
def test_parse_best_effort_on_failure():
|
||||
# Invalid config that should trigger best-effort parsing
|
||||
config_text = """
|
||||
[[Broken Interface]
|
||||
type = something
|
||||
[[Fixed Interface]]
|
||||
type = fixed
|
||||
"""
|
||||
# Note: ConfigObj might still parse [[Broken Interface] as a key if not careful,
|
||||
# but the parser should return something.
|
||||
interfaces = InterfaceConfigParser.parse(config_text)
|
||||
assert len(interfaces) >= 1
|
||||
names = [i["name"] for i in interfaces]
|
||||
assert "Fixed Interface" in names
|
||||
|
||||
|
||||
def test_parse_subsections():
|
||||
config_text = """
|
||||
[[Interface With Sub]]
|
||||
type = AutoInterface
|
||||
[[[sub_config]]]
|
||||
key = value
|
||||
"""
|
||||
interfaces = InterfaceConfigParser.parse(config_text)
|
||||
assert len(interfaces) == 1
|
||||
assert "sub_config" in interfaces[0]
|
||||
assert interfaces[0]["sub_config"]["key"] == "value"
|
||||
Reference in New Issue
Block a user