示例#1
0
def test_db_conf_env_dsn():
    with set_env({'MF_METADATA_DB_DSN': 'foo'}):
        # Should use default dsn with invalid dsn in environment
        assert DBConfiguration(
        ).dsn == 'dbname=postgres user=postgres host=localhost port=5432 password=postgres'

    with set_env({
            'MF_METADATA_DB_DSN':
            'dbname=testgres user=test_user host=test_host port=1234 password=test_pwd'
    }):
        # valid DSN in env should set correctly.
        assert DBConfiguration(
        ).dsn == 'dbname=testgres user=test_user host=test_host port=1234 password=test_pwd'
示例#2
0
def test_db_conf():
    with set_env():
        db_conf = DBConfiguration()
        assert db_conf.dsn == 'dbname=postgres user=postgres host=localhost port=5432 password=postgres'
        assert db_conf.pool_min == 1
        assert db_conf.pool_max == 10
        assert db_conf.timeout == 60
示例#3
0
def test_db_conf_arguments():
    with set_env():
        db_conf = DBConfiguration(host='foo',
                                  port=1234,
                                  user='******',
                                  password='******',
                                  database_name='bar')
        assert db_conf.dsn == 'dbname=bar user=user host=foo port=1234 password=password'
        assert db_conf.host == 'foo'
        assert db_conf.port == 1234
        assert db_conf.user == 'user'
        assert db_conf.password == 'password'
        assert db_conf.database_name == 'bar'
示例#4
0
def main():
    loop = asyncio.get_event_loop()
    the_app = app(loop, DBConfiguration())
    handler = the_app.make_handler()
    port = os.environ.get("MF_METADATA_PORT", 8080)
    host = str(os.environ.get("MF_METADATA_HOST", "0.0.0.0"))
    f = loop.create_server(handler, host, port)

    srv = loop.run_until_complete(f)
    print("serving on", srv.sockets[0].getsockname())
    try:
        loop.run_forever()
    except KeyboardInterrupt:
        pass
示例#5
0
def get_test_dbconf():
    """
    Returns a DBConfiguration suitable for the test environment, or exits pytest completely upon failure
    """
    db_conf = DBConfiguration(timeout=1)

    if db_conf.dsn != "dbname=test user=test host=db_test port=5432 password=test":
        pytest.exit(
            "The test suite should only be run in a test environment. \n \
            Configured database host is not suited for running tests. \n \
            expected DSN to be: dbname=test user=test host=db_test port=5432 password=test"
        )

    return db_conf
示例#6
0
def main():
    loop = asyncio.get_event_loop()
    # Set exception and signal handlers for async loop. Mainly for logging purposes.
    loop.set_exception_handler(async_loop_error_handler)
    for sig in (signal.SIGTERM, signal.SIGHUP, signal.SIGINT):
        loop.add_signal_handler(sig, lambda sig=sig: async_loop_signal_handler(sig))

    the_app = app(loop, DBConfiguration())
    handler = web.AppRunner(the_app)
    loop.run_until_complete(handler.setup())
    f = loop.create_server(handler.server, DEFAULT_SERVICE_HOST, DEFAULT_SERVICE_PORT)

    srv = loop.run_until_complete(f)
    print("serving on", srv.sockets[0].getsockname())
    try:
        loop.run_forever()
    except KeyboardInterrupt:
        pass
示例#7
0
def test_db_conf_env_default_prefix():
    with set_env({
            'MF_METADATA_DB_HOST': 'foo',
            'MF_METADATA_DB_PORT': '1234',
            'MF_METADATA_DB_USER': '******',
            'MF_METADATA_DB_PSWD': 'password',
            'MF_METADATA_DB_NAME': 'bar',
            'MF_METADATA_DB_POOL_MIN': '2',
            'MF_METADATA_DB_POOL_MAX': '4',
            'MF_METADATA_DB_TIMEOUT': '5'
    }):
        db_conf = DBConfiguration()
        assert db_conf.dsn == 'dbname=bar user=user host=foo port=1234 password=password'
        assert db_conf.host == 'foo'
        assert db_conf.port == 1234
        assert db_conf.user == 'user'
        assert db_conf.password == 'password'
        assert db_conf.database_name == 'bar'
        assert db_conf.pool_min == 2
        assert db_conf.pool_max == 4
        assert db_conf.timeout == 5
示例#8
0
def test_db_conf_dsn():
    with set_env():
        assert DBConfiguration(dsn='user=foo').dsn == 'user=foo'
示例#9
0
def test_db_conf_timeout():
    with set_env():
        db_conf = DBConfiguration(timeout=5)
        assert db_conf.timeout == 5
示例#10
0
def test_db_conf_pool_size():
    with set_env():
        db_conf = DBConfiguration(pool_min=2, pool_max=4)
        assert db_conf.pool_min == 2
        assert db_conf.pool_max == 4