Exemple #1
0
def test_set_pool(mocker):
    pool = mocker.Mock()
    connector = aiopg_connector.AiopgConnector()

    connector.set_pool(pool)

    assert connector._pool is pool
Exemple #2
0
def test_set_pool_already_set(mocker):
    pool = mocker.Mock()
    connector = aiopg_connector.AiopgConnector()
    connector.set_pool(pool)

    with pytest.raises(exceptions.PoolAlreadySet):
        connector.set_pool(pool)
async def test_open_async_no_pool_specified(mock_async_create_pool):
    connector = aiopg_connector.AiopgConnector()

    await connector.open_async()

    assert connector._pool_externally_set is False
    mock_async_create_pool.assert_called_once_with(connector._pool_args)
async def test_open_async_pool_argument_specified(pool, mock_async_create_pool):
    connector = aiopg_connector.AiopgConnector()

    await connector.open_async(pool)

    assert connector._pool_externally_set is True
    mock_async_create_pool.assert_not_called()
    assert connector._pool == pool
async def test_listen_notify_pool_one_connection(mocker, caplog):
    pool = mocker.Mock(maxsize=1)
    connector = aiopg_connector.AiopgConnector()
    connector.set_pool(pool)
    caplog.clear()

    await connector.listen_notify(None, None)

    assert {e.action for e in caplog.records} == {"listen_notify_disabled"}
 def _(**kwargs):
     json_dumps = kwargs.pop("json_dumps", None)
     json_loads = kwargs.pop("json_loads", None)
     connection_params.update(kwargs)
     connector = aiopg_connector.AiopgConnector(
         json_dumps=json_dumps, json_loads=json_loads, **connection_params
     )
     connectors.append(connector)
     return connector
def schema_database(db_factory):
    dbname = "procrastinate_schema"
    db_factory(dbname=dbname)

    # apply the current procrastinate schema to the "procrastinate_schema" database
    connector = aiopg_connector.AiopgConnector(dbname=dbname)
    connector.open()
    schema_manager = schema.SchemaManager(connector=connector)
    schema_manager.apply_schema()
    connector.close()

    return dbname
async def test_destructor(connection_params, capsys):
    connector = aiopg_connector.AiopgConnector(**connection_params)
    await connector.execute_query_async("SELECT 1")

    assert len(connector._pool._free) == 1

    # "del connector" causes a ResourceWarning from aiopg.Pool if the
    # AiopgConnector destructor doesn't close the connections managed
    # by the pool. Unfortunately there's no way to catch that warning,
    # even by using filterwarnings to turn it into an exception, as
    # Python ignores exceptions that occur in destructors
    del connector
Exemple #9
0
def setup_db():

    dbname = "procrastinate_test_template"
    db_create(dbname=dbname)

    connector = aiopg_connector.AiopgConnector(dbname=dbname)
    schema_manager = schema.SchemaManager(connector=connector)
    schema_manager.apply_schema()
    # We need to close the psycopg2 underlying connection synchronously
    connector.close()

    yield dbname

    db_drop(dbname=dbname)
Exemple #10
0
def schema_database(db_factory, pum):
    dbname = "procrastinate_schema"
    db_factory(dbname=dbname)

    # apply the current procrastinate schema to procrastinate_schema
    connector = aiopg_connector.AiopgConnector(dbname=dbname)
    schema_manager = schema.SchemaManager(connector=connector)
    schema_manager.apply_schema()
    connector.close()

    # set the baseline version in procrastinate_schema
    # This db is as far as can be.
    pum("baseline", f"--pg_service {dbname} --baseline 999.999.999")

    return dbname
Exemple #11
0
def test_wrap_exceptions_applied(method_name):
    connector = aiopg_connector.AiopgConnector()
    assert getattr(connector, method_name)._exceptions_wrapped is True
Exemple #12
0
async def not_opened_aiopg_connector(connection_params):
    yield aiopg_connector_module.AiopgConnector(**connection_params)
Exemple #13
0
def connector():
    return aiopg_connector.AiopgConnector()
Exemple #14
0
async def pg_connector(connection_params):
    connector = aiopg_connector.AiopgConnector(**connection_params)
    yield connector
    await connector.close_async()
def test_get_pool():
    connector = aiopg_connector.AiopgConnector()

    with pytest.raises(exceptions.AppNotOpen):
        _ = connector.pool