diff options
| author | mike bayer <mike_mp@zzzcomputing.com> | 2021-04-07 16:07:51 +0000 |
|---|---|---|
| committer | Gerrit Code Review <gerrit@ci3.zzzcomputing.com> | 2021-04-07 16:07:51 +0000 |
| commit | cf7e345d953cfc276c0008b1b634d459aee19489 (patch) | |
| tree | 82c0465505b88b71d57771a6448c81b0492e11e5 /test/sql | |
| parent | de72737987e6b9757e6b2fe5bea07bb110356ce8 (diff) | |
| parent | f6306921353b94ed2ffc36b3d04e0ba4284f4898 (diff) | |
| download | sqlalchemy-cf7e345d953cfc276c0008b1b634d459aee19489.tar.gz | |
Merge "Expand reg for schema translate map for most special characters"
Diffstat (limited to 'test/sql')
| -rw-r--r-- | test/sql/test_compiler.py | 70 |
1 files changed, 70 insertions, 0 deletions
diff --git a/test/sql/test_compiler.py b/test/sql/test_compiler.py index d7a74ee2e..1ff5788b7 100644 --- a/test/sql/test_compiler.py +++ b/test/sql/test_compiler.py @@ -4854,6 +4854,76 @@ class DDLTest(fixtures.TestBase, AssertsCompiledSQL): default_schema_name="main", ) + def test_schema_translate_map_special_chars(self): + m = MetaData() + t1 = Table("t1", m, Column("q", Integer)) + t2 = Table("t2", m, Column("q", Integer), schema="foo % ^ #") + t3 = Table("t3", m, Column("q", Integer), schema="bar {}") + + schema_translate_map = {None: "z", "bar {}": None, "foo % ^ #": "bat"} + + self.assert_compile( + schema.CreateTable(t1), + "CREATE TABLE [SCHEMA__none].t1 (q INTEGER)", + schema_translate_map=schema_translate_map, + ) + self.assert_compile( + schema.CreateTable(t1), + "CREATE TABLE z.t1 (q INTEGER)", + schema_translate_map=schema_translate_map, + render_schema_translate=True, + ) + + self.assert_compile( + schema.CreateTable(t2), + "CREATE TABLE [SCHEMA_foo % ^ #].t2 (q INTEGER)", + schema_translate_map=schema_translate_map, + ) + self.assert_compile( + schema.CreateTable(t2), + "CREATE TABLE bat.t2 (q INTEGER)", + schema_translate_map=schema_translate_map, + render_schema_translate=True, + ) + + self.assert_compile( + schema.CreateTable(t3), + "CREATE TABLE [SCHEMA_bar {}].t3 (q INTEGER)", + schema_translate_map=schema_translate_map, + ) + self.assert_compile( + schema.CreateTable(t3), + "CREATE TABLE main.t3 (q INTEGER)", + schema_translate_map=schema_translate_map, + render_schema_translate=True, + default_schema_name="main", + ) + + def test_schema_translate_map_no_square_brackets(self): + m = MetaData() + t2 = Table("t2", m, Column("q", Integer), schema="bar [") + t3 = Table("t3", m, Column("q", Integer), schema="foo ]") + + schema_translate_map = {None: "z", "bar [": None, "foo ]": "bat"} + + assert_raises_message( + exc.CompileError, + r"Square bracket characters .* not supported " + r"in schema translate name 'bar \['", + schema.CreateTable(t2).compile, + schema_translate_map=schema_translate_map, + render_schema_translate=True, + ) + + assert_raises_message( + exc.CompileError, + r"Square bracket characters .* not supported " + r"in schema translate name 'foo \]'", + schema.CreateTable(t3).compile, + schema_translate_map=schema_translate_map, + render_schema_translate=True, + ) + def test_schema_translate_map_sequence(self): s1 = schema.Sequence("s1") s2 = schema.Sequence("s2", schema="foo") |
