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