2015-11-12 31 views
5

SQLAlchemy kullanan bazı kodlar için bazı onaylamıyorum. ,unixesting sqlalchemy BinaryExpressions

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

Ben dizeleri onları hem döküm ve bu karşılaştırabilirsiniz varsayalım, ama bu hacky görünüyor: Ben filter aramaları test etmek istiyorum, ama aynı argümanları ile oluşturulan SQLAlchemy BinaryExpression nesneleri eşit karşılaştırmak yok gibi görünüyor ve eğer mecbur olmasaydım, dizge karşılaştırmalarını hata ayıklamaya çalışmak zorunda kalmamayı tercih ederim. BinaryExpression s modelini karşılaştırmak için daha iyi/daha yapılandırılmış yöntemler var mı?

cevap

5

kullanabileceğiniz compare yöntem

>>> 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