mirror of
https://github.com/dolthub/dolt.git
synced 2026-01-30 10:45:18 -06:00
Added Python SQLAlchemy test to mysql-client-tests
This commit is contained in:
56
mysql-client-tests/python/sqlalchemy-test.py
Normal file
56
mysql-client-tests/python/sqlalchemy-test.py
Normal file
@@ -0,0 +1,56 @@
|
||||
import sqlalchemy
|
||||
|
||||
from sqlalchemy.engine import Engine
|
||||
from sqlalchemy import create_engine
|
||||
|
||||
import sys
|
||||
|
||||
QUERY_RESPONSE = [
|
||||
{ "create table test (pk int, value int, primary key(pk))": [] },
|
||||
{ "describe test": [
|
||||
('pk', 'int', 'NO', 'PRI', '', ''),
|
||||
('value', 'int', 'YES', '', '', '')
|
||||
] },
|
||||
{ "insert into test (pk, value) values (0,0)": () },
|
||||
{ "select * from test": [(0,0)] }
|
||||
]
|
||||
|
||||
def main():
|
||||
user = sys.argv[1]
|
||||
port = int(sys.argv[2])
|
||||
db = sys.argv[3]
|
||||
|
||||
conn_string_base = "mysql+mysqlconnector://"
|
||||
|
||||
engine = create_engine(conn_string_base +
|
||||
"{user}@127.0.0.1:{port}/{db}".format(user=user,
|
||||
port=port,
|
||||
db=db)
|
||||
)
|
||||
|
||||
with engine.connect() as con:
|
||||
for query_response in QUERY_RESPONSE:
|
||||
query = list(query_response.keys())[0]
|
||||
exp_results = query_response[query]
|
||||
|
||||
result_proxy = con.execute(query)
|
||||
|
||||
try:
|
||||
results = result_proxy.fetchall()
|
||||
if ( results != exp_results ):
|
||||
print("Query:")
|
||||
print(query)
|
||||
print("Expected:")
|
||||
print(exp_results)
|
||||
print("Received:")
|
||||
print(results)
|
||||
exit(1)
|
||||
# You can't call fetchall on an insert
|
||||
# so we'll just ignore the exception
|
||||
except sqlalchemy.exc.ResourceClosedError:
|
||||
pass
|
||||
|
||||
con.close()
|
||||
exit(0)
|
||||
|
||||
main()
|
||||
Reference in New Issue
Block a user