summaryrefslogtreecommitdiff
path: root/lib/sqlalchemy/testing
diff options
context:
space:
mode:
authormike bayer <mike_mp@zzzcomputing.com>2020-08-18 17:33:46 +0000
committerGerrit Code Review <gerrit@bbpush.zzzcomputing.com>2020-08-18 17:33:46 +0000
commit2ec2db14d018e286e8c8eb629374a3e5c3fa3760 (patch)
treeacb6d852a0b9d4aa07f8334b6a386995f7815297 /lib/sqlalchemy/testing
parent7277c12e4d1bdc9647b9b306d89b5847d1c5a4d7 (diff)
parent06f1929b866abc2af0ff5c838e472a8b1c98d6e6 (diff)
downloadsqlalchemy-2ec2db14d018e286e8c8eb629374a3e5c3fa3760.tar.gz
Merge "Update dialect for pg8000 version 1.16.0"
Diffstat (limited to 'lib/sqlalchemy/testing')
-rw-r--r--lib/sqlalchemy/testing/assertions.py8
-rw-r--r--lib/sqlalchemy/testing/provision.py22
-rw-r--r--lib/sqlalchemy/testing/suite/test_types.py32
3 files changed, 22 insertions, 40 deletions
diff --git a/lib/sqlalchemy/testing/assertions.py b/lib/sqlalchemy/testing/assertions.py
index fe74be823..f9fabbeed 100644
--- a/lib/sqlalchemy/testing/assertions.py
+++ b/lib/sqlalchemy/testing/assertions.py
@@ -346,12 +346,12 @@ def _expect_raises(except_cls, msg=None, check_context=False):
assert success, "Callable did not raise an exception"
-def expect_raises(except_cls):
- return _expect_raises(except_cls, check_context=True)
+def expect_raises(except_cls, check_context=True):
+ return _expect_raises(except_cls, check_context=check_context)
-def expect_raises_message(except_cls, msg):
- return _expect_raises(except_cls, msg=msg, check_context=True)
+def expect_raises_message(except_cls, msg, check_context=True):
+ return _expect_raises(except_cls, msg=msg, check_context=check_context)
class AssertsCompiledSQL(object):
diff --git a/lib/sqlalchemy/testing/provision.py b/lib/sqlalchemy/testing/provision.py
index 21bacfca2..094d1ea94 100644
--- a/lib/sqlalchemy/testing/provision.py
+++ b/lib/sqlalchemy/testing/provision.py
@@ -7,6 +7,7 @@ from . import engines
from .. import exc
from ..engine import url as sa_url
from ..util import compat
+from ..util import parse_qsl
log = logging.getLogger(__name__)
@@ -85,7 +86,7 @@ def generate_db_urls(db_urls, extra_drivers):
--dburi postgresql://db1 \
--dburi postgresql://db2 \
--dburi postgresql://db2 \
- --dbdriver=psycopg2 --dbdriver=asyncpg
+ --dbdriver=psycopg2 --dbdriver=asyncpg?async_fallback=true
Noting that the default postgresql driver is psycopg2. the output
would be::
@@ -139,21 +140,34 @@ def _generate_driver_urls(url, extra_drivers):
main_driver = url.get_driver_name()
extra_drivers.discard(main_driver)
- url = generate_driver_url(url, main_driver)
+ url = generate_driver_url(url, main_driver, {})
yield str(url)
for drv in list(extra_drivers):
- new_url = generate_driver_url(url, drv)
+
+ if "?" in drv:
+
+ driver_only, query_str = drv.split("?", 1)
+
+ query = parse_qsl(query_str)
+ else:
+ driver_only = drv
+ query = {}
+
+ new_url = generate_driver_url(url, driver_only, query)
if new_url:
extra_drivers.remove(drv)
+
yield str(new_url)
@register.init
-def generate_driver_url(url, driver):
+def generate_driver_url(url, driver, query):
backend = url.get_backend_name()
new_url = copy.copy(url)
+ new_url.query = dict(new_url.query)
new_url.drivername = "%s+%s" % (backend, driver)
+ new_url.query.update(query)
try:
new_url.get_dialect()
except exc.NoSuchModuleError:
diff --git a/lib/sqlalchemy/testing/suite/test_types.py b/lib/sqlalchemy/testing/suite/test_types.py
index 5e6ac1eab..6a390231b 100644
--- a/lib/sqlalchemy/testing/suite/test_types.py
+++ b/lib/sqlalchemy/testing/suite/test_types.py
@@ -34,7 +34,6 @@ from ... import testing
from ... import Text
from ... import Time
from ... import TIMESTAMP
-from ... import type_coerce
from ... import TypeDecorator
from ... import Unicode
from ... import UnicodeText
@@ -1161,37 +1160,6 @@ class JSONStringCastIndexTest(_LiteralRoundTripFixture, fixtures.TablesTest):
and_(name == "r6", cast(col["b"], String) == '"some value"'), "r6"
)
- def test_crit_against_int_basic(self):
- name = self.tables.data_table.c.name
- col = self.tables.data_table.c["data"]
-
- self._test_index_criteria(
- and_(name == "r6", cast(col["a"], String) == "5"), "r6"
- )
-
- def _dont_test_crit_against_string_coerce_type(self):
- name = self.tables.data_table.c.name
- col = self.tables.data_table.c["data"]
-
- self._test_index_criteria(
- and_(
- name == "r6",
- cast(col["b"], String) == type_coerce("some value", JSON),
- ),
- "r6",
- test_literal=False,
- )
-
- def _dont_test_crit_against_int_coerce_type(self):
- name = self.tables.data_table.c.name
- col = self.tables.data_table.c["data"]
-
- self._test_index_criteria(
- and_(name == "r6", cast(col["a"], String) == type_coerce(5, JSON)),
- "r6",
- test_literal=False,
- )
-
__all__ = (
"UnicodeVarcharTest",