MCPcopy Create free account
hub / github.com/apecloud/myduckserver / MySQLTest

Class MySQLTest

compatibility/mysql/python/mysql_test.py:3–91  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

1import mysql.connector
2
3class MySQLTest:
4 class Test:
5 def __init__(self, query, expected_results):
6 self.query = query
7 self.expected_results = expected_results
8
9 def run(self, cursor):
10 print(f"Running test: {self.query}")
11 cursor.execute(self.query)
12 if cursor.description is None:
13 if len(self.expected_results) != 0:
14 print(f"Expected {len(self.expected_results)} rows, got 0")
15 return False
16 print("Returns 0 rows")
17 return True
18
19 rows = cursor.fetchall()
20 if len(rows[0]) != len(self.expected_results[0]):
21 print(f"Expected {len(self.expected_results[0])} columns, got {len(rows[0])}")
22 return False
23
24 for row, expected_row in zip(rows, self.expected_results):
25 if list(map(str, row)) != list(map(str, expected_row)):
26 print(f"Expected: {list(map(str, expected_row))}, got: {list(map(str, row))}")
27 return False
28
29 print(f"Returns {len(rows)} rows")
30 if len(rows) != len(self.expected_results):
31 print(f"Expected {len(self.expected_results)} rows")
32 return False
33
34 return True
35
36 def __init__(self):
37 self.conn = None
38 self.tests = []
39
40 def connect(self, ip, port, user, password):
41 try:
42 self.conn = mysql.connector.connect(
43 host=ip,
44 port=port,
45 user=user,
46 password=password
47 )
48 except Exception as e:
49 raise RuntimeError(e)
50
51 def disconnect(self):
52 self.conn.close()
53
54 def add_test(self, query, expected_results):
55 self.tests.append(self.Test(query, expected_results))
56
57 def run_tests(self):
58 for test in self.tests:
59 cursor = None
60 try:

Callers 1

mysql_test.pyFile · 0.70

Calls

no outgoing calls

Tested by

no test coverage detected