"""单元测试:IP 属地解析服务""" from app.services.ip_location import Ip2RegionResolver class FakeSearcher: def search(self, _ip: str) -> str: return "中国|广东省|深圳市|电信|CN" def test_ip_location_handles_special_addresses(): resolver = Ip2RegionResolver(db_path="/not-exists/ip2region.xdb") assert resolver.lookup(None).location == "未知" assert resolver.lookup("not-an-ip").location == "未知" assert resolver.lookup("127.0.0.1").location == "本机" assert resolver.lookup("192.168.1.1").location == "局域网" def test_ip2region_result_parses_province_city_isp(): resolver = Ip2RegionResolver(db_path="/not-exists/ip2region.xdb") resolver._searchers[4] = FakeSearcher() result = resolver.lookup("8.8.8.8") assert result.country == "中国" assert result.province == "广东省" assert result.city == "深圳市" assert result.isp == "电信" assert result.location == "中国 / 广东省 / 深圳市 / 电信" def test_default_resolver_can_use_packaged_xdb(): resolver = Ip2RegionResolver() result = resolver.lookup("8.8.8.8") assert result.location not in {"公网", "未知"}