Skip to content

Commit dd66d73

Browse files
committed
fix(pymysql): normalize database and db parameter precedence
1 parent 68635c6 commit dd66d73

2 files changed

Lines changed: 14 additions & 2 deletions

File tree

google/cloud/sql/connector/pymysql.py

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -53,8 +53,9 @@ def connect(
5353
timeout = kwargs.pop("timeout")
5454
kwargs["connect_timeout"] = kwargs.get("connect_timeout", timeout)
5555

56-
# map 'db' to 'database' to avoid deprecation warning in pymysql
57-
db = kwargs.pop("db", None)
56+
# map 'db' to 'database' to avoid deprecation warning in pymysql,
57+
# giving precedence to 'database' if both are provided
58+
db = kwargs.pop("database", kwargs.pop("db", None))
5859
if db is not None:
5960
kwargs["database"] = db
6061

tests/unit/test_pymysql.py

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -85,4 +85,15 @@ def test_pymysql_database_param(kwargs: Any) -> None:
8585
assert call_kwargs["database"] == "my-db-2"
8686
assert "db" not in call_kwargs
8787

88+
# Test with both 'database' and 'db', where 'database' takes precedence
89+
kwargs_both = kwargs.copy()
90+
kwargs_both["database"] = "my-db-1"
91+
kwargs_both["db"] = "my-db-2"
92+
with patch("pymysql.Connection") as mock_conn:
93+
pymysql_connect(ip_addr, sock, **kwargs_both)
94+
_, call_kwargs = mock_conn.call_args
95+
assert call_kwargs["database"] == "my-db-1"
96+
assert "db" not in call_kwargs
97+
98+
8899

0 commit comments

Comments
 (0)