From fd6c85cf7f9918cc14d555495d8a08f5373b0d0b Mon Sep 17 00:00:00 2001 From: Chris Withers Date: Thu, 16 Sep 2010 20:03:18 +0100 Subject: [PATCH] make sure kwargs are copied by tometadata --- lib/sqlalchemy/schema.py | 2 +- test/engine/test_metadata.py | 13 +++++++++++++ 2 files changed, 14 insertions(+), 1 deletion(-) diff --git a/lib/sqlalchemy/schema.py b/lib/sqlalchemy/schema.py index 98472f9f11..e61f17d8e9 100644 --- a/lib/sqlalchemy/schema.py +++ b/lib/sqlalchemy/schema.py @@ -478,7 +478,7 @@ class Table(SchemaItem, expression.TableClause): args.append(c.copy(schema=schema)) for c in self.constraints: args.append(c.copy(schema=schema)) - return Table(self.name, metadata, schema=schema, *args) + return Table(self.name, metadata, schema=schema, *args, **self.kwargs) class Column(SchemaItem, expression.ColumnClause): """Represents a column in a database table.""" diff --git a/test/engine/test_metadata.py b/test/engine/test_metadata.py index 7ea7536219..5c6f5c1515 100644 --- a/test/engine/test_metadata.py +++ b/test/engine/test_metadata.py @@ -246,6 +246,19 @@ class MetaDataTest(TestBase, ComparesTables): eq_(str(table_c.join(table2_c).onclause), 'someschema.mytable.myid = someschema.othertable.myid') + def test_tometadata_kwargs(self): + meta = MetaData() + + table = Table('mytable', meta, + Column('myid', Integer, primary_key=True), + mysql_engine='InnoDB', + ) + + meta2 = MetaData() + table_c = table.tometadata(meta2) + + eq_(table.kwargs,table_c.kwargs) + def test_tometadata_default_schema(self): meta = MetaData() -- 2.47.2