单元测试sqlalchemy BinaryExpression
unittesting sqlalchemy BinaryExpressions
我正在为一些使用 SQLAlchemy 的代码编写单元测试。我想测试 filter
调用,但似乎使用相同参数创建的 SQLAlchemy BinaryExpression
对象不比较相等:
AssertionError: Expected call: filter(<sqlalchemy.sql.elements.BinaryExpression object at 0x1037607d0>)
Actual call: filter(<sqlalchemy.sql.elements.BinaryExpression object at 0x1037590d0>)
我想我可以将它们都转换为字符串并进行比较,但这看起来很老套,而且如果没有必要,我真的不想被迫尝试调试字符串比较。在单元测试中是否有任何 better/more-structured 方法来比较 BinaryExpression
?
你可以使用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
我正在为一些使用 SQLAlchemy 的代码编写单元测试。我想测试 filter
调用,但似乎使用相同参数创建的 SQLAlchemy BinaryExpression
对象不比较相等:
AssertionError: Expected call: filter(<sqlalchemy.sql.elements.BinaryExpression object at 0x1037607d0>)
Actual call: filter(<sqlalchemy.sql.elements.BinaryExpression object at 0x1037590d0>)
我想我可以将它们都转换为字符串并进行比较,但这看起来很老套,而且如果没有必要,我真的不想被迫尝试调试字符串比较。在单元测试中是否有任何 better/more-structured 方法来比较 BinaryExpression
?
你可以使用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