From ff2f799ba3f5b0d1ea6d34119ff273e910db100d Mon Sep 17 00:00:00 2001 From: Mike Bayer Date: Sun, 2 Nov 2008 22:08:24 +0000 Subject: progress so far --- test/sql/selectable.py | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) (limited to 'test/sql') diff --git a/test/sql/selectable.py b/test/sql/selectable.py index e41165b5b..f6bf3eb08 100755 --- a/test/sql/selectable.py +++ b/test/sql/selectable.py @@ -5,7 +5,7 @@ every selectable unit behaving nicely with others..""" import testenv; testenv.configure_for_tests() from sqlalchemy import * from testlib import * -from sqlalchemy.sql import util as sql_util +from sqlalchemy.sql import util as sql_util, visitors from sqlalchemy import exc metadata = MetaData() @@ -475,6 +475,21 @@ class AnnotationsTest(TestBase): assert inner.corresponding_column(t2.c.col1, require_embedded=False) is inner.corresponding_column(t2.c.col1, require_embedded=True) is inner.c.col1 assert inner.corresponding_column(t1.c.col1, require_embedded=False) is inner.corresponding_column(t1.c.col1, require_embedded=True) is inner.c.col1 + def test_annotated_visit(self): + from sqlalchemy.sql import table, column + table1 = table('table1', column("col1"), column("col2")) + + bin = table1.c.col1 == bindparam('foo', value=None) + assert str(bin) == "table1.col1 = :foo" + def visit_binary(b): + b.right = table1.c.col2 + b2 = visitors.cloned_traverse(bin, {}, {'binary':visit_binary}) + assert str(b2) == "table1.col1 = table1.col2" + + b3 = visitors.cloned_traverse(bin._annotate({}), {}, {'binary':visit_binary}) + assert str(b3) == "table1.col1 = table1.col2" + + if __name__ == "__main__": testenv.main() -- cgit v1.2.1