diff options
| author | Mike Bayer <mike_mp@zzzcomputing.com> | 2016-01-08 22:11:09 -0500 |
|---|---|---|
| committer | Mike Bayer <mike_mp@zzzcomputing.com> | 2016-01-08 22:12:25 -0500 |
| commit | 89facbed8855d1443dbe37919ff0645aea640ed0 (patch) | |
| tree | 33e7ab15470a5f3a76b748418e6be0c62aa1eaba /test/engine/test_reflection.py | |
| parent | 777e25694f1567ff61655d86a91be6264186c13e (diff) | |
| download | sqlalchemy-89facbed8855d1443dbe37919ff0645aea640ed0.tar.gz | |
- Multi-tenancy schema translation for :class:`.Table` objects is added.
This supports the use case of an application that uses the same set of
:class:`.Table` objects in many schemas, such as schema-per-user.
A new execution option
:paramref:`.Connection.execution_options.schema_translate_map` is
added. fixes #2685
- latest tox doesn't like the {posargs} in the profile rerunner
Diffstat (limited to 'test/engine/test_reflection.py')
| -rw-r--r-- | test/engine/test_reflection.py | 21 |
1 files changed, 16 insertions, 5 deletions
diff --git a/test/engine/test_reflection.py b/test/engine/test_reflection.py index b7bf87d63..f9799fda0 100644 --- a/test/engine/test_reflection.py +++ b/test/engine/test_reflection.py @@ -1,16 +1,15 @@ -import operator - import unicodedata import sqlalchemy as sa -from sqlalchemy import schema, events, event, inspect +from sqlalchemy import schema, inspect from sqlalchemy import MetaData, Integer, String -from sqlalchemy.testing import (ComparesTables, engines, AssertsCompiledSQL, +from sqlalchemy.testing import ( + ComparesTables, engines, AssertsCompiledSQL, fixtures, skip) from sqlalchemy.testing.schema import Table, Column from sqlalchemy.testing import eq_, assert_raises, assert_raises_message from sqlalchemy import testing from sqlalchemy.util import ue - +from sqlalchemy.testing import config metadata, users = None, None @@ -1345,6 +1344,18 @@ class SchemaTest(fixtures.TestBase): metadata.drop_all() @testing.requires.schemas + @testing.provide_metadata + def test_schema_translation(self): + Table('foob', self.metadata, Column('q', Integer), schema=config.test_schema) + self.metadata.create_all() + + m = MetaData() + map_ = {"foob": config.test_schema} + with config.db.connect().execution_options(schema_translate_map=map_) as conn: + t = Table('foob', m, schema="foob", autoload_with=conn) + eq_(t.schema, "foob") + eq_(t.c.keys(), ['q']) + @testing.requires.schemas @testing.fails_on('sybase', 'FIXME: unknown') def test_explicit_default_schema_metadata(self): engine = testing.db |
