| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354 |
- import unittest
- from unittest.mock import patch
- import geo_fingerprint
- class DetectGeoFingerprintTests(unittest.TestCase):
- def test_detect_geo_fingerprint_parses_ipinfo_payload(self):
- payload = {
- "ip": "54.199.55.129",
- "city": "Tokyo",
- "country": "JP",
- "timezone": "Asia/Tokyo",
- }
- with patch("geo_fingerprint._query_geo_payload", return_value=payload):
- fp = geo_fingerprint.detect_geo_fingerprint(
- "http://127.0.0.1:7890",
- log=lambda *_: None,
- probe_url="https://ipinfo.io/json",
- )
- self.assertEqual(fp.country_code, "JP")
- self.assertEqual(fp.locale, "ja-JP")
- self.assertEqual(fp.timezone_id, "Asia/Tokyo")
- self.assertEqual(fp.accept_language, "ja-JP,ja;q=0.9,en;q=0.5")
- self.assertEqual(fp.ip, "54.199.55.129")
- self.assertEqual(fp.city, "Tokyo")
- def test_detect_geo_fingerprint_parses_country_code_payload(self):
- payload = {
- "ip": "98.96.223.129",
- "city": "Seattle",
- "country_code": "US",
- "timezone": "America/Los_Angeles",
- }
- with patch("geo_fingerprint._query_geo_payload", return_value=payload):
- fp = geo_fingerprint.detect_geo_fingerprint(
- "http://127.0.0.1:7890",
- log=lambda *_: None,
- probe_url="https://api.ip.sb/geoip",
- )
- self.assertEqual(fp.country_code, "US")
- self.assertEqual(fp.locale, "en-US")
- self.assertEqual(fp.timezone_id, "America/Los_Angeles")
- self.assertEqual(fp.accept_language, "en-US,en;q=0.9")
- self.assertEqual(fp.ip, "98.96.223.129")
- self.assertEqual(fp.city, "Seattle")
- if __name__ == "__main__":
- unittest.main()
|