Refactor geo enrichment into jail_service and mark Task 14 done
This commit is contained in:
@@ -864,6 +864,34 @@ class TestLookupIp:
|
||||
assert result["geo"].asn == "AS123"
|
||||
assert result["geo"].org == "Acme"
|
||||
|
||||
async def test_http_session_uses_geo_service_lookup(self) -> None:
|
||||
"""lookup_ip uses geo_service.lookup when http_session is provided."""
|
||||
responses = {
|
||||
"get|--all|banned|1.2.3.4": (0, []),
|
||||
"status": _make_global_status("sshd"),
|
||||
"get|sshd|banip": (0, ["1.2.3.4", "5.6.7.8"]),
|
||||
}
|
||||
|
||||
mock_geo = GeoInfo(country_code="JP", country_name="Japan", asn=None, org=None)
|
||||
mock_session = AsyncMock()
|
||||
|
||||
with _patch_client(responses), patch(
|
||||
"app.services.jail_service.geo_service.lookup",
|
||||
AsyncMock(return_value=mock_geo),
|
||||
) as mock_lookup:
|
||||
result = await jail_service.lookup_ip(
|
||||
_SOCKET,
|
||||
"1.2.3.4",
|
||||
http_session=mock_session,
|
||||
)
|
||||
|
||||
mock_lookup.assert_awaited_once_with("1.2.3.4", mock_session)
|
||||
assert isinstance(result["geo"], GeoDetail)
|
||||
assert result["geo"].country_code == "JP"
|
||||
assert result["geo"].country_name == "Japan"
|
||||
assert result["geo"].asn is None
|
||||
assert result["geo"].org is None
|
||||
|
||||
async def test_invalid_ip_raises(self) -> None:
|
||||
"""lookup_ip raises ValueError for invalid IP."""
|
||||
with pytest.raises(ValueError, match="Invalid IP"):
|
||||
|
||||
Reference in New Issue
Block a user