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

Class PGTest

compatibility/pg/python/pg_test.py:3–93  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

1import psycopg
2
3class PGTest:
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 = psycopg.connect(
43 host=ip,
44 port=port,
45 dbname="postgres",
46 user=user,
47 password=password,
48 autocommit=True
49 )
50 except Exception as e:
51 raise RuntimeError(e)
52
53 def disconnect(self):
54 self.conn.close()
55
56 def add_test(self, query, expected_results):
57 self.tests.append(self.Test(query, expected_results))
58
59 def run_tests(self):
60 for test in self.tests:

Callers 1

pg_test.pyFile · 0.70

Calls

no outgoing calls

Tested by

no test coverage detected