diff options
| author | mike bayer <mike_mp@zzzcomputing.com> | 2021-11-25 14:46:33 +0000 |
|---|---|---|
| committer | Gerrit Code Review <gerrit@ci3.zzzcomputing.com> | 2021-11-25 14:46:33 +0000 |
| commit | 3619f084bfb5208ae45686a0993d620b2711adf2 (patch) | |
| tree | 45a273205c06947c098b48971cdd3d0ab0052e9a /lib/sqlalchemy/testing | |
| parent | e9c8b5307e6f107d03224453354ae0eaab7d42b1 (diff) | |
| parent | 31acba8ff7c123a20ae308b7f4ab6df3df264b48 (diff) | |
| download | sqlalchemy-3619f084bfb5208ae45686a0993d620b2711adf2.tar.gz | |
Merge "Clean up most py3k compat" into main
Diffstat (limited to 'lib/sqlalchemy/testing')
| -rw-r--r-- | lib/sqlalchemy/testing/__init__.py | 2 | ||||
| -rw-r--r-- | lib/sqlalchemy/testing/assertions.py | 39 | ||||
| -rw-r--r-- | lib/sqlalchemy/testing/assertsql.py | 3 | ||||
| -rw-r--r-- | lib/sqlalchemy/testing/engines.py | 2 | ||||
| -rw-r--r-- | lib/sqlalchemy/testing/entities.py | 5 | ||||
| -rw-r--r-- | lib/sqlalchemy/testing/exclusions.py | 2 | ||||
| -rw-r--r-- | lib/sqlalchemy/testing/fixtures.py | 6 | ||||
| -rw-r--r-- | lib/sqlalchemy/testing/mock.py | 32 | ||||
| -rw-r--r-- | lib/sqlalchemy/testing/plugin/plugin_base.py | 26 | ||||
| -rw-r--r-- | lib/sqlalchemy/testing/plugin/pytestplugin.py | 3 | ||||
| -rw-r--r-- | lib/sqlalchemy/testing/profiling.py | 2 | ||||
| -rw-r--r-- | lib/sqlalchemy/testing/provision.py | 3 | ||||
| -rw-r--r-- | lib/sqlalchemy/testing/requirements.py | 23 | ||||
| -rw-r--r-- | lib/sqlalchemy/testing/suite/test_results.py | 3 | ||||
| -rw-r--r-- | lib/sqlalchemy/testing/suite/test_select.py | 5 | ||||
| -rw-r--r-- | lib/sqlalchemy/testing/suite/test_types.py | 45 | ||||
| -rw-r--r-- | lib/sqlalchemy/testing/suite/test_unicode_ddl.py | 120 | ||||
| -rw-r--r-- | lib/sqlalchemy/testing/warnings.py | 3 |
18 files changed, 103 insertions, 221 deletions
diff --git a/lib/sqlalchemy/testing/__init__.py b/lib/sqlalchemy/testing/__init__.py index d78e24181..cf7494f57 100644 --- a/lib/sqlalchemy/testing/__init__.py +++ b/lib/sqlalchemy/testing/__init__.py @@ -5,9 +5,9 @@ # This module is part of SQLAlchemy and is released under # the MIT License: https://www.opensource.org/licenses/mit-license.php +from unittest import mock from . import config -from . import mock from .assertions import assert_raises from .assertions import assert_raises_context_ok from .assertions import assert_raises_message diff --git a/lib/sqlalchemy/testing/assertions.py b/lib/sqlalchemy/testing/assertions.py index ed634befe..234ab4b93 100644 --- a/lib/sqlalchemy/testing/assertions.py +++ b/lib/sqlalchemy/testing/assertions.py @@ -5,9 +5,8 @@ # This module is part of SQLAlchemy and is released under # the MIT License: https://www.opensource.org/licenses/mit-license.php -from __future__ import absolute_import - import contextlib +from itertools import filterfalse import re import sys import warnings @@ -26,7 +25,6 @@ from .. import util from ..engine import default from ..engine import url from ..sql.selectable import LABEL_STYLE_TABLENAME_PLUS_COL -from ..util import compat from ..util import decorator @@ -58,7 +56,7 @@ def expect_warnings_on(db, *messages, **kw): """ spec = db_spec(db) - if isinstance(db, util.string_types) and not spec(config._current): + if isinstance(db, str) and not spec(config._current): yield else: with expect_warnings(*messages, **kw): @@ -144,7 +142,6 @@ def _expect_warnings( messages, regex=True, assert_=True, - py2konly=False, raise_on_any_unexpected=False, ): @@ -210,7 +207,7 @@ def _expect_warnings( finally: _SEEN = _FILTERS = _EXC_CLS = None - if assert_ and (not py2konly or not compat.py3k): + if assert_: assert not seen, "Warnings were not seen: %s" % ", ".join( "%r" % (s.pattern if regex else s) for s in seen ) @@ -325,9 +322,6 @@ def _assert_proper_exception_context(exception): """ - if not util.py3k: - return - if ( exception.__context__ is not exception.__cause__ and not exception.__suppress_context__ @@ -386,14 +380,14 @@ def _expect_raises(except_cls, msg=None, check_context=False): if msg is not None: # I'm often pdbing here, and "err" above isn't # in scope, so assign the string explicitly - error_as_string = util.text_type(err) + error_as_string = str(err) assert re.search(msg, error_as_string, re.UNICODE), "%r !~ %s" % ( msg, error_as_string, ) if check_context and not are_we_already_in_a_traceback: _assert_proper_exception_context(err) - print(util.text_type(err).encode("utf-8")) + print(str(err).encode("utf-8")) # it's generally a good idea to not carry traceback objects outside # of the except: block, but in this case especially we seem to have @@ -456,7 +450,7 @@ class AssertsCompiledSQL: dialect.supports_default_metavalue = supports_default_metavalue elif dialect == "default_enhanced": dialect = default.StrCompileDialect() - elif isinstance(dialect, util.string_types): + elif isinstance(dialect, str): dialect = url.URL.create(dialect).get_dialect()() if default_schema_name: @@ -553,21 +547,10 @@ class AssertsCompiledSQL: c = CheckCompilerAccess(clause).compile(dialect=dialect, **kw) param_str = repr(getattr(c, "params", {})) - if util.py3k: - param_str = param_str.encode("utf-8").decode("ascii", "ignore") - print( - ("\nSQL String:\n" + util.text_type(c) + param_str).encode( - "utf-8" - ) - ) - else: - print( - "\nSQL String:\n" - + util.text_type(c).encode("utf-8") - + param_str - ) + param_str = param_str.encode("utf-8").decode("ascii", "ignore") + print(("\nSQL String:\n" + str(c) + param_str).encode("utf-8")) - cc = re.sub(r"[\n\t]", "", util.text_type(c)) + cc = re.sub(r"[\n\t]", "", str(c)) eq_(cc, result, "%r != %r on dialect %r" % (cc, result, dialect)) @@ -687,9 +670,7 @@ class AssertsExecutionResults: found = util.IdentitySet(result) expected = {immutabledict(e) for e in expected} - for wrong in util.itertools_filterfalse( - lambda o: isinstance(o, cls), found - ): + for wrong in filterfalse(lambda o: isinstance(o, cls), found): fail( 'Unexpected type "%s", expected "%s"' % (type(wrong).__name__, cls.__name__) diff --git a/lib/sqlalchemy/testing/assertsql.py b/lib/sqlalchemy/testing/assertsql.py index 485a13f82..46fdf6b9b 100644 --- a/lib/sqlalchemy/testing/assertsql.py +++ b/lib/sqlalchemy/testing/assertsql.py @@ -10,7 +10,6 @@ import contextlib import re from .. import event -from .. import util from ..engine import url from ..engine.default import DefaultDialect from ..schema import _DDLCompiles @@ -123,7 +122,7 @@ class CompiledSQL(SQLMatchRule): for_executemany=context.compiled.for_executemany, schema_translate_map=map_, ) - _received_statement = re.sub(r"[\n\t]", "", util.text_type(compiled)) + _received_statement = re.sub(r"[\n\t]", "", str(compiled)) parameters = execute_observed.parameters if not parameters: diff --git a/lib/sqlalchemy/testing/engines.py b/lib/sqlalchemy/testing/engines.py index 98de5df5c..e17c09be7 100644 --- a/lib/sqlalchemy/testing/engines.py +++ b/lib/sqlalchemy/testing/engines.py @@ -5,8 +5,6 @@ # This module is part of SQLAlchemy and is released under # the MIT License: https://www.opensource.org/licenses/mit-license.php -from __future__ import absolute_import - import collections import re import warnings diff --git a/lib/sqlalchemy/testing/entities.py b/lib/sqlalchemy/testing/entities.py index 15b6388fb..a87d853c3 100644 --- a/lib/sqlalchemy/testing/entities.py +++ b/lib/sqlalchemy/testing/entities.py @@ -7,7 +7,6 @@ import sqlalchemy as sa from .. import exc as sa_exc -from ..util import compat _repr_stack = set() @@ -87,9 +86,7 @@ class ComparableMixin: except (AttributeError, sa_exc.UnboundExecutionError): return False - if hasattr(value, "__iter__") and not isinstance( - value, compat.string_types - ): + if hasattr(value, "__iter__") and not isinstance(value, str): if hasattr(value, "__getitem__") and not hasattr( value, "keys" ): diff --git a/lib/sqlalchemy/testing/exclusions.py b/lib/sqlalchemy/testing/exclusions.py index 7b2343128..c20cd920c 100644 --- a/lib/sqlalchemy/testing/exclusions.py +++ b/lib/sqlalchemy/testing/exclusions.py @@ -201,7 +201,7 @@ class Predicate: ) elif isinstance(predicate, tuple): return SpecPredicate(*predicate) - elif isinstance(predicate, util.string_types): + elif isinstance(predicate, str): tokens = re.match( r"([\+\w]+)\s*(?:(>=|==|!=|<=|<|>)\s*([\d\.]+))?", predicate ) diff --git a/lib/sqlalchemy/testing/fixtures.py b/lib/sqlalchemy/testing/fixtures.py index d5e8e376a..1d56d923e 100644 --- a/lib/sqlalchemy/testing/fixtures.py +++ b/lib/sqlalchemy/testing/fixtures.py @@ -429,7 +429,7 @@ class TablesTest(TestBase): try: conn.execute(table.delete()) except sa.exc.DBAPIError as ex: - util.print_( + print( ("Error emptying table %s: %r" % (table, ex)), file=sys.stderr, ) @@ -483,7 +483,7 @@ class TablesTest(TestBase): for table, data in cls.fixtures().items(): if len(data) < 2: continue - if isinstance(table, util.string_types): + if isinstance(table, str): table = cls.tables[table] headers[table] = data[0] rows[table] = data[1:] @@ -654,7 +654,7 @@ class MappedTest(TablesTest, assertions.AssertsExecutionResults): cls_registry[classname] = cls type.__init__(cls, classname, bases, dict_) - class _Base(util.with_metaclass(FindFixture, object)): + class _Base(metaclass=FindFixture): pass class Basic(BasicEntity, _Base): diff --git a/lib/sqlalchemy/testing/mock.py b/lib/sqlalchemy/testing/mock.py deleted file mode 100644 index 8fe08a678..000000000 --- a/lib/sqlalchemy/testing/mock.py +++ /dev/null @@ -1,32 +0,0 @@ -# testing/mock.py -# Copyright (C) 2005-2021 the SQLAlchemy authors and contributors -# <see AUTHORS file> -# -# This module is part of SQLAlchemy and is released under -# the MIT License: https://www.opensource.org/licenses/mit-license.php - -"""Import stub for mock library. -""" -from __future__ import absolute_import - -from ..util import py3k - - -if py3k: - from unittest.mock import MagicMock - from unittest.mock import Mock - from unittest.mock import call - from unittest.mock import patch - from unittest.mock import ANY -else: - try: - from mock import MagicMock # noqa - from mock import Mock # noqa - from mock import call # noqa - from mock import patch # noqa - from mock import ANY # noqa - except ImportError: - raise ImportError( - "SQLAlchemy's test suite requires the " - "'mock' library as of 0.8.2." - ) diff --git a/lib/sqlalchemy/testing/plugin/plugin_base.py b/lib/sqlalchemy/testing/plugin/plugin_base.py index b382e97f6..32ed2c315 100644 --- a/lib/sqlalchemy/testing/plugin/plugin_base.py +++ b/lib/sqlalchemy/testing/plugin/plugin_base.py @@ -13,35 +13,20 @@ created so that multiple test frameworks can be supported at once is pytest. """ - -from __future__ import absolute_import - import abc +import configparser import logging import re import sys +from sqlalchemy.testing import asyncio + # flag which indicates we are in the SQLAlchemy testing suite, # and not that of Alembic or a third party dialect. bootstrapped_as_sqlalchemy = False log = logging.getLogger("sqlalchemy.testing.plugin_base") - -py3k = sys.version_info >= (3, 0) - -if py3k: - import configparser - - ABC = abc.ABC -else: - import ConfigParser as configparser - import collections as collections_abc # noqa - - class ABC: - __metaclass__ = abc.ABCMeta - - # late imports fixtures = None engines = None @@ -393,8 +378,7 @@ def _init_symbols(options, file_config): @post def _set_disable_asyncio(opt, file_config): - if opt.disable_asyncio or not py3k: - from sqlalchemy.testing import asyncio + if opt.disable_asyncio: asyncio.ENABLE_ASYNCIO = False @@ -756,7 +740,7 @@ def _setup_config(config_obj, ctx): config._current.push(config_obj, testing) -class FixtureFunctions(ABC): +class FixtureFunctions(abc.ABC): @abc.abstractmethod def skip_test_exception(self, *arg, **kw): raise NotImplementedError() diff --git a/lib/sqlalchemy/testing/plugin/pytestplugin.py b/lib/sqlalchemy/testing/plugin/pytestplugin.py index 36aaa5d2a..ba774b118 100644 --- a/lib/sqlalchemy/testing/plugin/pytestplugin.py +++ b/lib/sqlalchemy/testing/plugin/pytestplugin.py @@ -344,7 +344,6 @@ _current_class = None def pytest_runtest_setup(item): from sqlalchemy.testing import asyncio - from sqlalchemy.util import string_types if not isinstance(item, pytest.Function): return @@ -382,7 +381,7 @@ def pytest_runtest_setup(item): "__Original test failure__:\n" + _current_report.longreprtext, ) - elif e.args[-1] and isinstance(e.args[-1], string_types): + elif e.args[-1] and isinstance(e.args[-1], str): args = list(e.args) args[-1] += ( "\n__Original test failure__:\n" diff --git a/lib/sqlalchemy/testing/profiling.py b/lib/sqlalchemy/testing/profiling.py index b6a6e75b1..2761d4987 100644 --- a/lib/sqlalchemy/testing/profiling.py +++ b/lib/sqlalchemy/testing/profiling.py @@ -279,7 +279,7 @@ def count_functions(variance=0.05): # ended = time.time() pr.disable() - # s = compat.StringIO() + # s = StringIO() stats = pstats.Stats(pr, stream=sys.stdout) # timespent = ended - began diff --git a/lib/sqlalchemy/testing/provision.py b/lib/sqlalchemy/testing/provision.py index 15613957c..e51eb172e 100644 --- a/lib/sqlalchemy/testing/provision.py +++ b/lib/sqlalchemy/testing/provision.py @@ -9,7 +9,6 @@ from .. import inspect from ..engine import url as sa_url from ..sql import ddl from ..sql import schema -from ..util import compat log = logging.getLogger(__name__) @@ -34,7 +33,7 @@ class register: return decorate def __call__(self, cfg, *arg): - if isinstance(cfg, compat.string_types): + if isinstance(cfg, str): url = sa_url.make_url(cfg) elif isinstance(cfg, sa_url.URL): url = cfg diff --git a/lib/sqlalchemy/testing/requirements.py b/lib/sqlalchemy/testing/requirements.py index 325c0a9bb..8cb72d163 100644 --- a/lib/sqlalchemy/testing/requirements.py +++ b/lib/sqlalchemy/testing/requirements.py @@ -16,7 +16,6 @@ to provide specific inclusion/exclusions. """ import platform -import sys from . import exclusions from . import only_on @@ -1272,12 +1271,12 @@ class SuiteRequirements(Requirements): @property def threading_with_mock(self): """Mark tests that use threading and mock at the same time - stability - issues have been observed with coverage + python 3.3 + issues have been observed with coverage """ return exclusions.skip_if( - lambda config: util.py3k and config.options.has_coverage, - "Stability issues with coverage + py3k", + lambda config: config.options.has_coverage, + "Stability issues with coverage", ) @property @@ -1317,17 +1316,6 @@ class SuiteRequirements(Requirements): return exclusions.only_if(check_lib, "patch library needed") @property - def non_broken_pickle(self): - from sqlalchemy.util import pickle - - return exclusions.only_if( - lambda: util.cpython - and pickle.__name__ == "cPickle" - or sys.version_info >= (3, 2), - "Needs cPickle+cPython or newer Python 3 pickle", - ) - - @property def predictable_gc(self): """target platform must remove all cycles unconditionally when gc.collect() is called, as well as clean out unreferenced subclasses. @@ -1505,8 +1493,3 @@ class SuiteRequirements(Requirements): sequence. This should be false only for oracle. """ return exclusions.open() - - @property - def generic_classes(self): - "If X[Y] can be implemented with ``__class_getitem__``. py3.7+" - return exclusions.only_if(lambda: util.py37) diff --git a/lib/sqlalchemy/testing/suite/test_results.py b/lib/sqlalchemy/testing/suite/test_results.py index f470432d2..5ad68034b 100644 --- a/lib/sqlalchemy/testing/suite/test_results.py +++ b/lib/sqlalchemy/testing/suite/test_results.py @@ -14,7 +14,6 @@ from ... import sql from ... import String from ... import testing from ... import text -from ... import util class RowFetchTest(fixtures.TablesTest): @@ -306,7 +305,7 @@ class ServerSideCursorsTest( ): engine = self._fixture(engine_ss_arg) with engine.begin() as conn: - if isinstance(statement, util.string_types): + if isinstance(statement, str): result = conn.exec_driver_sql(statement) else: result = conn.execute(statement) diff --git a/lib/sqlalchemy/testing/suite/test_select.py b/lib/sqlalchemy/testing/suite/test_select.py index b5a3dca3a..c1228f5df 100644 --- a/lib/sqlalchemy/testing/suite/test_select.py +++ b/lib/sqlalchemy/testing/suite/test_select.py @@ -1,3 +1,4 @@ +import collections.abc as collections_abc import itertools from .. import AssertsCompiledSQL @@ -32,11 +33,9 @@ from ... import true from ... import tuple_ from ... import TupleType from ... import union -from ... import util from ... import values from ...exc import DatabaseError from ...exc import ProgrammingError -from ...util import collections_abc class CollateTest(fixtures.TablesTest): @@ -131,7 +130,7 @@ class OrderByLabelTest(fixtures.TablesTest): ly = (func.lower(table.c.q) + table.c.p).label("ly") self._assert_result( select(lx, ly).order_by(lx, ly.desc()), - [(3, util.u("q1p3")), (5, util.u("q2p2")), (7, util.u("q3p1"))], + [(3, "q1p3"), (5, "q2p2"), (7, "q3p1")], ) def test_plain_desc(self): diff --git a/lib/sqlalchemy/testing/suite/test_types.py b/lib/sqlalchemy/testing/suite/test_types.py index 4a5396ed8..7989b1e39 100644 --- a/lib/sqlalchemy/testing/suite/test_types.py +++ b/lib/sqlalchemy/testing/suite/test_types.py @@ -39,10 +39,8 @@ from ... import type_coerce from ... import TypeDecorator from ... import Unicode from ... import UnicodeText -from ... import util from ...orm import declarative_base from ...orm import Session -from ...util import u class _LiteralRoundTripFixture: @@ -93,7 +91,7 @@ class _LiteralRoundTripFixture: class _UnicodeFixture(_LiteralRoundTripFixture, fixtures.TestBase): __requires__ = ("unicode_data",) - data = u( + data = ( "Alors vous imaginez ma đ surprise, au lever du jour, " "quand une drĂŽle de petite đ voix mâa rĂ©veillĂ©. Elle " "disait: « Sâil vous plaĂźt⊠dessine-moi đ un mouton! »" @@ -124,7 +122,7 @@ class _UnicodeFixture(_LiteralRoundTripFixture, fixtures.TestBase): row = connection.execute(select(unicode_table.c.unicode_data)).first() eq_(row, (self.data,)) - assert isinstance(row[0], util.text_type) + assert isinstance(row[0], str) def test_round_trip_executemany(self, connection): unicode_table = self.tables.unicode_table @@ -139,7 +137,7 @@ class _UnicodeFixture(_LiteralRoundTripFixture, fixtures.TestBase): ).fetchall() eq_(rows, [(self.data,) for i in range(1, 4)]) for row in rows: - assert isinstance(row[0], util.text_type) + assert isinstance(row[0], str) def _test_null_strings(self, connection): unicode_table = self.tables.unicode_table @@ -154,18 +152,16 @@ class _UnicodeFixture(_LiteralRoundTripFixture, fixtures.TestBase): unicode_table = self.tables.unicode_table connection.execute( - unicode_table.insert(), {"id": 1, "unicode_data": u("")} + unicode_table.insert(), {"id": 1, "unicode_data": ""} ) row = connection.execute(select(unicode_table.c.unicode_data)).first() - eq_(row, (u(""),)) + eq_(row, ("",)) def test_literal(self, literal_round_trip): literal_round_trip(self.datatype, [self.data], [self.data]) def test_literal_non_ascii(self, literal_round_trip): - literal_round_trip( - self.datatype, [util.u("rĂ©veđ illĂ©")], [util.u("rĂ©veđ illĂ©")] - ) + literal_round_trip(self.datatype, ["rĂ©veđ illĂ©"], ["rĂ©veđ illĂ©"]) class UnicodeVarcharTest(_UnicodeFixture, fixtures.TablesTest): @@ -243,9 +239,7 @@ class TextTest(_LiteralRoundTripFixture, fixtures.TablesTest): literal_round_trip(Text, ["some text"], ["some text"]) def test_literal_non_ascii(self, literal_round_trip): - literal_round_trip( - Text, [util.u("rĂ©veđ illĂ©")], [util.u("rĂ©veđ illĂ©")] - ) + literal_round_trip(Text, ["rĂ©veđ illĂ©"], ["rĂ©veđ illĂ©"]) def test_literal_quoting(self, literal_round_trip): data = """some 'text' hey "hi there" that's text""" @@ -277,9 +271,7 @@ class StringTest(_LiteralRoundTripFixture, fixtures.TestBase): literal_round_trip(String(40), ["some text"], ["some text"]) def test_literal_non_ascii(self, literal_round_trip): - literal_round_trip( - String(40), [util.u("rĂ©veđ illĂ©")], [util.u("rĂ©veđ illĂ©")] - ) + literal_round_trip(String(40), ["rĂ©veđ illĂ©"], ["rĂ©veđ illĂ©"]) def test_literal_quoting(self, literal_round_trip): data = """some 'text' hey "hi there" that's text""" @@ -474,10 +466,7 @@ class IntegerTest(_LiteralRoundTripFixture, fixtures.TestBase): eq_(row, (data,)) - if util.py3k: - assert isinstance(row[0], int) - else: - assert isinstance(row[0], (long, int)) # noqa + assert isinstance(row[0], int) return run @@ -880,10 +869,10 @@ class JSONTest(_LiteralRoundTripFixture, fixtures.TablesTest): ("boolean", None), ("string", "some string"), ("string", None), - ("string", util.u("rĂ©ve illĂ©")), + ("string", "rĂ©ve illĂ©"), ( "string", - util.u("rĂ©veđ illĂ©"), + "rĂ©veđ illĂ©", testing.requires.json_index_supplementary_unicode_element, ), ("integer", 15), @@ -1080,8 +1069,8 @@ class JSONTest(_LiteralRoundTripFixture, fixtures.TablesTest): (-1.0,), (15.052,), ("a string",), - (util.u("rĂ©ve illĂ©"),), - (util.u("rĂ©veđ illĂ©"),), + ("rĂ©ve illĂ©",), + ("rĂ©veđ illĂ©",), ) def test_single_element_round_trip(self, element): data_table = self.tables.data_table @@ -1243,8 +1232,8 @@ class JSONTest(_LiteralRoundTripFixture, fixtures.TablesTest): { "name": "r1", "data": { - util.u("rĂ©veđ illĂ©"): util.u("rĂ©veđ illĂ©"), - "data": {"k1": util.u("drĂŽlđe")}, + "rĂ©veđ illĂ©": "rĂ©veđ illĂ©", + "data": {"k1": "drĂŽlđe"}, }, }, ) @@ -1252,8 +1241,8 @@ class JSONTest(_LiteralRoundTripFixture, fixtures.TablesTest): eq_( conn.scalar(select(self.tables.data_table.c.data)), { - util.u("rĂ©veđ illĂ©"): util.u("rĂ©veđ illĂ©"), - "data": {"k1": util.u("drĂŽlđe")}, + "rĂ©veđ illĂ©": "rĂ©veđ illĂ©", + "data": {"k1": "drĂŽlđe"}, }, ) diff --git a/lib/sqlalchemy/testing/suite/test_unicode_ddl.py b/lib/sqlalchemy/testing/suite/test_unicode_ddl.py index 1334eb8db..a0cd6734a 100644 --- a/lib/sqlalchemy/testing/suite/test_unicode_ddl.py +++ b/lib/sqlalchemy/testing/suite/test_unicode_ddl.py @@ -10,8 +10,6 @@ from sqlalchemy.testing import eq_ from sqlalchemy.testing import fixtures from sqlalchemy.testing.schema import Column from sqlalchemy.testing.schema import Table -from sqlalchemy.util import u -from sqlalchemy.util import ue class UnicodeSchemaTest(fixtures.TablesTest): @@ -23,20 +21,20 @@ class UnicodeSchemaTest(fixtures.TablesTest): global t1, t2, t3 t1 = Table( - u("unitable1"), + "unitable1", metadata, - Column(u("mĂ©il"), Integer, primary_key=True), - Column(ue("\u6e2c\u8a66"), Integer), + Column("mĂ©il", Integer, primary_key=True), + Column("\u6e2c\u8a66", Integer), test_needs_fk=True, ) t2 = Table( - u("UnitĂ©ble2"), + "UnitĂ©ble2", metadata, - Column(u("mĂ©il"), Integer, primary_key=True, key="a"), + Column("mĂ©il", Integer, primary_key=True, key="a"), Column( - ue("\u6e2c\u8a66"), + "\u6e2c\u8a66", Integer, - ForeignKey(u("unitable1.mĂ©il")), + ForeignKey("unitable1.mĂ©il"), key="b", ), test_needs_fk=True, @@ -45,55 +43,53 @@ class UnicodeSchemaTest(fixtures.TablesTest): # Few DBs support Unicode foreign keys if testing.against("sqlite"): t3 = Table( - ue("\u6e2c\u8a66"), + "\u6e2c\u8a66", metadata, Column( - ue("\u6e2c\u8a66_id"), + "\u6e2c\u8a66_id", Integer, primary_key=True, autoincrement=False, ), Column( - ue("unitable1_\u6e2c\u8a66"), + "unitable1_\u6e2c\u8a66", Integer, - ForeignKey(ue("unitable1.\u6e2c\u8a66")), + ForeignKey("unitable1.\u6e2c\u8a66"), ), + Column("UnitĂ©ble2_b", Integer, ForeignKey("UnitĂ©ble2.b")), Column( - u("UnitĂ©ble2_b"), Integer, ForeignKey(u("UnitĂ©ble2.b")) - ), - Column( - ue("\u6e2c\u8a66_self"), + "\u6e2c\u8a66_self", Integer, - ForeignKey(ue("\u6e2c\u8a66.\u6e2c\u8a66_id")), + ForeignKey("\u6e2c\u8a66.\u6e2c\u8a66_id"), ), test_needs_fk=True, ) else: t3 = Table( - ue("\u6e2c\u8a66"), + "\u6e2c\u8a66", metadata, Column( - ue("\u6e2c\u8a66_id"), + "\u6e2c\u8a66_id", Integer, primary_key=True, autoincrement=False, ), - Column(ue("unitable1_\u6e2c\u8a66"), Integer), - Column(u("UnitĂ©ble2_b"), Integer), - Column(ue("\u6e2c\u8a66_self"), Integer), + Column("unitable1_\u6e2c\u8a66", Integer), + Column("UnitĂ©ble2_b", Integer), + Column("\u6e2c\u8a66_self", Integer), test_needs_fk=True, ) def test_insert(self, connection): - connection.execute(t1.insert(), {u("mĂ©il"): 1, ue("\u6e2c\u8a66"): 5}) - connection.execute(t2.insert(), {u("a"): 1, u("b"): 1}) + connection.execute(t1.insert(), {"mĂ©il": 1, "\u6e2c\u8a66": 5}) + connection.execute(t2.insert(), {"a": 1, "b": 1}) connection.execute( t3.insert(), { - ue("\u6e2c\u8a66_id"): 1, - ue("unitable1_\u6e2c\u8a66"): 5, - u("UnitĂ©ble2_b"): 1, - ue("\u6e2c\u8a66_self"): 1, + "\u6e2c\u8a66_id": 1, + "unitable1_\u6e2c\u8a66": 5, + "UnitĂ©ble2_b": 1, + "\u6e2c\u8a66_self": 1, }, ) @@ -102,42 +98,42 @@ class UnicodeSchemaTest(fixtures.TablesTest): eq_(connection.execute(t3.select()).fetchall(), [(1, 5, 1, 1)]) def test_col_targeting(self, connection): - connection.execute(t1.insert(), {u("mĂ©il"): 1, ue("\u6e2c\u8a66"): 5}) - connection.execute(t2.insert(), {u("a"): 1, u("b"): 1}) + connection.execute(t1.insert(), {"mĂ©il": 1, "\u6e2c\u8a66": 5}) + connection.execute(t2.insert(), {"a": 1, "b": 1}) connection.execute( t3.insert(), { - ue("\u6e2c\u8a66_id"): 1, - ue("unitable1_\u6e2c\u8a66"): 5, - u("UnitĂ©ble2_b"): 1, - ue("\u6e2c\u8a66_self"): 1, + "\u6e2c\u8a66_id": 1, + "unitable1_\u6e2c\u8a66": 5, + "UnitĂ©ble2_b": 1, + "\u6e2c\u8a66_self": 1, }, ) row = connection.execute(t1.select()).first() - eq_(row._mapping[t1.c[u("mĂ©il")]], 1) - eq_(row._mapping[t1.c[ue("\u6e2c\u8a66")]], 5) + eq_(row._mapping[t1.c["mĂ©il"]], 1) + eq_(row._mapping[t1.c["\u6e2c\u8a66"]], 5) row = connection.execute(t2.select()).first() - eq_(row._mapping[t2.c[u("a")]], 1) - eq_(row._mapping[t2.c[u("b")]], 1) + eq_(row._mapping[t2.c["a"]], 1) + eq_(row._mapping[t2.c["b"]], 1) row = connection.execute(t3.select()).first() - eq_(row._mapping[t3.c[ue("\u6e2c\u8a66_id")]], 1) - eq_(row._mapping[t3.c[ue("unitable1_\u6e2c\u8a66")]], 5) - eq_(row._mapping[t3.c[u("UnitĂ©ble2_b")]], 1) - eq_(row._mapping[t3.c[ue("\u6e2c\u8a66_self")]], 1) + eq_(row._mapping[t3.c["\u6e2c\u8a66_id"]], 1) + eq_(row._mapping[t3.c["unitable1_\u6e2c\u8a66"]], 5) + eq_(row._mapping[t3.c["UnitĂ©ble2_b"]], 1) + eq_(row._mapping[t3.c["\u6e2c\u8a66_self"]], 1) def test_reflect(self, connection): - connection.execute(t1.insert(), {u("mĂ©il"): 2, ue("\u6e2c\u8a66"): 7}) - connection.execute(t2.insert(), {u("a"): 2, u("b"): 2}) + connection.execute(t1.insert(), {"mĂ©il": 2, "\u6e2c\u8a66": 7}) + connection.execute(t2.insert(), {"a": 2, "b": 2}) connection.execute( t3.insert(), { - ue("\u6e2c\u8a66_id"): 2, - ue("unitable1_\u6e2c\u8a66"): 7, - u("UnitĂ©ble2_b"): 2, - ue("\u6e2c\u8a66_self"): 2, + "\u6e2c\u8a66_id": 2, + "unitable1_\u6e2c\u8a66": 7, + "UnitĂ©ble2_b": 2, + "\u6e2c\u8a66_self": 2, }, ) @@ -146,42 +142,36 @@ class UnicodeSchemaTest(fixtures.TablesTest): tt2 = Table(t2.name, meta, autoload_with=connection) tt3 = Table(t3.name, meta, autoload_with=connection) - connection.execute(tt1.insert(), {u("mĂ©il"): 1, ue("\u6e2c\u8a66"): 5}) - connection.execute(tt2.insert(), {u("mĂ©il"): 1, ue("\u6e2c\u8a66"): 1}) + connection.execute(tt1.insert(), {"mĂ©il": 1, "\u6e2c\u8a66": 5}) + connection.execute(tt2.insert(), {"mĂ©il": 1, "\u6e2c\u8a66": 1}) connection.execute( tt3.insert(), { - ue("\u6e2c\u8a66_id"): 1, - ue("unitable1_\u6e2c\u8a66"): 5, - u("UnitĂ©ble2_b"): 1, - ue("\u6e2c\u8a66_self"): 1, + "\u6e2c\u8a66_id": 1, + "unitable1_\u6e2c\u8a66": 5, + "UnitĂ©ble2_b": 1, + "\u6e2c\u8a66_self": 1, }, ) eq_( - connection.execute( - tt1.select().order_by(desc(u("mĂ©il"))) - ).fetchall(), + connection.execute(tt1.select().order_by(desc("mĂ©il"))).fetchall(), [(2, 7), (1, 5)], ) eq_( - connection.execute( - tt2.select().order_by(desc(u("mĂ©il"))) - ).fetchall(), + connection.execute(tt2.select().order_by(desc("mĂ©il"))).fetchall(), [(2, 2), (1, 1)], ) eq_( connection.execute( - tt3.select().order_by(desc(ue("\u6e2c\u8a66_id"))) + tt3.select().order_by(desc("\u6e2c\u8a66_id")) ).fetchall(), [(2, 7, 2, 2), (1, 5, 1, 1)], ) def test_repr(self): meta = MetaData() - t = Table( - ue("\u6e2c\u8a66"), meta, Column(ue("\u6e2c\u8a66_id"), Integer) - ) + t = Table("\u6e2c\u8a66", meta, Column("\u6e2c\u8a66_id", Integer)) eq_( repr(t), ( diff --git a/lib/sqlalchemy/testing/warnings.py b/lib/sqlalchemy/testing/warnings.py index 2c41337e4..c8e481a90 100644 --- a/lib/sqlalchemy/testing/warnings.py +++ b/lib/sqlalchemy/testing/warnings.py @@ -4,9 +4,6 @@ # # This module is part of SQLAlchemy and is released under # the MIT License: https://www.opensource.org/licenses/mit-license.php - -from __future__ import absolute_import - import warnings from . import assertions |
