diff options
Diffstat (limited to 'test/orm/test_evaluator.py')
-rw-r--r-- | test/orm/test_evaluator.py | 22 |
1 files changed, 19 insertions, 3 deletions
diff --git a/test/orm/test_evaluator.py b/test/orm/test_evaluator.py index ffb8d8701..dc96dc15d 100644 --- a/test/orm/test_evaluator.py +++ b/test/orm/test_evaluator.py @@ -15,7 +15,7 @@ from sqlalchemy.orm import exc as orm_exc from sqlalchemy.testing import assert_raises_message from sqlalchemy.testing import is_ from sqlalchemy import inspect - +from sqlalchemy.testing import expect_warnings compiler = evaluator.EvaluatorCompiler() @@ -38,7 +38,8 @@ class EvaluateTest(fixtures.MappedTest): def define_tables(cls, metadata): Table('users', metadata, Column('id', Integer, primary_key=True), - Column('name', String(64))) + Column('name', String(64)), + Column('othername', String(64))) @classmethod def setup_classes(cls): @@ -84,9 +85,24 @@ class EvaluateTest(fixtures.MappedTest): eval_eq(User.name == None, # noqa testcases=[(User(name='foo'), False), (User(name=None), True)]) - def test_raise_on_unannotated_column(self): + 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 'Column\('othername'.* " + "onto ORM instances; this is a deprecated use case."): + meth = compiler.process(User.name == Column('othername', String)) + + u1 = User(id=5) + meth(u1) + + 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", |