def test_no_connection_available_by_timeout(self): mock_conn = Mock() create_func = Mock(return_value=mock_conn) pool = DBConnectionPool(create_func, min_size=1, max_size=1) with pool.acquire() as _: with self.assertRaises(PoolTimeout): with pool.acquire(timeout=0.1) as _: pass
def test_connection_returned_if_on_release_fails(self): mock_conn = Mock() create_func = Mock(return_value=mock_conn) pool = DBConnectionPool(create_func, min_size=1, max_size=1) pool.on_release = Mock(side_effect=RuntimeError) with pool.acquire() as _: pass self.assertEqual(pool._pool.get_nowait(), mock_conn)
def test_acquire_calls_on_acquire(self): mock_conn = Mock() create_func = Mock(return_value=mock_conn) pool = DBConnectionPool(create_func, min_size=1, max_size=1) pool.on_acquire = Mock() with pool.acquire() as conn: self.assertEqual(conn, mock_conn) pool.on_acquire.assert_called_with(mock_conn)
def test_acquire_fails_if_on_acquire_fails(self): mock_conn = Mock() create_func = Mock(return_value=mock_conn) pool = DBConnectionPool(create_func, min_size=1, max_size=1) pool.on_acquire = Mock(side_effect=RuntimeError) pool.on_return = Mock() with self.assertRaises(RuntimeError): with pool.acquire() as conn: pass pool.on_return.assert_called_with(mock_conn)
def test_acquire_fails_if_pool_closed(self): pool = DBConnectionPool(Mock()) pool.close() with self.assertRaises(RuntimeError): with pool.acquire() as p: pass