summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorndparker <ndparker@users.noreply.github.com>2014-10-04 00:51:01 +0200
committerndparker <ndparker@users.noreply.github.com>2014-10-04 00:51:01 +0200
commit7e0835409cf5ab7f7ac27dc1f619773d84bfe53d (patch)
treee4f68506d5b0b0fb5cba7f5e572a61f9086361af
parentd5ecd473aeacbca7faada47b089c283d03a78fe7 (diff)
downloadsqlalchemy-7e0835409cf5ab7f7ac27dc1f619773d84bfe53d.tar.gz
add simple tests for new name argument for Table.tometadata()pr/139
-rw-r--r--test/sql/test_metadata.py44
1 files changed, 44 insertions, 0 deletions
diff --git a/test/sql/test_metadata.py b/test/sql/test_metadata.py
index 304e2cc5f..0e845d555 100644
--- a/test/sql/test_metadata.py
+++ b/test/sql/test_metadata.py
@@ -678,6 +678,50 @@ class ToMetaDataTest(fixtures.TestBase, ComparesTables):
eq_(str(table_c.join(table2_c).onclause),
'myschema.mytable.myid = myschema.othertable.myid')
+ def test_change_name_retain_metadata(self):
+ meta = MetaData()
+
+ table = Table('mytable', meta,
+ Column('myid', Integer, primary_key=True),
+ Column('name', String(40), nullable=True),
+ Column('description', String(30),
+ CheckConstraint("description='hi'")),
+ UniqueConstraint('name'),
+ schema='myschema',
+ )
+
+ table2 = table.tometadata(table.metadata, name='newtable')
+ table3 = table.tometadata(table.metadata, schema='newschema',
+ name='newtable')
+
+ assert table.metadata is table2.metadata
+ assert table.metadata is table3.metadata
+ eq_((table.name, table2.name, table3.name),
+ ('mytable', 'newtable', 'newtable'))
+ eq_((table.key, table2.key, table3.key),
+ ('myschema.mytable', 'myschema.newtable', 'newschema.newtable'))
+
+ def test_change_name_change_metadata(self):
+ meta = MetaData()
+ meta2 = MetaData()
+
+ table = Table('mytable', meta,
+ Column('myid', Integer, primary_key=True),
+ Column('name', String(40), nullable=True),
+ Column('description', String(30),
+ CheckConstraint("description='hi'")),
+ UniqueConstraint('name'),
+ schema='myschema',
+ )
+
+ table2 = table.tometadata(meta2, name='newtable')
+
+ assert table.metadata is not table2.metadata
+ eq_((table.name, table2.name),
+ ('mytable', 'newtable'))
+ eq_((table.key, table2.key),
+ ('myschema.mytable', 'myschema.newtable'))
+
def _assert_fk(self, t2, schema, expected, referred_schema_fn=None):
m2 = MetaData()
existing_schema = t2.schema