diff options
| author | Mike Bayer <mike_mp@zzzcomputing.com> | 2015-04-10 11:20:14 -0400 |
|---|---|---|
| committer | Mike Bayer <mike_mp@zzzcomputing.com> | 2015-04-10 11:20:14 -0400 |
| commit | 55c26710a1f6d6c6f87a9752035bc160f93b38d0 (patch) | |
| tree | 747759372a948598b007c042de22e1517e046f55 /test/sql/test_metadata.py | |
| parent | ffec6ab936a73f5cbe63d9409beb12f1f0307d0b (diff) | |
| download | sqlalchemy-55c26710a1f6d6c6f87a9752035bc160f93b38d0.tar.gz | |
- Fixed issue where a :class:`.MetaData` object that used a naming
convention would not properly work with pickle. The attribute was
skipped leading to inconsistencies and failures if the unpickled
:class:`.MetaData` object were used to base additional tables
from.
fixes #3362
Diffstat (limited to 'test/sql/test_metadata.py')
| -rw-r--r-- | test/sql/test_metadata.py | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/test/sql/test_metadata.py b/test/sql/test_metadata.py index 65e1e60ce..db5e73e52 100644 --- a/test/sql/test_metadata.py +++ b/test/sql/test_metadata.py @@ -3575,3 +3575,16 @@ class NamingConventionTest(fixtures.TestBase, AssertsCompiledSQL): u1.append_constraint(ck1) eq_(ck1.name, "ck_user_foo") + + def test_pickle_metadata(self): + m = MetaData(naming_convention={"pk": "%(table_name)s_pk"}) + + m2 = pickle.loads(pickle.dumps(m)) + + eq_(m2.naming_convention, {"pk": "%(table_name)s_pk"}) + + t2a = Table('t2', m, Column('id', Integer, primary_key=True)) + t2b = Table('t2', m2, Column('id', Integer, primary_key=True)) + + eq_(t2a.primary_key.name, t2b.primary_key.name) + eq_(t2b.primary_key.name, "t2_pk") |
