Author: phd
Date: 2005-08-22 06:31:09 +0000 (Mon, 22 Aug 2005)
New Revision: 935
Added:
trunk/SQLObject/sqlobject/tests/test_decimal.py
Modified:
trunk/SQLObject/sqlobject/converters.py
Log:
Added Decimal converter; added tests.
Modified: trunk/SQLObject/sqlobject/converters.py
===================================================================
--- trunk/SQLObject/sqlobject/converters.py 2005-08-22 06:02:19 UTC (rev 934)
+++ trunk/SQLObject/sqlobject/converters.py 2005-08-22 06:31:09 UTC (rev 935)
@@ -43,6 +43,11 @@
from types import InstanceType, ClassType, TypeType
+try:
+ from decimal import Decimal
+except ImportError:
+ Decimal = None
+
########################################
## Quoting
########################################
@@ -191,6 +196,12 @@
registerConverter(datetime.date, DateConverter)
+if Decimal:
+ def DecimalConverter(value, db):
+ return value.to_eng_string()
+
+ registerConverter(Decimal, DecimalConverter)
+
def sqlrepr(obj, db=None):
try:
reprFunc = obj.__sqlrepr__
@@ -202,4 +213,3 @@
return converter(obj, db)
else:
return reprFunc(db)
-
Added: trunk/SQLObject/sqlobject/tests/test_decimal.py
===================================================================
--- trunk/SQLObject/sqlobject/tests/test_decimal.py 2005-08-22 06:02:19 UTC (rev 934)
+++ trunk/SQLObject/sqlobject/tests/test_decimal.py 2005-08-22 06:31:09 UTC (rev 935)
@@ -0,0 +1,28 @@
+from sqlobject import *
+from sqlobject.tests.dbtest import *
+
+try:
+ from decimal import Decimal
+except ImportError:
+ Decimal = None
+
+########################################
+## Deciaml columns
+########################################
+
+class DecimalTable(SQLObject):
+ col1 = DecimalCol(size=6, precision=4)
+
+def test_1decimal():
+ setupClass(DecimalTable)
+ d = DecimalTable(col1=21.12)
+ assert d.col1 == 21.12
+
+if Decimal:
+ def test_2Decimal():
+ setupClass(DecimalTable)
+ d = DecimalTable(col1=Decimal("21.12"))
+ if isinstance(d.col1, Decimal):
+ assert d.col1 == 21.12
+ else:
+ assert d.col1 == Decimal("21.12")
|