summaryrefslogtreecommitdiff
path: root/test/dialect/test_postgresql.py
diff options
context:
space:
mode:
authorMike Bayer <mike_mp@zzzcomputing.com>2010-11-18 18:10:03 -0500
committerMike Bayer <mike_mp@zzzcomputing.com>2010-11-18 18:10:03 -0500
commit34cb747f647747fc1685156d28166ab33da81ae8 (patch)
tree7d7f1e4dc9a4db1f2a545c6d8c992c870afd5eb4 /test/dialect/test_postgresql.py
parent3d72efba2b1a39a52a2736dbc2ad7492b2455b27 (diff)
downloadsqlalchemy-34cb747f647747fc1685156d28166ab33da81ae8.tar.gz
- Ensured every numeric, float, int code, scalar + array,
are recognized by psycopg2 and pg8000's "numeric" base type. [ticket:1955]
Diffstat (limited to 'test/dialect/test_postgresql.py')
-rw-r--r--test/dialect/test_postgresql.py18
1 files changed, 18 insertions, 0 deletions
diff --git a/test/dialect/test_postgresql.py b/test/dialect/test_postgresql.py
index e20274aef..54127cd98 100644
--- a/test/dialect/test_postgresql.py
+++ b/test/dialect/test_postgresql.py
@@ -456,7 +456,25 @@ class EnumTest(TestBase, AssertsExecutionResults, AssertsCompiledSQL):
assert t2.c.value2.type.schema == 'test_schema'
finally:
metadata.drop_all()
+
+class NumericInterpretationTest(TestBase):
+
+
+ def test_numeric_codes(self):
+ from sqlalchemy.dialects.postgresql import pg8000, psycopg2, base
+ from decimal import Decimal
+ for dialect in (pg8000.dialect(), psycopg2.dialect()):
+
+ typ = Numeric().dialect_impl(dialect)
+ for code in base._INT_TYPES + base._FLOAT_TYPES + \
+ base._DECIMAL_TYPES:
+ proc = typ.result_processor(dialect, code)
+ val = 23.7
+ if proc is not None:
+ val = proc(val)
+ assert val in (23.7, Decimal("23.7"))
+
class InsertTest(TestBase, AssertsExecutionResults):
__only_on__ = 'postgresql'