def test_get_ipinfo_calls_correct_url(self, mock): mock.get(requests_mock.ANY, json={}) ipinfo.get_ipinfo() expected_url = '%s/json' % self.baseurl req = mock.last_request url = '%s://%s/%s' % (req.scheme, req.netloc, 'json') self.assertEquals(url, expected_url)
def test_get_ipinfo_calls_correct_url_with_param(self, mock): mock.get(requests_mock.ANY, json={}) parameter = 'region' ipinfo.get_ipinfo(param=parameter) expected_url = '%s/%s' % (self.baseurl, parameter) req = mock.last_request url = '%s://%s/%s' % (req.scheme, req.netloc, parameter) self.assertEquals(url, expected_url)
def test_get_ipinfo_calls_correct_url_with_ip(self, mock): mock.get(requests_mock.ANY, json={}) ip_address = '8.8.8.8' ipinfo.get_ipinfo(ip=ip_address) expected_url = '%s/%s/json' % (self.baseurl, ip_address) req = mock.last_request url = '%s://%s/%s/json' % (req.scheme, req.netloc, ip_address) self.assertEquals(url, expected_url)
def test_get_ipinfo_sets_correct_connect_timeout(self): def requests_get_mock(*args, **kwargs): self.assertEquals(kwargs.get('timeout'), 5) with requests.sessions.Session() as session: from requests.packages import urllib3 urllib3.disable_warnings() return requests_mock.create_response( session.request('GET', args[0]), json={}) with mock.patch('requests.get', requests_get_mock): ipinfo.get_ipinfo()
def test_get_ipinfo_returns_object_model_for_field(self, mock): mock.get(requests_mock.ANY, text='') r = ipinfo.get_ipinfo(param='region') self.assertIsInstance(r, IpInfo)
def test_get_ipinfo_returns_object_model_for_json(self, mock): mock.get(requests_mock.ANY, json={}) r = ipinfo.get_ipinfo() self.assertIsInstance(r, IpInfo)
def test_get_ipinfo_raises_server_error_503(self, mock): mock.get(requests_mock.ANY, status_code=503, json={}) with self.assertRaises(requests.HTTPError) as e_cm: ipinfo.get_ipinfo() self.assertEquals(e_cm.exception.response.status_code, 503)