summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMike Bayer <mike_mp@zzzcomputing.com>2010-03-18 19:47:33 +0000
committerMike Bayer <mike_mp@zzzcomputing.com>2010-03-18 19:47:33 +0000
commit6238032c8de254eb4702bfea13a30dea82f7b3ca (patch)
treea5fee154d87096901eb659a877d7774bb6022e1c
parentbf4c5685e1a7fd37db1a0c3802333eac832f0780 (diff)
downloadsqlalchemy-6238032c8de254eb4702bfea13a30dea82f7b3ca.tar.gz
- oracle needs a filter for this test
- oracle outparam test reveals usage of numeric proc with scale==None
-rw-r--r--lib/sqlalchemy/types.py5
-rw-r--r--test/sql/test_types.py8
2 files changed, 11 insertions, 2 deletions
diff --git a/lib/sqlalchemy/types.py b/lib/sqlalchemy/types.py
index 3feac8f4f..16cd57f26 100644
--- a/lib/sqlalchemy/types.py
+++ b/lib/sqlalchemy/types.py
@@ -940,7 +940,10 @@ class Numeric(_DateAffinity, TypeEngine):
return None
else:
# we're a "numeric", DBAPI returns floats, convert.
- return processors.to_decimal_processor_factory(_python_Decimal, self.scale)
+ if self.scale is not None:
+ return processors.to_decimal_processor_factory(_python_Decimal, self.scale)
+ else:
+ return processors.to_decimal_processor_factory(_python_Decimal)
else:
if dialect.supports_native_decimal:
return processors.to_float
diff --git a/test/sql/test_types.py b/test/sql/test_types.py
index 123eab48c..799e17f43 100644
--- a/test/sql/test_types.py
+++ b/test/sql/test_types.py
@@ -1113,10 +1113,16 @@ class NumericTest(TestBase):
)
def test_numeric_as_float(self):
+ if testing.against("oracle+cx_oracle"):
+ filter_ = lambda n:round(n, 5)
+ else:
+ filter_ = None
+
self._do_test(
Numeric(precision=8, scale=4, asdecimal=False),
[15.7563, Decimal("15.7563")],
- [15.7563]
+ [15.7563],
+ filter_ = filter_
)
def test_float_as_decimal(self):