summaryrefslogtreecommitdiff
path: root/test/sql/selectable.py
diff options
context:
space:
mode:
authorMike Bayer <mike_mp@zzzcomputing.com>2008-11-02 22:08:24 +0000
committerMike Bayer <mike_mp@zzzcomputing.com>2008-11-02 22:08:24 +0000
commitff2f799ba3f5b0d1ea6d34119ff273e910db100d (patch)
tree835ddceec1d81d965b9dc3f1c15dd678eed777a9 /test/sql/selectable.py
parentea2e7fd365f88c7211daa850773b4d291c98372b (diff)
downloadsqlalchemy-ff2f799ba3f5b0d1ea6d34119ff273e910db100d.tar.gz
progress so far
Diffstat (limited to 'test/sql/selectable.py')
-rwxr-xr-xtest/sql/selectable.py17
1 files changed, 16 insertions, 1 deletions
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()