Skip to content

Commit 2ff005b

Browse files
committed
Start MySQL from GH actions, upgrade ubuntu, and remove python versions for tests
1 parent 82cdf8d commit 2ff005b

File tree

2 files changed

+35
-35
lines changed

2 files changed

+35
-35
lines changed

.github/workflows/UnitTesting.yaml

Lines changed: 10 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -9,29 +9,30 @@ on:
99

1010
jobs:
1111
test:
12-
# "setup-python" action doesn't provide python 3.4 binaries for ubuntu-latest.
13-
# Sticking to Ubuntu 18.04 as recommended here:
14-
# https://github.com/actions/setup-python/issues/185#issuecomment-768232756
15-
runs-on: ubuntu-18.04
12+
runs-on: ubuntu-22.04
1613
env:
17-
py27: 2.7
18-
py34: 3.4
19-
py35: 3.5
20-
py36: 3.6
2114
py37: 3.7
2215
py38: 3.8
2316
py39: 3.9
2417
py310: '3.10'
2518
py311: '3.11'
19+
DB_DATABASE: test_db
20+
DB_USER: root
21+
DB_PASSWORD: root
2622
strategy:
2723
fail-fast: false
2824
matrix:
29-
python-version: [py27, py34, py35, py36, py37, py38, py39, py310, py311]
25+
python-version: [py37, py38, py39, py310, py311]
3026
testenv: [core, ext]
3127
steps:
3228
- name: Checkout repo
3329
uses: actions/checkout@v3
3430

31+
- name: Start MySQL
32+
run: |
33+
sudo /etc/init.d/mysql start
34+
mysql -e 'CREATE DATABASE ${{ env.DB_DATABASE }};' -u${{ env.DB_USER }} -p${{ env.DB_PASSWORD }}
35+
3536
- name: Setup Python
3637
uses: actions/setup-python@v4
3738
with:

tests/ext/pymysql/test_pymysql.py

Lines changed: 25 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,17 @@
11
import pymysql
22

33
import pytest
4-
import testing.mysqld
54

65
from aws_xray_sdk.core import patch
76
from aws_xray_sdk.core import xray_recorder
87
from aws_xray_sdk.core.context import Context
98
from aws_xray_sdk.ext.pymysql import unpatch
109

10+
MYSQL_USER = "root"
11+
MYSQL_PASSWORD = "root"
12+
MYSQL_HOST = "localhost"
13+
MYSQL_PORT = 3306
14+
MYSQL_DB_NAME = "test_db"
1115

1216
@pytest.fixture(scope='module', autouse=True)
1317
def patch_module():
@@ -32,46 +36,41 @@ def construct_ctx():
3236

3337
def test_execute_dsn_kwargs():
3438
q = 'SELECT 1'
35-
with testing.mysqld.Mysqld() as mysqld:
36-
dsn = mysqld.dsn()
37-
conn = pymysql.connect(database=dsn['db'],
38-
user=dsn['user'],
39-
password='',
40-
host=dsn['host'],
41-
port=dsn['port'])
42-
cur = conn.cursor()
43-
cur.execute(q)
39+
conn = pymysql.connect(database=MYSQL_DB_NAME,
40+
user=MYSQL_USER,
41+
password=MYSQL_PASSWORD,
42+
host=MYSQL_HOST,
43+
port=MYSQL_PORT)
44+
cur = conn.cursor()
45+
cur.execute(q)
4446

4547
subsegment = xray_recorder.current_segment().subsegments[-1]
4648
assert subsegment.name == 'execute'
4749
sql = subsegment.sql
4850
assert sql['database_type'] == 'MySQL'
49-
assert sql['user'] == dsn['user']
51+
assert sql['user'] == MYSQL_USER
5052
assert sql['driver_version'] == 'PyMySQL'
5153
assert sql['database_version']
5254

5355

5456
def test_execute_bad_query():
5557
q = "SELECT blarg"
56-
with testing.mysqld.Mysqld() as mysqld:
57-
dsn = mysqld.dsn()
58-
conn = pymysql.connect(database=dsn['db'],
59-
user=dsn['user'],
60-
password='',
61-
host=dsn['host'],
62-
port=dsn['port'])
63-
64-
cur = conn.cursor()
65-
try:
66-
cur.execute(q)
67-
except Exception:
68-
pass
69-
58+
conn = pymysql.connect(database=MYSQL_DB_NAME,
59+
user=MYSQL_USER,
60+
password=MYSQL_PASSWORD,
61+
host=MYSQL_HOST,
62+
port=MYSQL_PORT)
63+
cur = conn.cursor()
64+
try:
65+
cur.execute(q)
66+
except Exception:
67+
pass
68+
7069
subsegment = xray_recorder.current_segment().subsegments[-1]
7170
assert subsegment.name == "execute"
7271
sql = subsegment.sql
7372
assert sql['database_type'] == 'MySQL'
74-
assert sql['user'] == dsn['user']
73+
assert sql['user'] == MYSQL_USER
7574
assert sql['driver_version'] == 'PyMySQL'
7675
assert sql['database_version']
7776

0 commit comments

Comments
 (0)