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")
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)