【问题标题】:How to mock redshift queries integration test in Python and Pytest如何在 Python 和 Pytest 中模拟 redshift 查询集成测试
【发布时间】:2022-11-11 11:47:38
【问题描述】:

我的 Python 代码如下所示:

db = de_core.db.redshift.get_connection()
...
query = get_query(f"export_user_{user_component}").render()
result = util.execute_query(db, query, user_id=user_id)

它实际上执行sql。我想编写一个测试这个 sql 的集成测试。该 sql 是 Redshift 风格的 sql ......所以像 postgresql 但不是真的。测试这个的最佳方法是什么? Moto 似乎不支持这种测试。是否有任何库支持这种集成测试,我可以在其中模拟出与行为类似的真正的红移连接?

我希望能够在测试中设置表、创建记录、针对这个模拟执行 sql 并返回结果。有这样的吗?

【问题讨论】:

    标签: python pytest amazon-redshift


    【解决方案1】:

    通常,模拟数据库需要数据库引擎在某处运行以执行您的 SQL。

    这就是存在test-containersembedded-postgres 之类的东西的原因。传统应用程序会使用它们进行集成测试。

    但正如您所说,Redshift 是 Posgtres 风格的,所以如果您的代码是 Redshift 特定的,那么您实际上可能需要 Redshift 来运行您的测试,并使用一个测试专用的数据库。

    创建包装类的一些灵感:https://codereview.stackexchange.com/questions/123143/unit-tests-for-a-redshift-wrapper-class

    【讨论】:

      猜你喜欢
      • 2019-12-07
      • 1970-01-01
      • 2019-07-20
      • 2011-09-30
      • 1970-01-01
      • 2012-04-25
      • 1970-01-01
      • 1970-01-01
      • 2018-08-14
      相关资源
      最近更新 更多