summaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
authormike bayer <mike_mp@zzzcomputing.com>2021-11-18 16:16:01 +0000
committerGerrit Code Review <gerrit@ci3.zzzcomputing.com>2021-11-18 16:16:01 +0000
commit9141b6c15eac4827f0df2e3f87f331c821d13b5a (patch)
tree6f79ccdc19e9b80047496d86b404794e9e7525c0 /test
parent5b6393fb7b4282da0301eb88da5b7f33a8614d3e (diff)
parent93fad8fb0c5421ad162064e0aa506cb1e70cbf2b (diff)
downloadsqlalchemy-9141b6c15eac4827f0df2e3f87f331c821d13b5a.tar.gz
Merge "remove "native decimal" warning" into main
Diffstat (limited to 'test')
-rw-r--r--test/perf/orm2010.py15
-rw-r--r--test/requirements.py16
-rw-r--r--test/sql/test_types.py11
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):