Exemplo n.º 1
0
    async def test_resolve(self):
        async def _side_effect(*args, **kwargs):
            host = 'test.com'
            address = '127.0.0.1'
            port = 80
            family = socket.AF_INET
            resolve_result = [{'hostname': host,
                               'host': address, 'port': port,
                               'family': family, 'proto': 0,
                               'flags': socket.AI_NUMERICHOST}]
            return resolve_result

        rs = Resolver(timeout=0.1)
        hinfo = await rs.resolve('127.0.0.1')
        host = hinfo[0]['host']
        self.assertEqual(host, '127.0.0.1')

        if isinstance(rs, aiohttp.resolver.ThreadedResolver):
            with self.assertRaises(socket.gaierror):
                await rs.resolve('256.0.0.1')
        if isinstance(rs, aiohttp.resolver.AsyncResolver):
            with self.assertRaises(aiodns.error.DNSError):
                await rs.resolve('256.0.0.1')

        with patch("aiohttp.DefaultResolver.resolve") as query:
            query.side_effect = _side_effect
            hinfo = await rs.resolve('test.com')
            host = hinfo[0]['host']
            self.assertEqual(host, '127.0.0.1')
Exemplo n.º 2
0
    async def test_resolve_cache(self):
        rs = Resolver(timeout=0.1)

        with patch("aiodns.DNSResolver.query") as query:
            query.side_effect = future_iter([ResolveResult('127.0.0.1', 0)])
            await rs.resolve('test.com')

            query.side_effect = future_iter([ResolveResult('127.0.0.2', 0)])
            port = 80
            resp = [{'hostname': 'test2.com', 'host': '127.0.0.2', 'port': port,
                     'family': socket.AF_INET, 'proto': socket.IPPROTO_IP,
                     'flags': socket.AI_NUMERICHOST}]
            await rs.resolve('test2.com', port=80, family=socket.AF_INET)

        rs._resolve = None
        self.assertEqual(await rs.resolve('test.com'), '127.0.0.1')
        resp = await rs.resolve('test2.com')
        self.assertEqual(resp[0]['host'], '127.0.0.2')
Exemplo n.º 3
0
    async def test_resolve(self):
        rs = Resolver(timeout=0.1)
        self.assertEqual(await rs.resolve('127.0.0.1'), '127.0.0.1')

        with self.assertRaises(ResolveError):
            await rs.resolve('256.0.0.1')

        with patch("aiodns.DNSResolver.query") as query:
            query.side_effect = future_iter([ResolveResult('127.0.0.1', 0)])
            self.assertEqual(await rs.resolve('test.com'), '127.0.0.1')
Exemplo n.º 4
0
    async def test_get_real_ext_ip(self):
        rs = Resolver(timeout=0.1)

        async def side_effect(*args, **kwargs):
            async def _side_effect(*args, **kwargs):
                return {'origin': '127.0.0.1'}
            resp = Mock()
            resp.json.side_effect = _side_effect
            return resp

        with patch("aiohttp.client.ClientSession._request") as resp:
            resp.side_effect = side_effect
            self.assertEqual(await rs.get_real_ext_ip(), '127.0.0.1')
Exemplo n.º 5
0
    async def test_resolve_cache(self):
        rs = Resolver(timeout=0.1)

        with patch("aiodns.DNSResolver.query") as query:
            query.side_effect = future_iter([ResolveResult('127.0.0.1', 0)])
            await rs.resolve('test.com')

            query.side_effect = future_iter([ResolveResult('127.0.0.2', 0)])
            port = 80
            resp = [{
                'hostname': 'test2.com',
                'host': '127.0.0.2',
                'port': port,
                'family': socket.AF_INET,
                'proto': socket.IPPROTO_IP,
                'flags': socket.AI_NUMERICHOST
            }]
            await rs.resolve('test2.com', port=80, family=socket.AF_INET)

        rs._resolve = None
        self.assertEqual(await rs.resolve('test.com'), '127.0.0.1')
        resp = await rs.resolve('test2.com')
        self.assertEqual(resp[0]['host'], '127.0.0.2')
Exemplo n.º 6
0
 async def test_resolve_family(self):
     rs = Resolver(timeout=0.1)
     with patch("aiodns.DNSResolver.query") as query:
         query.side_effect = future_iter([ResolveResult('127.0.0.2', 0)])
         resp = [{
             'hostname': 'test2.com',
             'host': '127.0.0.2',
             'port': 80,
             'family': socket.AF_INET,
             'proto': socket.IPPROTO_IP,
             'flags': socket.AI_NUMERICHOST
         }]
         self.assertEqual(
             await rs.resolve('test2.com', family=socket.AF_INET), resp)
Exemplo n.º 7
0
    async def test_create_with_domain(self):
        async def _side_effect(*args, **kwargs):
            host = 'test.com'
            address = '127.0.0.1'
            port = 80
            family = socket.AF_INET
            resolve_result = [{'hostname': host,
                               'host': address, 'port': port,
                               'family': family, 'proto': 0,
                               'flags': socket.AI_NUMERICHOST}]
            return resolve_result

        with patch("aiohttp.DefaultResolver.resolve") as query:
            query.side_effect = _side_effect
            resolver = Resolver()
            proxy = await Proxy.create('testhost.com', '80', resolver=resolver)
            self.assertEqual(proxy.host, '127.0.0.1')
Exemplo n.º 8
0
    async def test_get_real_ext_ip(self):
        rs = Resolver(timeout=0.1)

        def side_effect(*args, **kwargs):
            def _side_effect(*args, **kwargs):
                fut = Future()
                fut.set_result({'origin': '127.0.0.1'})
                return fut

            resp = Mock()
            resp.json.side_effect = resp.release.side_effect = _side_effect
            fut = Future()
            fut.set_result(resp)
            return fut

        with patch("aiohttp.client.ClientSession._request") as resp:
            resp.side_effect = side_effect
            self.assertEqual(await rs.get_real_ext_ip(), '127.0.0.1')
Exemplo n.º 9
0
    async def test_resolve_family(self):
        async def _side_effect(*args, **kwargs):
            host = 'test2.com'
            address = '127.0.0.2'
            port = 0
            family = socket.AF_INET
            resolve_result = [{'hostname': host,
                               'host': address, 'port': port,
                               'family': family, 'proto': socket.IPPROTO_IP,
                               'flags': socket.AI_NUMERICHOST}]
            return resolve_result

        rs = Resolver(timeout=0.1)
        with patch("aiohttp.DefaultResolver.resolve") as query:
            query.side_effect = _side_effect
            hinfo = await rs.resolve('test2.com', family=socket.AF_INET)

            resp = [{'hostname': 'test2.com', 'host': '127.0.0.2', 'port': 0,
                     'family': socket.AF_INET, 'proto': socket.IPPROTO_IP,
                     'flags': socket.AI_NUMERICHOST}]
            self.assertEqual(hinfo, resp)
Exemplo n.º 10
0
 async def test_create_with_domain(self):
     with patch("aiodns.DNSResolver.query") as query:
         query.side_effect = future_iter([ResolveResult('127.0.0.1', 0)])
         resolver = Resolver()
         proxy = await Proxy.create('testhost.com', '80', resolver=resolver)
         self.assertEqual(proxy.host, '127.0.0.1')
Exemplo n.º 11
0
 def test_get_ip_info(self):
     rs = Resolver(timeout=0.1)
     self.assertEqual(rs.get_ip_info('test.com'), ('--', 'Unknown'))
     self.assertEqual(rs.get_ip_info('127.0.0.1'), ('--', 'Unknown'))
     self.assertEqual(rs.get_ip_info('8.8.8.8'), ('US', 'United States'))
Exemplo n.º 12
0
 def test_host_is_ip(self):
     rs = Resolver(timeout=0.1)
     self.assertTrue(rs.host_is_ip('127.0.0.1'))
     self.assertFalse(rs.host_is_ip('256.0.0.1'))
     self.assertFalse(rs.host_is_ip('test.com'))
Exemplo n.º 13
0
def resolver():
    return Resolver(timeout=0.1)
Exemplo n.º 14
0
 def test_get_ip_info(self):
     rs = Resolver(timeout=0.1)
     self.assertEqual(rs.get_ip_info('test.com'), ('--', 'Unknown'))
     self.assertEqual(rs.get_ip_info('127.0.0.1'), ('--', 'Unknown'))
     self.assertEqual(rs.get_ip_info('8.8.8.8'), ('US', 'United States'))
Exemplo n.º 15
0
 def test_host_is_ip(self):
     rs = Resolver(timeout=0.1)
     self.assertTrue(rs.host_is_ip('127.0.0.1'))
     self.assertFalse(rs.host_is_ip('256.0.0.1'))
     self.assertFalse(rs.host_is_ip('test.com'))