我正在为一些使用sqlacalchemy的代码编写UnitTests。我想测试filter调用,但似乎使用相同参数创建的sqlAlchemyBinaryExpression对象不相等:

AssertionError: Expected call: filter(<sqlalchemy.sql.elements.BinaryExpression object at 0x1037607d0>)
Actual call: filter(<sqlalchemy.sql.elements.BinaryExpression object at 0x1037590d0>)

我想我可以将它们都转换成字符串并进行比较,但这看起来很糟糕,如果不必这样做的话,我真的不想被迫调试字符串比较。有没有更好/更结构化的方法来比较UnitTests中的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

关于python - 单元测试sqlalchemy BinaryExpression,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/33679060/

10-13 04:38