summaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
authormike bayer <mike_mp@zzzcomputing.com>2016-07-30 12:54:10 -0400
committerGerrit Code Review <gerrit2@ln3.zzzcomputing.com>2016-07-30 12:54:10 -0400
commitcda9defe58f80759f2b40e658fd7b25eb4d92610 (patch)
tree9182994c7b48648cf8267d3cd616e00410d91867 /test
parent99248e843d4acde786e373a3056083ea34d72589 (diff)
parent6327c59d4f34947128bd9b2860a1732a6932b4d7 (diff)
downloadsqlalchemy-cda9defe58f80759f2b40e658fd7b25eb4d92610.tar.gz
Merge "Index should extract __clause_element__() early"
Diffstat (limited to 'test')
-rw-r--r--test/sql/test_metadata.py24
1 files changed, 23 insertions, 1 deletions
diff --git a/test/sql/test_metadata.py b/test/sql/test_metadata.py
index d6e5a5dd4..cf7f7628a 100644
--- a/test/sql/test_metadata.py
+++ b/test/sql/test_metadata.py
@@ -2147,6 +2147,27 @@ class ConstraintTest(fixtures.TestBase):
idx = Index('q', c)
is_(idx.table, None) # lower-case-T table doesn't have indexes
+ def test_clauseelement_extraction_one(self):
+ t = Table('t', MetaData(), Column('x', Integer), Column('y', Integer))
+
+ class MyThing(object):
+ def __clause_element__(self):
+ return t.c.x + 5
+
+ idx = Index('foo', MyThing())
+ self._assert_index_col_x(t, idx)
+
+ def test_clauseelement_extraction_two(self):
+ t = Table('t', MetaData(), Column('x', Integer), Column('y', Integer))
+
+ class MyThing(object):
+ def __clause_element__(self):
+ return t.c.x + 5
+
+ idx = Index('bar', MyThing(), t.c.y)
+
+ eq_(set(t.indexes), set([idx]))
+
def test_table_references(self):
t1, t2, t3 = self._single_fixture()
assert list(t2.c.a.foreign_keys)[0].references(t1)
@@ -2911,8 +2932,9 @@ class ConstraintTest(fixtures.TestBase):
def __clause_element__(self):
return t2
- assert_raises(
+ assert_raises_message(
exc.ArgumentError,
+ "Element Table\('t2', .* is not a string name or column element",
Index, "foo", SomeClass()
)