]> git.ipfire.org Git - thirdparty/sqlalchemy/sqlalchemy.git/commitdiff
added test for reflection with index + missing cols
authorMike Bayer <mike_mp@zzzcomputing.com>
Sun, 2 Aug 2009 16:41:31 +0000 (16:41 +0000)
committerMike Bayer <mike_mp@zzzcomputing.com>
Sun, 2 Aug 2009 16:41:31 +0000 (16:41 +0000)
lib/sqlalchemy/engine/reflection.py
test/engine/test_reflection.py

index 629ab5b13ebfc94f3f108a27411caef1992a774d..5ac4756beec4f57612778dc3088aac8ce5f8e3ba 100644 (file)
@@ -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], 
index 8e38c9a0baf32e75d866bb1edd599e526145b1fb..bcf0de67e45f16265545dabd2c6e4a4a77e1a071 100644 (file)
@@ -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)