"""Unit tests for mapping config-defined SNMP devices onto a Steward host.""" from plugins.snmp.routes import _devices_for_host _CFG = [ {"name": "core-switch", "host": "192.168.1.1"}, {"name": "ups", "host": "192.168.1.10"}, {"name": "by-name", "host": "edge-router"}, "not-a-dict", # tolerated, skipped {"name": "no-host"}, # no host → never matches ] def test_matches_by_address(): out = _devices_for_host(_CFG, "192.168.1.1", "somehost") assert [d["name"] for d in out] == ["core-switch"] def test_matches_by_name_case_insensitive(): out = _devices_for_host(_CFG, "10.0.0.9", "Edge-Router") assert [d["name"] for d in out] == ["by-name"] def test_no_match_returns_empty(): assert _devices_for_host(_CFG, "10.0.0.1", "nope") == [] def test_blank_address_and_name_match_nothing(): # A host with no address/name must not match a device with a blank host. assert _devices_for_host(_CFG, "", None) == []