diff --git a/asyncpg/connect_utils.py b/asyncpg/connect_utils.py index da616523..88982e39 100644 --- a/asyncpg/connect_utils.py +++ b/asyncpg/connect_utils.py @@ -64,7 +64,7 @@ def _parse_connect_dsn_and_args(*, dsn, host, port, user, port = int(parsed.port) if parsed.hostname and host is None: - host = parsed.hostname + host = parsed.hostname.split(',') if parsed.path and database is None: database = parsed.path diff --git a/tests/test_connect.py b/tests/test_connect.py index 3bc49d95..4d9930c4 100644 --- a/tests/test_connect.py +++ b/tests/test_connect.py @@ -316,6 +316,14 @@ class TestConnectParams(tb.TestCase): 'dsn': 'pq:///dbname?host=/unix_sock/test&user=spam', 'error': (ValueError, 'invalid DSN') }, + + { + 'dsn': 'postgres://user3:123123@localhost,127.0.0.1:5555/abcdef', + 'result': ([('localhost', 5555), ('127.0.0.1', 5555)], { + 'user': 'user3', + 'password': '123123', + 'database': 'abcdef'}) + }, ] @contextlib.contextmanager