def test_client_exception_throw(self): client = Client() try: yield client.fetch(Request.new('http://wpull-no-exist.invalid')) except NetworkError: pass else: self.fail()
def test_client_exception_recovery(self): connection_factory = functools.partial(Connection, read_timeout=0.2) host_connection_pool_factory = functools.partial( HostConnectionPool, connection_factory=connection_factory) connection_pool = ConnectionPool(host_connection_pool_factory) client = Client(connection_pool) for dummy in range(7): try: yield client.fetch( Request.new(self.get_url('/header_early_close')), recorder=DebugPrintRecorder() ) except NetworkError: pass else: self.fail() for dummy in range(7): response = yield client.fetch(Request.new(self.get_url('/'))) self.assertEqual(200, response.status_code)
def test_connection_pool_clean(self): connection_pool = ConnectionPool() client = Client(connection_pool) requests = [client.fetch( Request.new(self.get_url('/'))) for dummy in range(12)] responses = yield requests for response in responses: self.assertEqual(200, response.status_code) connection_pool.clean() self.assertEqual(0, len(connection_pool))
def test_connection_pool_min(self): connection_pool = ConnectionPool() client = Client(connection_pool) for dummy in range(2): response = yield client.fetch( Request.new(self.get_url('/sleep_short'))) self.assertEqual(200, response.status_code) self.assertEqual(b'12', response.body.content) self.assertEqual(1, len(connection_pool)) connection_pool_entry = list(connection_pool.values())[0] self.assertIsInstance(connection_pool_entry, HostConnectionPool) self.assertEqual(1, len(connection_pool_entry))
def test_connection_pool_over_max(self): connection_pool = ConnectionPool() client = Client(connection_pool) requests = [client.fetch( Request.new(self.get_url('/sleep_short'))) for dummy in range(12)] responses = yield requests for response in responses: self.assertEqual(200, response.status_code) self.assertEqual(b'12', response.body.content) self.assertEqual(1, len(connection_pool)) connection_pool_entry = list(connection_pool.values())[0] self.assertIsInstance(connection_pool_entry, HostConnectionPool) self.assertEqual(6, len(connection_pool_entry))