python – unittesting sqlalchemy BinaryExpressions

前端之家收集整理的这篇文章主要介绍了python – unittesting sqlalchemy BinaryExpressions前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在为一些使用sqlAlchemy的代码编写一些单元测试.我想测试过滤器调用,但似乎使用相同参数创建的sqlAlchemy BinaryExpression对象不比较相等:
  1. AssertionError: Expected call: filter(<sqlalchemy.sql.elements.BinaryExpression object at 0x1037607d0>)
  2. Actual call: filter(<sqlalchemy.sql.elements.BinaryExpression object at 0x1037590d0>)

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

解决方法

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

猜你在找的Python相关文章