def test_raise_on_unannotated_unmatched_column(self): User = self.classes.User compiler = evaluator.EvaluatorCompiler(User) assert_raises_message(evaluator.UnevaluatableError, "Cannot evaluate column: foo", compiler.process, User.id == Column('foo', Integer))
def test_warn_on_unannotated_matched_column(self): User = self.classes.User compiler = evaluator.EvaluatorCompiler(User) with expect_warnings( r"Evaluating non-mapped column expression 'othername' " "onto ORM instances; this is a deprecated use case."): meth = compiler.process(User.name == Column("othername", String)) u1 = User(id=5) meth(u1)
from sqlalchemy import not_ from sqlalchemy import or_ from sqlalchemy import String from sqlalchemy import tuple_ from sqlalchemy.orm import evaluator from sqlalchemy.orm import mapper from sqlalchemy.orm import relationship from sqlalchemy.orm import Session from sqlalchemy.testing import assert_raises_message from sqlalchemy.testing import expect_warnings from sqlalchemy.testing import fixtures from sqlalchemy.testing import is_ from sqlalchemy.testing.schema import Column from sqlalchemy.testing.schema import Table compiler = evaluator.EvaluatorCompiler() def eval_eq(clause, testcases=None): evaluator = compiler.process(clause) def testeval(obj=None, expected_result=None): assert evaluator(obj) == expected_result, "%s != %r for %s with %r" % ( evaluator(obj), expected_result, clause, obj, ) if testcases: for an_obj, result in testcases: