From 5e8396a60ed69341b1e73ac415c7cd6dceec0c8a Mon Sep 17 00:00:00 2001 From: Mike Bayer Date: Wed, 6 Dec 2017 14:12:42 -0500 Subject: Change visit name for ColumnElement No SQLA built-in subclasses ColumnElement without specifying an alternate visit_name, and user defined ColumnElement subclasses should avoid being treated like ColumnClause, e.g. where a Table is present. Fixes: #4142 Change-Id: I15ed09ba8bdebae4cb0c7e5e5df3f59351477577 --- test/sql/test_utils.py | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) (limited to 'test/sql/test_utils.py') diff --git a/test/sql/test_utils.py b/test/sql/test_utils.py index 84e7ad732..bd8368cd2 100644 --- a/test/sql/test_utils.py +++ b/test/sql/test_utils.py @@ -1,8 +1,9 @@ -from sqlalchemy.testing import fixtures, is_true, is_false +from sqlalchemy.testing import fixtures, is_true, is_false, eq_ from sqlalchemy import MetaData, Table, Column, Integer, String from sqlalchemy import and_, or_, bindparam -from sqlalchemy.sql.elements import ClauseList +from sqlalchemy.sql.elements import ClauseList, ColumnElement from sqlalchemy.sql import operators +from sqlalchemy.sql import util as sql_util class CompareClausesTest(fixtures.TestBase): @@ -106,3 +107,14 @@ class CompareClausesTest(fixtures.TestBase): is_false(b1.compare(b8)) is_false(b8.compare(b9)) is_true(b8.compare(b8)) + + +class MiscTest(fixtures.TestBase): + def test_column_element_no_visit(self): + class MyElement(ColumnElement): + pass + + eq_( + sql_util.find_tables(MyElement(), check_columns=True), + [] + ) -- cgit v1.2.1