Example #1
0
 def test_finish(self):
     self.mox.StubOutWithMock(dns_resolver, 'query')
     dns_resolver.query(IgnoreArg(), 'PTR').AndReturn(['example.com'])
     self.mox.ReplayAll()
     ptr = PtrLookup('127.0.0.1')
     ptr.start()
     assert_equal('example.com', ptr.finish(runtime=1.0))
Example #2
0
 def test_run_dnsexception(self):
     self.mox.StubOutWithMock(dns_resolver, 'query')
     dns_resolver.query(IgnoreArg(), 'PTR').AndRaise(DNSException)
     self.mox.ReplayAll()
     ptr = PtrLookup('127.0.0.1')
     assert_is_instance(ptr, gevent.Greenlet)
     assert_is_none(ptr._run())
 def test_run_greenletexit(self):
     self.mox.StubOutWithMock(socket, 'gethostbyaddr')
     socket.gethostbyaddr('127.0.0.1').AndRaise(gevent.GreenletExit)
     self.mox.ReplayAll()
     ptr = PtrLookup('abcd')
     self.assertIsInstance(ptr, gevent.Greenlet)
     self.assertIsNone(ptr._run())
Example #4
0
 def test_run_nxdomain(self):
     self.mox.StubOutWithMock(dns_resolver, 'query')
     dns_resolver.query(IgnoreArg(), 'PTR').AndRaise(NXDOMAIN)
     self.mox.ReplayAll()
     ptr = PtrLookup('127.0.0.1')
     self.assertIsInstance(ptr, gevent.Greenlet)
     self.assertIsNone(ptr._run())
 def test_finish(self):
     self.mox.StubOutWithMock(socket, 'gethostbyaddr')
     socket.gethostbyaddr('127.0.0.1').AndReturn(
         ('example.com', None, None))
     self.mox.ReplayAll()
     ptr = PtrLookup('127.0.0.1')
     ptr.start()
     self.assertEqual('example.com', ptr.finish(runtime=1.0))
    def test_finish_timeout(self):
        def long_sleep(*args):
            gevent.sleep(1.0)

        self.mox.StubOutWithMock(socket, 'gethostbyaddr')
        socket.gethostbyaddr('127.0.0.1').WithSideEffects(long_sleep)
        self.mox.ReplayAll()
        ptr = PtrLookup('127.0.0.1')
        ptr.start()
        self.assertIsNone(ptr.finish(runtime=0.001))
Example #7
0
    def test_finish_timeout(self):
        self.mox.StubOutWithMock(dns_resolver, 'query')

        def long_sleep(*args):
            gevent.sleep(1.0)

        dns_resolver.query(IgnoreArg(), 'PTR').WithSideEffects(long_sleep)
        self.mox.ReplayAll()
        ptr = PtrLookup('127.0.0.1')
        ptr.start()
        assert_is_none(ptr.finish(runtime=0.0))
Example #8
0
 def __call__(self, environ, start_response):
     ptr_lookup = PtrLookup(environ.get('REMOTE_ADDR', '0.0.0.0'))
     ptr_lookup.start()
     try:
         self._validate_request(environ)
         env = self._get_envelope(environ)
         self._add_envelope_extras(environ, env, ptr_lookup)
         self._enqueue_envelope(env)
     except WsgiResponse as res:
         start_response(res.status, res.headers)
         return res.data
     except Exception as exc:
         logging.log_exception(__name__)
         msg = '{0!s}\n'.format(exc)
         content_length = str(len(msg))
         headers = [('Content-Length', content_length),
                    ('Content-Type', 'text/plain')]
         start_response('500 Internal Server Error', headers)
         return [msg]
     finally:
         ptr_lookup.kill(block=False)
Example #9
0
 def BANNER_(self, reply):
     self._ptr_lookup = PtrLookup(self.address[0])
     self._ptr_lookup.start()
     self._call_validator('banner', reply, self.address)
Example #10
0
 def test_run_dnssyntaxerror(self):
     self.mox.StubOutWithMock(dns_resolver, 'query')
     self.mox.ReplayAll()
     ptr = PtrLookup('abcd')
     assert_is_instance(ptr, gevent.Greenlet)
     assert_is_none(ptr._run())
 def test_run_bad_ip(self):
     self.mox.ReplayAll()
     ptr = PtrLookup('abcd')
     self.assertIsInstance(ptr, gevent.Greenlet)
     self.assertIsNone(ptr._run())