diff options
| author | Mike Bayer <mike_mp@zzzcomputing.com> | 2019-10-13 23:02:22 -0400 |
|---|---|---|
| committer | Mike Bayer <mike_mp@zzzcomputing.com> | 2019-10-13 23:02:22 -0400 |
| commit | 8a55fb6017b01c5b7503be2bedfa82b9663f8a94 (patch) | |
| tree | 8bb6b6bb67d82ba7b4fd92400633e520b2cd401b /test | |
| parent | 6b2875eba531a0b879ec345ec85fae00f522ff03 (diff) | |
| download | sqlalchemy-8a55fb6017b01c5b7503be2bedfa82b9663f8a94.tar.gz | |
Add _alembic_quote method to format_constraint()
Alembic needs a portable way of getting at the name of an
index without quoting being applied. As we would like the
indexes created by the Column index=True flag to support
deferred index names, supply a function that delivers this
for Alembic without it having to dig too deeply into the
internals. the _alembic_quote flag may be made public
at a later time, however as we've been through many quoting
flags that are difficult to get rid of, try to be conservative
to start.
Change-Id: I184adaeae26c2e75093aaea5ebe01a3815cadb08
Diffstat (limited to 'test')
| -rw-r--r-- | test/sql/test_quote.py | 28 |
1 files changed, 28 insertions, 0 deletions
diff --git a/test/sql/test_quote.py b/test/sql/test_quote.py index b54da97ba..d7219b12d 100644 --- a/test/sql/test_quote.py +++ b/test/sql/test_quote.py @@ -868,6 +868,34 @@ class PreparerTest(fixtures.TestBase): a_eq(unformat("`foo`.bar"), ["foo", "bar"]) a_eq(unformat("`foo`.`b``a``r`.`baz`"), ["foo", "b`a`r", "baz"]) + def test_alembic_quote(self): + t1 = Table( + "TableOne", MetaData(), Column("MyCol", Integer, index=True) + ) + t2 = Table( + "some_table", MetaData(), Column("some_col", Integer, index=True) + ) + t3 = Table( + "some_table", MetaData(), Column("some_col", Integer, index=True) + ) + ix3 = Index("my_index", t3.c.some_col) + ix4 = Index("MyIndex", t3.c.some_col) + ix5 = Index(None, t3.c.some_col) + + for idx, expected in [ + (list(t1.indexes)[0], "ix_TableOne_MyCol"), + (list(t2.indexes)[0], "ix_some_table_some_col"), + (ix3, "my_index"), + (ix4, "MyIndex"), + (ix5, "ix_some_table_some_col"), + ]: + eq_( + testing.db.dialect.identifier_preparer.format_constraint( + idx, _alembic_quote=False + ), + expected, + ) + class QuotedIdentTest(fixtures.TestBase): def test_concat_quotetrue(self): |
