summaryrefslogtreecommitdiff
path: root/test/sql
diff options
context:
space:
mode:
Diffstat (limited to 'test/sql')
-rw-r--r--test/sql/test_selectable.py72
1 files changed, 72 insertions, 0 deletions
diff --git a/test/sql/test_selectable.py b/test/sql/test_selectable.py
index 186fb3d9e..f525703f1 100644
--- a/test/sql/test_selectable.py
+++ b/test/sql/test_selectable.py
@@ -931,6 +931,22 @@ class RefreshForNewColTest(fixtures.TestBase):
s._refresh_for_new_column(q)
assert q in s.c.b_x.proxy_set
+ def test_alias_alias_samename_init(self):
+ a = table("a", column("x"))
+ b = table("b", column("y"))
+ s1 = select([a, b]).apply_labels().alias()
+ s2 = s1.alias()
+
+ s1.c
+ s2.c
+
+ q = column("x")
+ b.append_column(q)
+
+ s2._refresh_for_new_column(q)
+
+ is_(s1.corresponding_column(s2.c.b_x), s1.c.b_x)
+
def test_aliased_select_samename_uninit(self):
a = table("a", column("x"))
b = table("b", column("y"))
@@ -2584,3 +2600,59 @@ class ForUpdateTest(fixtures.TestBase, AssertsCompiledSQL):
"SELECT t_1.c FROM t AS t_1 FOR SHARE OF t_1",
dialect="postgresql",
)
+
+
+class AliasTest(fixtures.TestBase, AssertsCompiledSQL):
+ __dialect__ = "default"
+
+ def test_legacy_original_accessor(self):
+ t = table("t", column("c"))
+ a1 = t.alias()
+ a2 = a1.alias()
+ a3 = a2.alias()
+
+ is_(a1.original, t)
+ is_(a2.original, t)
+ is_(a3.original, t)
+
+ def test_wrapped(self):
+ t = table("t", column("c"))
+ a1 = t.alias()
+ a2 = a1.alias()
+ a3 = a2.alias()
+
+ is_(a1.element, t)
+ is_(a2.element, t)
+ is_(a3.element, t)
+
+ is_(a3.wrapped, a2)
+ is_(a2.wrapped, a1)
+ is_(a1.wrapped, t)
+
+ def test_get_children_preserves_wrapped(self):
+ t = table("t", column("c"))
+ stmt = select([t])
+ a1 = stmt.alias()
+ a2 = a1.alias()
+ eq_(set(a2.get_children(column_collections=False)), {a1})
+
+ def test_wrapped_correspondence(self):
+ t = table("t", column("c"))
+ stmt = select([t])
+ a1 = stmt.alias()
+ a2 = a1.alias()
+
+ is_(a1.corresponding_column(a2.c.c), a1.c.c)
+
+ def test_copy_internals_preserves_wrapped(self):
+ t = table("t", column("c"))
+ stmt = select([t])
+ a1 = stmt.alias()
+ a2 = a1.alias()
+
+ is_(a2.element, a2.wrapped.element)
+
+ a3 = a2._clone()
+ a3._copy_internals()
+ is_(a1.corresponding_column(a3.c.c), a1.c.c)
+ is_(a3.element, a3.wrapped.element)