diff options
| -rw-r--r-- | lib/sqlalchemy/testing/suite/test_types.py | 25 | ||||
| -rw-r--r-- | test/dialect/mysql/test_types.py | 1 | ||||
| -rw-r--r-- | test/requirements.py | 17 |
3 files changed, 32 insertions, 11 deletions
diff --git a/lib/sqlalchemy/testing/suite/test_types.py b/lib/sqlalchemy/testing/suite/test_types.py index 83aac2850..e4819cb4d 100644 --- a/lib/sqlalchemy/testing/suite/test_types.py +++ b/lib/sqlalchemy/testing/suite/test_types.py @@ -860,22 +860,25 @@ class JSONTest(_LiteralRoundTripFixture, fixtures.TablesTest): ) def test_unicode_round_trip(self): - s = select([ - cast( + with config.db.connect() as conn: + conn.execute( + self.tables.data_table.insert(), + { + "name": "r1", + "data": { + util.u('réveillé'): util.u('réveillé'), + "data": {"k1": util.u('drôle')} + } + } + ) + + eq_( + conn.scalar(select([self.tables.data_table.c.data])), { util.u('réveillé'): util.u('réveillé'), "data": {"k1": util.u('drôle')} }, - self.datatype ) - ]) - eq_( - config.db.scalar(s), - { - util.u('réveillé'): util.u('réveillé'), - "data": {"k1": util.u('drôle')} - }, - ) def test_eval_none_flag_orm(self): from sqlalchemy.ext.declarative import declarative_base diff --git a/test/dialect/mysql/test_types.py b/test/dialect/mysql/test_types.py index f1f926138..0bc9de505 100644 --- a/test/dialect/mysql/test_types.py +++ b/test/dialect/mysql/test_types.py @@ -607,6 +607,7 @@ class JSONTest(fixtures.TestBase): __backend__ = True @testing.provide_metadata + @testing.requires.reflects_json_type def test_reflection(self): Table( diff --git a/test/requirements.py b/test/requirements.py index 3cbc5aaad..2ef145173 100644 --- a/test/requirements.py +++ b/test/requirements.py @@ -663,6 +663,23 @@ class DefaultRequirements(SuiteRequirements): @property def json_type(self): return only_on([ + lambda config: + against(config, "mysql") and ( + ( + not config.db.dialect._is_mariadb and + against(config, "mysql >= 5.7") + ) + or ( + config.db.dialect._mariadb_normalized_version_info >= + (10, 2, 7) + ) + ), + "postgresql >= 9.3" + ]) + + @property + def reflects_json_type(self): + return only_on([ lambda config: against(config, "mysql >= 5.7") and not config.db.dialect._is_mariadb, "postgresql >= 9.3" |
