2015-11-12 4 views
5

私はSQLAlchemyを使用するいくつかのコードのためにいくつかのunittestを書いています。 、unittesting sqlalchemy BinaryExpressions

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

私は、文字列にそれらの両方をキャストし、それらを比較することができたとし、それはハックようだ:私はfilter呼び出しをテストしたいが、同じ引数で作成されたSQLAlchemyのBinaryExpressionオブジェクトが等しいとしていないようです私がする必要がなければ、文字列の比較をデバッグしようとすることを余儀なくされることはありません。 unittestsでBinaryExpressionを比較するためのより良い/より構造化された方法はありますか?

答えて

5

を使用でき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