我有一个代码执行redshift查询,如下所示:
def send_sql_query(source, sql_query, lst=None):
connection = psycopg2.connect(
host=os.environ["REDSHIFT_HOST"],
port="5439",
dbname="dbname",
user=os.environ["REDSHIFT_USERNAME"],
password=os.environ["REDSHIFT_PASSWORD"],
cursor = connection.cursor()
cursor.execute(sql_query, lst)
sql_results = cursor.fetchall()
return sql_results
finally:
if connection:
connection.close()
我想以一种它将检索和sql_query的方式来模拟该方法,并且该方法将保存假数据库数据(最好在json中),但是将使用sql_query在假数据上执行SQL并返回结果
使用mock.return_value和mock.side_effect无济于事,因为我想验证SQL查询是否正确。编写代码以返回结果并不能真正检查SQL查询
python中有框架吗?
答案 0 :(得分:0)
测试SQL需要SQL引擎。由于不同的数据库使用不同的方言,并且当您使用PostgreSQL作为主数据库时,您应该使用假数据在您的开发环境中安装PostgreSQL实例,并在测试时将查询重定向到那里。
当您使用环境存储数据库的引用时,您只需设置一个指向测试数据库的测试环境。