1+ import json
2+ from unittest .mock import patch , Mock
3+
4+ import requests
5+
6+ from ipinfo import get_ip_country
7+
8+
9+ @patch .object (requests , 'get' )
10+ def test_ipinfo_mexican_ip (mockget ):
11+ # hardcoding a requests response
12+ content = (b'{\n "ip": "187.190.38.36",\n "hostname": "domain.net",\n '
13+ b' "city": "Mexico City",\n "region": "Mexico City",\n '
14+ b'"country": "MX",\n ' b'"loc": "11.0000,-00.1111",\n '
15+ b'"postal": "12345",\n "org": "some org"\n }' )
16+ mockget .return_value = Mock (content = content ,
17+ text = content .decode ("utf-8" ),
18+ json = lambda : json .loads (content ),
19+ status_code = 200 )
20+ assert get_ip_country ('187.190.38.36' ) == 'MX'
21+
22+
23+ @patch .object (requests , 'get' )
24+ def test_ipinfo_japan_ip (mockget ):
25+ # and another IP in Japan
26+ content = (b'{\n "ip": "185.161.200.10",\n "city": "Tokyo",\n '
27+ b'"region": "Tokyo",\n ' b'"country": "JP",\n "loc": '
28+ b'"00.1111,11.0000",\n "postal": "123-4567",\n '
29+ b'"org": "some other org"\n }' )
30+ mockget .return_value = Mock (content = content ,
31+ text = content .decode ("utf-8" ),
32+ json = lambda : json .loads (content ),
33+ status_code = 200 )
34+ assert get_ip_country ('185.161.200.10' ) == 'JP'
0 commit comments