test_geo_resolver.py 693 B

123456789101112131415161718192021
  1. # Feature: sentinel-lens-dashboard, Property 2: GeoResolver 字段完整性
  2. from hypothesis import given, settings
  3. from hypothesis import strategies as st
  4. from backend.app.services.geo import GeoResolver
  5. @given(ip=st.text())
  6. @settings(max_examples=100)
  7. def test_geo_resolver_fields_never_none(ip: str) -> None:
  8. """**Property 2: GeoResolver 字段完整性**
  9. **Validates: Requirements 1.4, 1.5**
  10. For any arbitrary string input as IP, the returned GeoInfo must have
  11. non-None country and city fields.
  12. """
  13. resolver = GeoResolver(db_path="./GeoLite2-City.mmdb")
  14. result = resolver.resolve(ip)
  15. assert result.country is not None
  16. assert result.city is not None