mirror of
https://github.com/Horizontal42/netsleuth.git
synced 2026-11-10 23:52:04 +03:00
🧪 test: Add test coverage for ValueError handling in ip_geo.py (#20)
* test: add tests for ValueError handling in ip_geo.py This commit adds tests to ensure `ValueError` exception paths in `ip_geo.py` are properly covered, specifically for `_ip_version` and the ripestat HTTP JSON parsing fallback. Coverage for `ip_geo.py` is now at 100%. Co-authored-by: Horizontal42 <75383519+Horizontal42@users.noreply.github.com> * drop redundant pytest-cov dep addition --------- Co-authored-by: google-labs-jules[bot] <161369871+google-labs-jules[bot]@users.noreply.github.com>
This commit is contained in:
parent
0350abeea2
commit
7645802157
1 changed files with 32 additions and 0 deletions
|
|
@ -1,6 +1,7 @@
|
||||||
from __future__ import annotations
|
from __future__ import annotations
|
||||||
|
|
||||||
import httpx
|
import httpx
|
||||||
|
from unittest.mock import patch
|
||||||
import pytest
|
import pytest
|
||||||
|
|
||||||
from netsleuth.config import Providers
|
from netsleuth.config import Providers
|
||||||
|
|
@ -321,3 +322,34 @@ async def test_gather_identity_for_a_target_never_reports_this_hosts_own_ip(http
|
||||||
assert merged.ip == "8.8.8.8"
|
assert merged.ip == "8.8.8.8"
|
||||||
assert merged.asn == "AS15169"
|
assert merged.asn == "AS15169"
|
||||||
assert cf is not None and cf.ip == "203.0.113.9"
|
assert cf is not None and cf.ip == "203.0.113.9"
|
||||||
|
|
||||||
|
|
||||||
|
def test_ip_version_value_error_via_mock():
|
||||||
|
from netsleuth.ip_geo import _ip_version
|
||||||
|
with patch("netsleuth.ip_geo.ipaddress.ip_address", side_effect=ValueError("mock error")):
|
||||||
|
assert _ip_version("8.8.8.8") is None
|
||||||
|
|
||||||
|
async def test_gather_identity_tolerates_ripestat_value_error(httpx_mock):
|
||||||
|
httpx_mock.add_response(url="https://www.cloudflare.com/cdn-cgi/trace", text="")
|
||||||
|
httpx_mock.add_response(
|
||||||
|
url="http://ip-api.com/json/8.8.8.8",
|
||||||
|
json={
|
||||||
|
"status": "success",
|
||||||
|
"query": "8.8.8.8",
|
||||||
|
"as": "AS15169 GOOGLE",
|
||||||
|
"countryCode": "US",
|
||||||
|
},
|
||||||
|
)
|
||||||
|
httpx_mock.add_response(url="https://freeipapi.com/api/json/8.8.8.8", json={})
|
||||||
|
httpx_mock.add_response(url="https://ipinfo.io/8.8.8.8json", json={})
|
||||||
|
httpx_mock.add_response(url="https://ipwho.is/8.8.8.8", json={"success": False})
|
||||||
|
httpx_mock.add_response(
|
||||||
|
url="https://stat.ripe.net/data/network-info/data.json?resource=8.8.8.8",
|
||||||
|
text="this is not valid JSON and will cause ValueError",
|
||||||
|
)
|
||||||
|
|
||||||
|
async with httpx.AsyncClient() as client:
|
||||||
|
merged, _, _, _ = await gather_identity(client, Providers(), ip="8.8.8.8")
|
||||||
|
|
||||||
|
assert merged.ip == "8.8.8.8"
|
||||||
|
assert merged.asn == "AS15169"
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue