diff options
author | ndparker <ndparker@users.noreply.github.com> | 2014-10-04 00:51:01 +0200 |
---|---|---|
committer | ndparker <ndparker@users.noreply.github.com> | 2014-10-04 00:51:01 +0200 |
commit | 7e0835409cf5ab7f7ac27dc1f619773d84bfe53d (patch) | |
tree | e4f68506d5b0b0fb5cba7f5e572a61f9086361af | |
parent | d5ecd473aeacbca7faada47b089c283d03a78fe7 (diff) | |
download | sqlalchemy-7e0835409cf5ab7f7ac27dc1f619773d84bfe53d.tar.gz |
add simple tests for new name argument for Table.tometadata()pr/139
-rw-r--r-- | test/sql/test_metadata.py | 44 |
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 |