11

I'm writing some 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 don't compare equal:

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

I suppose I can cast them both to strings and compare those, but that seems hacky, and I'd really rather not be forced to try to debug string comparisons if I don't have to. Are there any better/more-structured ways to compare BinaryExpressions in unittests?

1 Answer 1

16

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
Sign up to request clarification or add additional context in comments.

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.