From d1bf4d2b863ef71cc936977a9fee1a5b056aff67 Mon Sep 17 00:00:00 2001 From: Mike Bayer Date: Fri, 23 Nov 2012 19:32:41 -0500 Subject: [PATCH] - adjust this test for the ugly reality of the "name normalize" backends, where because we've decided that "lowercase" is the case insensitive casing, we can't distinguish between case insensitive/not on a database that returns case-insensitive names as UPPERCASE, for names that are UPPERCASE. [ticket:2615] --- test/sql/test_quote.py | 18 ++++++++++++++++-- 1 file changed, 16 insertions(+), 2 deletions(-) diff --git a/test/sql/test_quote.py b/test/sql/test_quote.py index 50a8a414b8..8b14d23a98 100644 --- a/test/sql/test_quote.py +++ b/test/sql/test_quote.py @@ -43,10 +43,24 @@ class QuoteTest(fixtures.TestBase, AssertsCompiledSQL): meta2 = MetaData(testing.db) t2 = Table('WorstCase1', meta2, autoload=True, quote=True) assert 'lowercase' in t2.c - assert 'UPPERCASE' in t2.c - assert 'MixedCase' in t2.c + + # indicates the DB returns unquoted names as + # UPPERCASE, which we then assume are unquoted and go to + # lower case. So we cannot accurately reflect quoted UPPERCASE + # names from a "name normalize" backend, as they cannot be + # distinguished from case-insensitive/unquoted names. + if testing.db.dialect.requires_name_normalize: + assert 'uppercase' in t2.c + else: + assert 'UPPERCASE' in t2.c + + # ASC OTOH is a reserved word, which is always quoted, so + # with that name we keep the quotes on and it stays uppercase + # regardless. Seems a little weird, though. assert 'ASC' in t2.c + assert 'MixedCase' in t2.c + def test_basic(self): table1.insert().execute( {'lowercase': 1, 'UPPERCASE': 2, 'MixedCase': 3, 'a123': 4}, -- 2.47.3