def test_pool_full(self): self.init_server() with self.makefile() as long_request: with self.makefile() as short_request: self.send_request_to_fd(short_request, '/short') self.send_request_to_fd(long_request, '/long') # keep long_request in scope, otherwise the connection will be closed gevent.get_hub().loop.update_now() gevent.sleep(_DEFAULT_SOCKET_TIMEOUT / 10.0) self.assertPoolFull() self.assertPoolFull() # XXX Not entirely clear why this fails (timeout) on appveyor; # underlying socket timeout causing the long_request to close? self.assertPoolFull() # gevent.http and gevent.wsgi cannot detect socket close, so sleep a little # to let /short request finish gevent.sleep(_DEFAULT_SOCKET_TIMEOUT) # XXX: This tends to timeout. Which is weird, because what would have # been the third call to assertPoolFull() DID NOT timeout, hence why it # was removed. try: self.assertRequestSucceeded() except socket.timeout: greentest.reraiseFlakyTestTimeout()