diff options
author | mike bayer <mike_mp@zzzcomputing.com> | 2021-11-18 16:16:01 +0000 |
---|---|---|
committer | Gerrit Code Review <gerrit@ci3.zzzcomputing.com> | 2021-11-18 16:16:01 +0000 |
commit | 9141b6c15eac4827f0df2e3f87f331c821d13b5a (patch) | |
tree | 6f79ccdc19e9b80047496d86b404794e9e7525c0 /test | |
parent | 5b6393fb7b4282da0301eb88da5b7f33a8614d3e (diff) | |
parent | 93fad8fb0c5421ad162064e0aa506cb1e70cbf2b (diff) | |
download | sqlalchemy-9141b6c15eac4827f0df2e3f87f331c821d13b5a.tar.gz |
Merge "remove "native decimal" warning" into main
Diffstat (limited to 'test')
-rw-r--r-- | test/perf/orm2010.py | 15 | ||||
-rw-r--r-- | test/requirements.py | 16 | ||||
-rw-r--r-- | test/sql/test_types.py | 11 |
3 files changed, 12 insertions, 30 deletions
diff --git a/test/perf/orm2010.py b/test/perf/orm2010.py index a96ba23d7..de467cfd7 100644 --- a/test/perf/orm2010.py +++ b/test/perf/orm2010.py @@ -1,7 +1,6 @@ from decimal import Decimal import os import random -import warnings from sqlalchemy import __version__ from sqlalchemy import Column @@ -10,23 +9,11 @@ from sqlalchemy import ForeignKey from sqlalchemy import Integer from sqlalchemy import Numeric from sqlalchemy import String -from sqlalchemy.ext.declarative import declarative_base +from sqlalchemy.orm import declarative_base from sqlalchemy.orm import relationship from sqlalchemy.orm import Session -warnings.filterwarnings("ignore", r".*Decimal objects natively") # noqa - -# speed up cdecimal if available -try: - import cdecimal - import sys - - sys.modules["decimal"] = cdecimal -except ImportError: - pass - - Base = declarative_base() diff --git a/test/requirements.py b/test/requirements.py index 876507387..d9b003137 100644 --- a/test/requirements.py +++ b/test/requirements.py @@ -1138,16 +1138,9 @@ class DefaultRequirements(SuiteRequirements): """ - def broken_cx_oracle(config): - return ( - against(config, "oracle+cx_oracle") - and config.db.dialect.cx_oracle_ver <= (6, 0, 2) - and config.db.dialect.cx_oracle_ver > (6,) - ) - return fails_if( [ - ("sqlite", None, None, "TODO"), + ("sqlite", None, None, "SQLite numeric limitation"), ] ) @@ -1174,6 +1167,13 @@ class DefaultRequirements(SuiteRequirements): ) @property + def numeric_received_as_decimal_untyped(self): + return fails_on( + "sqlite", + "sqlite doesn't return Decimal objects without special handlers", + ) + + @property def infinity_floats(self): return fails_on_everything_except( "sqlite", "postgresql+psycopg2", "postgresql+asyncpg" diff --git a/test/sql/test_types.py b/test/sql/test_types.py index a15d163e0..7f850d00b 100644 --- a/test/sql/test_types.py +++ b/test/sql/test_types.py @@ -90,7 +90,6 @@ from sqlalchemy.testing.schema import Column from sqlalchemy.testing.schema import pep435_enum from sqlalchemy.testing.schema import Table from sqlalchemy.testing.util import picklers -from sqlalchemy.testing.util import round_decimal def _all_dialect_modules(): @@ -3458,7 +3457,7 @@ class NumericRawSQLTest(fixtures.TestBase): metadata.create_all(connection) connection.execute(t.insert(), dict(val=data)) - @testing.fails_on("sqlite", "Doesn't provide Decimal results natively") + @testing.requires.numeric_received_as_decimal_untyped @testing.provide_metadata def test_decimal_fp(self, connection): metadata = self.metadata @@ -3469,7 +3468,7 @@ class NumericRawSQLTest(fixtures.TestBase): assert isinstance(val, decimal.Decimal) eq_(val, decimal.Decimal("45.5")) - @testing.fails_on("sqlite", "Doesn't provide Decimal results natively") + @testing.requires.numeric_received_as_decimal_untyped @testing.provide_metadata def test_decimal_int(self, connection): metadata = self.metadata @@ -3495,11 +3494,7 @@ class NumericRawSQLTest(fixtures.TestBase): val = connection.exec_driver_sql("select val from t").scalar() assert isinstance(val, float) - # some DBAPIs have unusual float handling - if testing.against("oracle+cx_oracle"): - eq_(round_decimal(val, 3), 46.583) - else: - eq_(val, 46.583) + eq_(val, 46.583) class IntervalTest(fixtures.TablesTest, AssertsExecutionResults): |