]> git.ipfire.org Git - thirdparty/sqlalchemy/sqlalchemy.git/commitdiff
Providing an autoload_with info automatically sets autoload to True
authorMalik Diarra <malik.diarra@gmail.com>
Thu, 7 Aug 2014 19:50:49 +0000 (21:50 +0200)
committerMalik Diarra <malik.diarra@gmail.com>
Sat, 9 Aug 2014 19:43:32 +0000 (21:43 +0200)
lib/sqlalchemy/sql/schema.py
test/engine/test_reflection.py

index f3af46c40f09762a581b8431672180325c819e80..5c68b5aec960004f98fc3a4670bb094a250fd368 100644 (file)
@@ -401,8 +401,8 @@ class Table(DialectKWArgs, SchemaItem, TableClause):
         else:
             self.fullname = self.name
 
-        autoload = kwargs.pop('autoload', False)
         autoload_with = kwargs.pop('autoload_with', None)
+        autoload = kwargs.pop('autoload', autoload_with is not None)
         # this argument is only used with _init_existing()
         kwargs.pop('autoload_replace', True)
         include_columns = kwargs.pop('include_columns', None)
@@ -460,8 +460,8 @@ class Table(DialectKWArgs, SchemaItem, TableClause):
         return sorted(self.constraints, key=lambda c: c._creation_order)
 
     def _init_existing(self, *args, **kwargs):
-        autoload = kwargs.pop('autoload', False)
         autoload_with = kwargs.pop('autoload_with', None)
+        autoload = kwargs.pop('autoload', autoload_with is not None)
         autoload_replace = kwargs.pop('autoload_replace', True)
         schema = kwargs.pop('schema', None)
         if schema and schema != self.schema:
index 03b2033d54927e8d992445f090cccd3c72abf11b..807abc84f79c8455405a57b0791b2d120c432f26 100644 (file)
@@ -64,6 +64,22 @@ class ReflectionTest(fixtures.TestBase, ComparesTables):
         self.assert_tables_equal(users, reflected_users)
         self.assert_tables_equal(addresses, reflected_addresses)
 
+    @testing.provide_metadata
+    def test_autoload_with_imply_autoload(self,):
+        meta = self.metadata
+        t = Table(
+                't',
+                meta,
+                Column('id', sa.Integer, primary_key=True),
+                Column('x', sa.String(20)),
+                Column('y', sa.Integer))
+        meta.create_all()
+
+        meta2 = MetaData()
+        reflected_t = Table('t',  meta2,
+                autoload_with=testing.db)
+        self.assert_tables_equal(t, reflected_t)
+
     @testing.provide_metadata
     def test_two_foreign_keys(self):
         meta = self.metadata