加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Python > 正文

python – unittesting sqlalchemy BinaryExpressions

发布时间:2020-12-16 22:59:17 所属栏目:Python 来源:网络整理
导读:我正在为一些使用SQLAlchemy的代码编写一些单元测试.我想测试过滤器调用,但似乎使用相同参数创建的SQLAlchemy BinaryExpression对象不比较相等: AssertionError: Expected call: filter(sqlalchemy.sql.elements.BinaryExpression object at 0x1037607d0)Ac
我正在为一些使用SQLAlchemy的代码编写一些单元测试.我想测试过滤器调用,但似乎使用相同参数创建的SQLAlchemy BinaryExpression对象不比较相等:
AssertionError: Expected call: filter(<sqlalchemy.sql.elements.BinaryExpression object at 0x1037607d0>)
Actual call: filter(<sqlalchemy.sql.elements.BinaryExpression object at 0x1037590d0>)

我想我可以将它们都转换为字符串并进行比较,但这看起来很糟糕,而且如果我不需要,我真的不会被迫尝试调试字符串比较.是否有更好/更结构化的方法来比较单元测试中的BinaryExpressions?

解决方法

你可以使用 compare方法
>>> binary_expression1 = Table.id==1
>>> binary_expression1
<sqlalchemy.sql.elements.BinaryExpression object at 0x7ff0b7c6f7d0>
>>> binary_expression2 = Table.id==1
>>> binary_expression2
<sqlalchemy.sql.elements.BinaryExpression object at 0x7ff0b7c4a490>
>>> binary_expression1.compare(binary_expression2)
True

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读