def test_parse_db_url():
    url = "postgresql://*****:*****@localhost/test_db"

    scheme, username, password, host, port, database = parse_db_url(url)

    eq_(scheme, "postgresql")
    eq_(username, "tester")
    eq_(password, "pwd")
    eq_(host, "localhost")
    eq_(port, 5432)
    eq_(database, "test_db")
Example #2
0
def connect():
    db_url = os.getenv("TEST_DB_URL")

    if db_url is None:
        raise Exception("Environment variable TEST_DB_URL not set")

    scheme, user, password, host, port, database = parse_db_url(db_url)

    if scheme != "postgresql":
        raise Exception("Only PostgreSQL connections are supported")

    conn = psycopg2.connect(database=database, user=user, password=password,
         host=host, port=port, connection_factory=psycopg2.extras.LoggingConnection)

    logging.info("connected to database {0}/{1}".format(host, database))

    conn.initialize(logging.getLogger(""))

    return conn
def test_connect_without_database():
    db_url = os.getenv("TEST_DB_URL")

    scheme, user, password, host, port, database = parse_db_url(db_url)

    assert len(scheme) > 0

    assert len(user) > 0

    assert len(password) > 0

    assert len(host) > 0

    assert port > 0

    db_url_without_database = "{}://{}:{}@{}".format(scheme, user, password, host)

    print(db_url_without_database)

    conn = connect(db_url_without_database)

    conn.close()
def test_parse_db_url_port():
    url = "postgresql://*****:*****@localhost:1234/test_db"

    _scheme, _username, _password, _host, port, _database = parse_db_url(url)

    eq_(port, 1234)