Skip to content

Commit 7439543

Browse files
Merge branch 'main' into mcp-postgres-tests
2 parents fc20a02 + de18a50 commit 7439543

File tree

4 files changed

+45
-0
lines changed

4 files changed

+45
-0
lines changed

.ci/cloudbuild.yaml

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,8 @@ steps:
2525
"MYSQL_IAM_USER",
2626
"MYSQL_PASS",
2727
"MYSQL_DB",
28+
"MYSQL_MCP_CONNECTION_NAME",
29+
"MYSQL_MCP_PASS",
2830
"POSTGRES_CONNECTION_NAME",
2931
"POSTGRES_USER",
3032
"POSTGRES_IAM_USER",
@@ -59,6 +61,10 @@ availableSecrets:
5961
env: "MYSQL_PASS"
6062
- versionName: "projects/$PROJECT_ID/secrets/MYSQL_DB/versions/latest"
6163
env: "MYSQL_DB"
64+
- versionName: "projects/$PROJECT_ID/secrets/MYSQL_MCP_CONNECTION_NAME/versions/latest"
65+
env: "MYSQL_MCP_CONNECTION_NAME"
66+
- versionName: "projects/$PROJECT_ID/secrets/MYSQL_MCP_PASS/versions/latest"
67+
env: "MYSQL_MCP_PASS"
6268
- versionName: "projects/$PROJECT_ID/secrets/POSTGRES_CONNECTION_NAME/versions/latest"
6369
env: "POSTGRES_CONNECTION_NAME"
6470
- versionName: "projects/$PROJECT_ID/secrets/POSTGRES_USER/versions/latest"

.github/workflows/tests.yml

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -72,6 +72,8 @@ jobs:
7272
MYSQL_IAM_USER:${{ vars.GOOGLE_CLOUD_PROJECT }}/MYSQL_USER_IAM_PYTHON
7373
MYSQL_PASS:${{ vars.GOOGLE_CLOUD_PROJECT }}/MYSQL_PASS
7474
MYSQL_DB:${{ vars.GOOGLE_CLOUD_PROJECT }}/MYSQL_DB
75+
MYSQL_MCP_CONNECTION_NAME:${{ vars.GOOGLE_CLOUD_PROJECT }}/MYSQL_MCP_CONNECTION_NAME
76+
MYSQL_MCP_PASS:${{ vars.GOOGLE_CLOUD_PROJECT }}/MYSQL_MCP_PASS
7577
POSTGRES_CONNECTION_NAME:${{ vars.GOOGLE_CLOUD_PROJECT }}/POSTGRES_CONNECTION_NAME
7678
POSTGRES_USER:${{ vars.GOOGLE_CLOUD_PROJECT }}/POSTGRES_USER
7779
POSTGRES_IAM_USER:${{ vars.GOOGLE_CLOUD_PROJECT }}/POSTGRES_USER_IAM_PYTHON
@@ -96,6 +98,8 @@ jobs:
9698
MYSQL_IAM_USER: "${{ steps.secrets.outputs.MYSQL_IAM_USER }}"
9799
MYSQL_PASS: "${{ steps.secrets.outputs.MYSQL_PASS }}"
98100
MYSQL_DB: "${{ steps.secrets.outputs.MYSQL_DB }}"
101+
MYSQL_MCP_CONNECTION_NAME: "${{ steps.secrets.outputs.MYSQL_MCP_CONNECTION_NAME }}"
102+
MYSQL_MCP_PASS: "${{ steps.secrets.outputs.MYSQL_MCP_PASS }}"
99103
POSTGRES_CONNECTION_NAME: "${{ steps.secrets.outputs.POSTGRES_CONNECTION_NAME }}"
100104
POSTGRES_USER: "${{ steps.secrets.outputs.POSTGRES_USER }}"
101105
POSTGRES_IAM_USER: "${{ steps.secrets.outputs.POSTGRES_IAM_USER }}"

tests/system/test_pymysql_connection.py

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -124,3 +124,22 @@ def test_lazy_pymysql_connection() -> None:
124124
curr_time = time[0]
125125
assert type(curr_time) is datetime
126126
connector.close()
127+
128+
129+
def test_MCP_pymysql_connection() -> None:
130+
"""Basic test to get time from database using MCP enabled instance."""
131+
inst_conn_name = os.environ["MYSQL_MCP_CONNECTION_NAME"]
132+
user = os.environ["MYSQL_USER"]
133+
password = os.environ["MYSQL_MCP_PASS"]
134+
db = os.environ["MYSQL_DB"]
135+
ip_type = os.environ.get("IP_TYPE", "public")
136+
137+
engine, connector = create_sqlalchemy_engine(
138+
inst_conn_name, user, password, db, ip_type
139+
)
140+
with engine.connect() as conn:
141+
time = conn.execute(sqlalchemy.text("SELECT NOW()")).fetchone()
142+
conn.commit()
143+
curr_time = time[0]
144+
assert type(curr_time) is datetime
145+
connector.close()

tests/system/test_pymysql_iam_auth.py

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -113,3 +113,19 @@ def test_lazy_pymysql_iam_authn_connection() -> None:
113113
curr_time = time[0]
114114
assert type(curr_time) is datetime
115115
connector.close()
116+
117+
118+
def test_MCP_pymysql_iam_authn_connection() -> None:
119+
"""Basic test to get time from database using MCP enabled instance."""
120+
inst_conn_name = os.environ["MYSQL_MCP_CONNECTION_NAME"]
121+
user = os.environ["MYSQL_IAM_USER"]
122+
db = os.environ["MYSQL_DB"]
123+
ip_type = os.environ.get("IP_TYPE", "public")
124+
125+
engine, connector = create_sqlalchemy_engine(inst_conn_name, user, db, ip_type)
126+
with engine.connect() as conn:
127+
time = conn.execute(sqlalchemy.text("SELECT NOW()")).fetchone()
128+
conn.commit()
129+
curr_time = time[0]
130+
assert type(curr_time) is datetime
131+
connector.close()

0 commit comments

Comments
 (0)