def test_invalid_minsize_and_maxsize(loop, db): with pytest.raises(ValueError): yield from aiosqlite3.create_pool(database=db, loop=loop, minsize=-1) with pytest.raises(ValueError): yield from aiosqlite3.create_pool(database=db, loop=loop, minsize=5, maxsize=2)
async def test_all_context_managers(db, loop, executor): kw = dict(database=db, loop=loop, executor=executor) async with aiosqlite3.create_pool(**kw) as pool: async with pool.acquire() as conn: async with conn.cursor() as cur: assert not pool.closed assert not conn.closed assert not cur.closed await cur.execute('SELECT 1') val = await cur.fetchone() assert (1, ) == tuple(val) assert pool.closed assert conn.closed assert cur.closed
def _create_engine(database, minsize=1, maxsize=10, loop=None, dialect=_dialect, paramstyle=None, **kwargs): if loop is None: # pragma: no cover loop = asyncio.get_event_loop() pool = yield from aiosqlite3.create_pool(database=database, minsize=minsize, maxsize=maxsize, loop=loop, **kwargs) conn = yield from pool.acquire() try: return Engine(dialect, pool, paramstyle=paramstyle, **kwargs) finally: # pass yield from pool.release(conn)
def go(*, no_loop=False, **kwargs): nonlocal pool params = {'database': db} params.update(kwargs) pool = yield from aiosqlite3.create_pool(loop=loop, **params) return pool
def make(): pool = yield from aiosqlite3.create_pool(database=db, loop=loop) conn = yield from pool.acquire()
def test_default_loop(loop, db): pool = yield from aiosqlite3.create_pool(database=db) assert pool._loop is loop pool.close() yield from pool.wait_closed()
"SELECT exam_id, exam_title, exam_url, pub_time, exam_type FROM huatu WHERE status='pre_notice'" ) result = await _result.fetchall() logger.debug(result) for item in result: j_push(item) await conn.execute( "UPDATE huatu SET status='noticed', update_time=CURRENT_TIMESTAMP WHERE exam_id=?", (item.get('exam_id'), )) await conn.commit() if __name__ == '__main__': loop = asyncio.get_event_loop() pool = loop.run_until_complete( aiosqlite3.create_pool('./huatu.db', loop=loop, echo=True)) loop.run_until_complete(init_table(pool)) loop.run_until_complete(crawl_teacher_exam(pool)) loop.run_until_complete(crawl_government_exam(pool)) sched = AsyncIOScheduler(event_loop=loop) sched.add_job(crawl_teacher_exam, args=[pool], trigger='interval', minutes=30) sched.add_job(crawl_government_exam, args=[pool], trigger='interval', minutes=30) sched.add_job(push_notice, args=[pool], trigger='interval', minutes=3) sched.start() try: