summaryrefslogtreecommitdiff
path: root/test/sql/test_quote.py
diff options
context:
space:
mode:
authorMike Bayer <mike_mp@zzzcomputing.com>2020-11-15 16:58:50 -0500
committerMike Bayer <mike_mp@zzzcomputing.com>2020-12-11 13:26:05 -0500
commitba5cbf9366e9b2c5ed8e27e91815d7a2c3b63e41 (patch)
tree038f2263d581d5e49d74731af68febc4bf64eb19 /test/sql/test_quote.py
parent87d58b6d8188ccff808b3207d5f9398bb9adf9b9 (diff)
downloadsqlalchemy-ba5cbf9366e9b2c5ed8e27e91815d7a2c3b63e41.tar.gz
correct for "autocommit" deprecation warning
Ensure no autocommit warnings occur internally or within tests. Also includes fixes for SQL Server full text tests which apparently have not been working at all for a long time, as it used long removed APIs. CI has not had fulltext running for some years and is now installed. Change-Id: Id806e1856c9da9f0a9eac88cebc7a94ecc95eb96
Diffstat (limited to 'test/sql/test_quote.py')
-rw-r--r--test/sql/test_quote.py123
1 files changed, 58 insertions, 65 deletions
diff --git a/test/sql/test_quote.py b/test/sql/test_quote.py
index 1c023e7b1..a78d6c16b 100644
--- a/test/sql/test_quote.py
+++ b/test/sql/test_quote.py
@@ -25,19 +25,12 @@ from sqlalchemy.testing import is_
from sqlalchemy.testing.util import picklers
-class QuoteExecTest(fixtures.TestBase):
+class QuoteExecTest(fixtures.TablesTest):
__backend__ = True
@classmethod
- def setup_class(cls):
- # TODO: figure out which databases/which identifiers allow special
- # characters to be used, such as: spaces, quote characters,
- # punctuation characters, set up tests for those as well.
-
- global table1, table2
- metadata = MetaData(testing.db)
-
- table1 = Table(
+ def define_tables(cls, metadata):
+ Table(
"WorstCase1",
metadata,
Column("lowercase", Integer, primary_key=True),
@@ -45,7 +38,7 @@ class QuoteExecTest(fixtures.TestBase):
Column("MixedCase", Integer),
Column("ASC", Integer, key="a123"),
)
- table2 = Table(
+ Table(
"WorstCase2",
metadata,
Column("desc", Integer, primary_key=True, key="d123"),
@@ -53,18 +46,6 @@ class QuoteExecTest(fixtures.TestBase):
Column("MixedCase", Integer),
)
- table1.create()
- table2.create()
-
- def teardown(self):
- table1.delete().execute()
- table2.delete().execute()
-
- @classmethod
- def teardown_class(cls):
- table1.drop()
- table2.drop()
-
def test_reflect(self):
meta2 = MetaData()
t2 = Table("WorstCase1", meta2, autoload_with=testing.db, quote=True)
@@ -88,25 +69,22 @@ class QuoteExecTest(fixtures.TestBase):
assert "MixedCase" in t2.c
@testing.provide_metadata
- def test_has_table_case_sensitive(self):
+ def test_has_table_case_sensitive(self, connection):
preparer = testing.db.dialect.identifier_preparer
- with testing.db.connect() as conn:
- if conn.dialect.requires_name_normalize:
- conn.exec_driver_sql("CREATE TABLE TAB1 (id INTEGER)")
- else:
- conn.exec_driver_sql("CREATE TABLE tab1 (id INTEGER)")
- conn.exec_driver_sql(
- "CREATE TABLE %s (id INTEGER)"
- % preparer.quote_identifier("tab2")
- )
- conn.exec_driver_sql(
- "CREATE TABLE %s (id INTEGER)"
- % preparer.quote_identifier("TAB3")
- )
- conn.exec_driver_sql(
- "CREATE TABLE %s (id INTEGER)"
- % preparer.quote_identifier("TAB4")
- )
+ conn = connection
+ if conn.dialect.requires_name_normalize:
+ conn.exec_driver_sql("CREATE TABLE TAB1 (id INTEGER)")
+ else:
+ conn.exec_driver_sql("CREATE TABLE tab1 (id INTEGER)")
+ conn.exec_driver_sql(
+ "CREATE TABLE %s (id INTEGER)" % preparer.quote_identifier("tab2")
+ )
+ conn.exec_driver_sql(
+ "CREATE TABLE %s (id INTEGER)" % preparer.quote_identifier("TAB3")
+ )
+ conn.exec_driver_sql(
+ "CREATE TABLE %s (id INTEGER)" % preparer.quote_identifier("TAB4")
+ )
t1 = Table(
"tab1", self.metadata, Column("id", Integer, primary_key=True)
@@ -127,7 +105,7 @@ class QuoteExecTest(fixtures.TestBase):
quote=True,
)
- insp = inspect(testing.db)
+ insp = inspect(connection)
assert insp.has_table(t1.name)
eq_([c["name"] for c in insp.get_columns(t1.name)], ["id"])
@@ -140,16 +118,24 @@ class QuoteExecTest(fixtures.TestBase):
assert insp.has_table(t4.name)
eq_([c["name"] for c in insp.get_columns(t4.name)], ["id"])
- def test_basic(self):
- table1.insert().execute(
- {"lowercase": 1, "UPPERCASE": 2, "MixedCase": 3, "a123": 4},
- {"lowercase": 2, "UPPERCASE": 2, "MixedCase": 3, "a123": 4},
- {"lowercase": 4, "UPPERCASE": 3, "MixedCase": 2, "a123": 1},
+ def test_basic(self, connection):
+ table1, table2 = self.tables("WorstCase1", "WorstCase2")
+
+ connection.execute(
+ table1.insert(),
+ [
+ {"lowercase": 1, "UPPERCASE": 2, "MixedCase": 3, "a123": 4},
+ {"lowercase": 2, "UPPERCASE": 2, "MixedCase": 3, "a123": 4},
+ {"lowercase": 4, "UPPERCASE": 3, "MixedCase": 2, "a123": 1},
+ ],
)
- table2.insert().execute(
- {"d123": 1, "u123": 2, "MixedCase": 3},
- {"d123": 2, "u123": 2, "MixedCase": 3},
- {"d123": 4, "u123": 3, "MixedCase": 2},
+ connection.execute(
+ table2.insert(),
+ [
+ {"d123": 1, "u123": 2, "MixedCase": 3},
+ {"d123": 2, "u123": 2, "MixedCase": 3},
+ {"d123": 4, "u123": 3, "MixedCase": 2},
+ ],
)
columns = [
@@ -158,23 +144,30 @@ class QuoteExecTest(fixtures.TestBase):
table1.c.MixedCase,
table1.c.a123,
]
- result = select(columns).execute().fetchall()
+ result = connection.execute(select(columns)).all()
assert result == [(1, 2, 3, 4), (2, 2, 3, 4), (4, 3, 2, 1)]
columns = [table2.c.d123, table2.c.u123, table2.c.MixedCase]
- result = select(columns).execute().fetchall()
+ result = connection.execute(select(columns)).all()
assert result == [(1, 2, 3), (2, 2, 3), (4, 3, 2)]
- def test_use_labels(self):
- table1.insert().execute(
- {"lowercase": 1, "UPPERCASE": 2, "MixedCase": 3, "a123": 4},
- {"lowercase": 2, "UPPERCASE": 2, "MixedCase": 3, "a123": 4},
- {"lowercase": 4, "UPPERCASE": 3, "MixedCase": 2, "a123": 1},
- )
- table2.insert().execute(
- {"d123": 1, "u123": 2, "MixedCase": 3},
- {"d123": 2, "u123": 2, "MixedCase": 3},
- {"d123": 4, "u123": 3, "MixedCase": 2},
+ def test_use_labels(self, connection):
+ table1, table2 = self.tables("WorstCase1", "WorstCase2")
+ connection.execute(
+ table1.insert(),
+ [
+ {"lowercase": 1, "UPPERCASE": 2, "MixedCase": 3, "a123": 4},
+ {"lowercase": 2, "UPPERCASE": 2, "MixedCase": 3, "a123": 4},
+ {"lowercase": 4, "UPPERCASE": 3, "MixedCase": 2, "a123": 1},
+ ],
+ )
+ connection.execute(
+ table2.insert(),
+ [
+ {"d123": 1, "u123": 2, "MixedCase": 3},
+ {"d123": 2, "u123": 2, "MixedCase": 3},
+ {"d123": 4, "u123": 3, "MixedCase": 2},
+ ],
)
columns = [
@@ -183,11 +176,11 @@ class QuoteExecTest(fixtures.TestBase):
table1.c.MixedCase,
table1.c.a123,
]
- result = select(columns, use_labels=True).execute().fetchall()
+ result = connection.execute(select(columns).apply_labels()).fetchall()
assert result == [(1, 2, 3, 4), (2, 2, 3, 4), (4, 3, 2, 1)]
columns = [table2.c.d123, table2.c.u123, table2.c.MixedCase]
- result = select(columns, use_labels=True).execute().fetchall()
+ result = connection.execute(select(columns).apply_labels()).all()
assert result == [(1, 2, 3), (2, 2, 3), (4, 3, 2)]