diff options
Diffstat (limited to 'lib/sqlalchemy/testing')
| -rw-r--r-- | lib/sqlalchemy/testing/assertions.py | 8 | ||||
| -rw-r--r-- | lib/sqlalchemy/testing/provision.py | 22 | ||||
| -rw-r--r-- | lib/sqlalchemy/testing/suite/test_types.py | 32 |
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", |
