From: Malik Diarra Date: Thu, 7 Aug 2014 19:50:49 +0000 (+0200) Subject: Providing an autoload_with info automatically sets autoload to True X-Git-Tag: rel_1_0_0b1~243 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=ad8f921e969b6f735dc8e08d882c961dde78f2b1;p=thirdparty%2Fsqlalchemy%2Fsqlalchemy.git Providing an autoload_with info automatically sets autoload to True --- diff --git a/lib/sqlalchemy/sql/schema.py b/lib/sqlalchemy/sql/schema.py index f3af46c40f..5c68b5aec9 100644 --- a/lib/sqlalchemy/sql/schema.py +++ b/lib/sqlalchemy/sql/schema.py @@ -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: diff --git a/test/engine/test_reflection.py b/test/engine/test_reflection.py index 03b2033d54..807abc84f7 100644 --- a/test/engine/test_reflection.py +++ b/test/engine/test_reflection.py @@ -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