Unittesting sqlalchemy BinaryExpressions

I am writing several unittests for some code that uses SQLAlchemy. I want to test filter calls, but it seems that SQLAlchemy BinaryExpression objects created with the same arguments are not compared equal:

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

I believe that I can relate them both to strings and compare them, but this seems to be hacked, and I would prefer not to try to debug string comparisons if I don't need it. Are there any better / more structured ways to compare BinaryExpression in unittests?

+5
source share
1 answer

you can use compare method

 >>> 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 
+5
source

Source: https://habr.com/ru/post/1235822/


All Articles