@@ -45,25 +45,52 @@ async def test_get_details():
4545 # Should return Details object
4646 assert isinstance (details , Details )
4747 assert details .ip == "8.8.8.8"
48+ assert hasattr (details , "hostname" )
4849
49- # Check nested geo object exists
50+ # Check nested geo object with all fields
5051 assert hasattr (details , "geo" )
5152 assert isinstance (details .geo , dict )
5253 assert "city" in details .geo
54+ assert "region" in details .geo
55+ assert "region_code" in details .geo
56+ assert "country" in details .geo
5357 assert "country_code" in details .geo
58+ assert "continent" in details .geo
59+ assert "continent_code" in details .geo
5460 assert "latitude" in details .geo
5561 assert "longitude" in details .geo
62+ assert "timezone" in details .geo
63+ assert "postal_code" in details .geo
64+ assert "dma_code" in details .geo
65+ assert "geoname_id" in details .geo
66+ assert "radius" in details .geo
5667
57- # Check nested as object exists (use . all to access since 'as' is a keyword)
68+ # Check nested as object with all fields
5869 assert "as" in details .all
5970 as_obj = details .all ["as" ]
6071 assert isinstance (as_obj , dict )
6172 assert "asn" in as_obj
6273 assert "name" in as_obj
63-
64- # Check network flags
65- assert hasattr (details , "is_hosting" )
74+ assert "domain" in as_obj
75+ assert "type" in as_obj
76+ assert "last_changed" in as_obj
77+
78+ # Check mobile and anonymous objects
79+ assert hasattr (details , "mobile" )
80+ assert isinstance (details .mobile , dict )
81+ assert hasattr (details , "anonymous" )
82+ assert isinstance (details .anonymous , dict )
83+ assert "is_proxy" in details .anonymous
84+ assert "is_relay" in details .anonymous
85+ assert "is_tor" in details .anonymous
86+ assert "is_vpn" in details .anonymous
87+
88+ # Check all network/type flags
89+ assert hasattr (details , "is_anonymous" )
6690 assert hasattr (details , "is_anycast" )
91+ assert hasattr (details , "is_hosting" )
92+ assert hasattr (details , "is_mobile" )
93+ assert hasattr (details , "is_satellite" )
6794
6895 # Check geo formatting was applied
6996 assert "country_name" in details .geo
0 commit comments