From cf15e3068fc91dd31730bede24831a5ec97b471e Mon Sep 17 00:00:00 2001 From: Mike Bayer Date: Sun, 2 Aug 2009 16:41:31 +0000 Subject: [PATCH] added test for reflection with index + missing cols --- lib/sqlalchemy/engine/reflection.py | 2 +- test/engine/test_reflection.py | 22 ++++++++++++++++++++++ 2 files changed, 23 insertions(+), 1 deletion(-) diff --git a/lib/sqlalchemy/engine/reflection.py b/lib/sqlalchemy/engine/reflection.py index 629ab5b13e..5ac4756bee 100644 --- a/lib/sqlalchemy/engine/reflection.py +++ b/lib/sqlalchemy/engine/reflection.py @@ -353,7 +353,7 @@ class Inspector(object): if include_columns and \ not set(columns).issubset(include_columns): util.warn( - "Omitting %s KEY for (%s), key covers ommitted columns." % + "Omitting %s KEY for (%s), key covers omitted columns." % (flavor, ', '.join(columns))) continue sa_schema.Index(name, *[table.columns[c] for c in columns], diff --git a/test/engine/test_reflection.py b/test/engine/test_reflection.py index 8e38c9a0ba..bcf0de67e4 100644 --- a/test/engine/test_reflection.py +++ b/test/engine/test_reflection.py @@ -115,6 +115,28 @@ class ReflectionTest(TestBase, ComparesTables): finally: meta.drop_all() + @testing.emits_warning(r".*omitted columns") + def test_include_columns_indexes(self): + m = MetaData(testing.db) + + t1 = Table('t1', m, Column('a', sa.Integer), Column('b', sa.Integer)) + sa.Index('foobar', t1.c.a, t1.c.b) + sa.Index('bat', t1.c.a) + m.create_all() + try: + m2 = MetaData(testing.db) + t2 = Table('t1', m2, autoload=True) + assert len(t2.indexes) == 2 + + m2 = MetaData(testing.db) + t2 = Table('t1', m2, autoload=True, include_columns=['a']) + assert len(t2.indexes) == 1 + + m2 = MetaData(testing.db) + t2 = Table('t1', m2, autoload=True, include_columns=['a', 'b']) + assert len(t2.indexes) == 2 + finally: + m.drop_all() def test_unknown_types(self): meta = MetaData(testing.db) -- 2.47.3