def test_without_license(self): if geoip2_manager is None: self.skipTest("external module geoip-tools not available") return with patch('proxy_db.countries.geoip2_manager.is_license_key_available', return_value=False) as m: self.assertEqual(ip_country('proxy'), '') m.__getitem__.assert_not_called()
def test_address_not_found(self, m): try: from geoip2.errors import AddressNotFoundError except ImportError: self.skipTest("external module geoip2 not available") return m.__getitem__.side_effect = AddressNotFoundError self.assertEqual(ip_country('proxy'), '')
def process_proxies(self, proxies): session = create_session() for proxy in proxies: instance, exists = get_or_create(session, Proxy, defaults=dict(votes=0), id='http://{}'.format(proxy['proxy'])) if not instance.country: instance.country = ip_country(get_domain(instance.id)) instance.votes += UPDATE_VOTES session.commit() return proxies
def process_proxies(self, proxies, session=None, update_votes=UPDATE_VOTES): session = session or create_session() proxy_instances = [] for proxy in proxies: protocol = proxy.get('protocol', 'http') instance, exists = get_or_create(session, Proxy, defaults=dict(votes=0, protocol=protocol), id='{}://{}'.format( protocol, proxy['proxy'])) if not instance.country: detected_country = ip_country(get_domain(instance.id)) instance.country = detected_country or proxy.get( 'country_code') or '' instance.votes += update_votes proxy_instances.append(instance) session.commit() return proxy_instances
def test_ip_country(self, m): ip_country('proxy') m.__getitem__.assert_called_once()