def build_pool_sync(self, *args, **kwargs): f = self.build_pool(*args, **kwargs) # could use gen_test(lambda x: (yield f))(self) # but it does not work in Python 2.6 for some reason def runner(x): yield f gen_test(timeout=30)(runner)(self) return f.result()
def run_parallel_queries(self, jobs=None): """Testing that pool queries database in parallel""" jobs = jobs or max(self.pool_size, self.max_size if self.max_size else 0) query_sleep = 2 sleep_time = query_sleep * float(jobs/self.pool_size) def func(self): to_yield = [] for i in range(jobs): to_yield.append(self.db.execute('SELECT pg_sleep(%s);' % query_sleep)) yield to_yield start_time = time.time() gen_test(func)(self) execution_time = time.time() - start_time self.assertLess(execution_time, sleep_time*1.10, msg="Query execution was too long")
def wrapper(test): @functools.wraps(test) async def _wrapp(test_case): _ids = create(wrapper.names, test_case) await test(test_case, _ids) return gen_test(_wrapp)
def safe_gen_test(f): return gen_test(closing_gen(f))
def __wrapper(*args, **kwargs): return run_with_context_resource(gen_test(func), *args, **kwargs)