summaryrefslogtreecommitdiff
path: root/test/sql/selectable.py
diff options
context:
space:
mode:
authorMike Bayer <mike_mp@zzzcomputing.com>2007-11-03 22:13:17 +0000
committerMike Bayer <mike_mp@zzzcomputing.com>2007-11-03 22:13:17 +0000
commit0af3f8f35b5e46f749d328e6fae90f6ff4915e97 (patch)
tree8773ab5842f1b3ff39a2e05a9e5fc2ea132ec680 /test/sql/selectable.py
parent784eaa108a543602e4e7ad42828e8720106fd26d (diff)
downloadsqlalchemy-0af3f8f35b5e46f749d328e6fae90f6ff4915e97.tar.gz
- rewritten ClauseAdapter merged from the eager_minus_join branch; this is a much simpler
and "correct" version which will copy all elements exactly once, except for those which were replaced with target elements. It also can match a wider variety of target elements including joins and selects on identity alone.
Diffstat (limited to 'test/sql/selectable.py')
-rwxr-xr-xtest/sql/selectable.py33
1 files changed, 33 insertions, 0 deletions
diff --git a/test/sql/selectable.py b/test/sql/selectable.py
index 83203ad8e..72f5f35d0 100755
--- a/test/sql/selectable.py
+++ b/test/sql/selectable.py
@@ -230,6 +230,39 @@ class PrimaryKeyTest(AssertMixin):
assert str(j) == "a JOIN b ON a.id = b.id AND b.x = :b_x", str(j)
assert list(j.primary_key) == [a.c.id, b.c.x]
+class DerivedTest(AssertMixin):
+ def test_table(self):
+ meta = MetaData()
+ t1 = Table('t1', meta, Column('c1', Integer, primary_key=True), Column('c2', String(30)))
+ t2 = Table('t2', meta, Column('c1', Integer, primary_key=True), Column('c2', String(30)))
+
+ assert t1.is_derived_from(t1)
+ assert not t2.is_derived_from(t1)
+
+ def test_alias(self):
+ meta = MetaData()
+ t1 = Table('t1', meta, Column('c1', Integer, primary_key=True), Column('c2', String(30)))
+ t2 = Table('t2', meta, Column('c1', Integer, primary_key=True), Column('c2', String(30)))
+
+ assert t1.alias().is_derived_from(t1)
+ assert not t2.alias().is_derived_from(t1)
+ assert not t1.is_derived_from(t1.alias())
+ assert not t1.is_derived_from(t2.alias())
+
+ def test_select(self):
+ meta = MetaData()
+ t1 = Table('t1', meta, Column('c1', Integer, primary_key=True), Column('c2', String(30)))
+ t2 = Table('t2', meta, Column('c1', Integer, primary_key=True), Column('c2', String(30)))
+
+ assert t1.select().is_derived_from(t1)
+ assert not t2.select().is_derived_from(t1)
+
+ assert select([t1, t2]).is_derived_from(t1)
+
+ assert t1.select().alias('foo').is_derived_from(t1)
+ assert select([t1, t2]).alias('foo').is_derived_from(t1)
+ assert not t2.select().alias('foo').is_derived_from(t1)
+
if __name__ == "__main__":
testbase.main()