swi*_*ard 6 python sqlalchemy mocking python-unittest
我正在为一些使用SQLAlchemy的代码编写一些单元测试.我想测试filter调用,但似乎BinaryExpression使用相同参数创建的SQLAlchemy 对象不能比较相等:
AssertionError: Expected call: filter(<sqlalchemy.sql.elements.BinaryExpression object at 0x1037607d0>)
Actual call: filter(<sqlalchemy.sql.elements.BinaryExpression object at 0x1037590d0>)
Run Code Online (Sandbox Code Playgroud)
我想我可以将它们都转换为字符串并进行比较,但这看起来很糟糕,而且如果我不需要,我真的不会被迫尝试调试字符串比较.是否有更好/更结构化的方法来比较单位测试中的BinaryExpressions?
你可以使用比较方法
>>> 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
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
959 次 |
| 最近记录: |