From: Mike Bayer Date: Mon, 11 Sep 2017 03:08:30 +0000 (-0400) Subject: Don't use repr() for Column/ColumnClause in warning X-Git-Tag: origin~11 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=4c97ea116c3686cb03f566f16b0a0e9a9fd33968;p=thirdparty%2Fsqlalchemy%2Fsqlalchemy.git Don't use repr() for Column/ColumnClause in warning for #4073, use the string version of the column expression in the warning, otherwise the repr() is showing the hex id which causes unlimited warnings. Change-Id: I6869b685b237e7f02c7b5071701dd63a3577182a --- diff --git a/lib/sqlalchemy/orm/evaluator.py b/lib/sqlalchemy/orm/evaluator.py index 3f2a83a029..c58aaebbf9 100644 --- a/lib/sqlalchemy/orm/evaluator.py +++ b/lib/sqlalchemy/orm/evaluator.py @@ -62,9 +62,10 @@ class EvaluatorCompiler(object): key = parentmapper._columntoproperty[clause].key else: key = clause.key - if self.target_cls and key in inspect(self.target_cls).column_attrs: + if self.target_cls and \ + key in inspect(self.target_cls).column_attrs: util.warn( - "Evaluating non-mapped column expression '%r' onto " + "Evaluating non-mapped column expression '%s' onto " "ORM instances; this is a deprecated use case. Please " "make use of the actual mapped columns in ORM-evaluated " "UPDATE / DELETE expressions." % clause) diff --git a/test/orm/test_evaluator.py b/test/orm/test_evaluator.py index dc96dc15da..fca050ccf0 100644 --- a/test/orm/test_evaluator.py +++ b/test/orm/test_evaluator.py @@ -91,7 +91,7 @@ class EvaluateTest(fixtures.MappedTest): compiler = evaluator.EvaluatorCompiler(User) with expect_warnings( - r"Evaluating non-mapped column expression 'Column\('othername'.* " + r"Evaluating non-mapped column expression 'othername' " "onto ORM instances; this is a deprecated use case."): meth = compiler.process(User.name == Column('othername', String))