summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMalik Diarra <malik.diarra@gmail.com>2014-08-07 21:50:49 +0200
committerMalik Diarra <malik.diarra@gmail.com>2014-08-09 21:43:32 +0200
commitad8f921e969b6f735dc8e08d882c961dde78f2b1 (patch)
tree02ee67047adc575ec337502f06ba4469b40861b8
parentcca4d8fc73df042e938447ec0bc990be28c4fb11 (diff)
downloadsqlalchemy-ad8f921e969b6f735dc8e08d882c961dde78f2b1.tar.gz
Providing an autoload_with info automatically sets autoload to True
-rw-r--r--lib/sqlalchemy/sql/schema.py4
-rw-r--r--test/engine/test_reflection.py16
2 files changed, 18 insertions, 2 deletions
diff --git a/lib/sqlalchemy/sql/schema.py b/lib/sqlalchemy/sql/schema.py
index f3af46c40..5c68b5aec 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 03b2033d5..807abc84f 100644
--- a/test/engine/test_reflection.py
+++ b/test/engine/test_reflection.py
@@ -65,6 +65,22 @@ class ReflectionTest(fixtures.TestBase, ComparesTables):
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
Table(