【发布时间】:2019-11-21 20:30:23
【问题描述】:
我有几个 SQL 语句存储为由 Python 脚本执行的文件。该数据库托管在 Snowflake 中,我使用 Snowflake SQLAlchemy 连接到它。
如何测试这些语句?我不想执行它们,我只想检查它们是否可以执行。
检查它是否是有效的标准 SQL 是一件非常基本的事情。更好的答案是考虑雪花特有的东西,比如
copy into s3://example from table ...
最好的答案是同时检查权限,例如如果表可见/可读,则用于 SELECT 语句。
【问题讨论】:
-
典型的 Python(和其他语言)unit 测试只会模拟数据库并专注于软件。如果您真的希望您的单元测试能够命中数据库,那么它就不再是单元测试,而是集成测试。如果 Python 有一个内存数据库,你也许可以将它用于严格的单元测试。
-
啊,好的。所以你建议使用 sqlite 创建一个假数据库进行本地测试?
-
内存数据库是一种选择。除此之外,Python 也无能为力,比如编写 SQL 解析器等。
标签: python sql unit-testing snowflake-cloud-data-platform linter