コード例 #1
0
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)
コード例 #2
0
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
コード例 #3
0
ファイル: engine.py プロジェクト: JoshYuJump/aiosqlite3
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)
コード例 #4
0
 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
コード例 #5
0
 def make():
     pool = yield from aiosqlite3.create_pool(database=db, loop=loop)
     conn = yield from pool.acquire()
コード例 #6
0
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()
コード例 #7
0
ファイル: ht_exam.py プロジェクト: daominwang/xtmin_demo
            "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: