[SQL-CVS] r935 - in trunk/SQLObject/sqlobject: . tests
SQLObject is a Python ORM.
Brought to you by:
ianbicking,
phd
From: <sub...@co...> - 2005-08-22 06:31:17
|
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") |