Author: phd
Date: 2006-01-11 16:57:28 +0000 (Wed, 11 Jan 2006)
New Revision: 1483
Modified:
SQLObject/trunk/sqlobject/converters.py
SQLObject/trunk/sqlobject/tests/test_converters.py
Log:
Applied the patch N 1386249 - datetime.strftime() cannot handle dates before 1900.
Modified: SQLObject/trunk/sqlobject/converters.py
===================================================================
--- SQLObject/trunk/sqlobject/converters.py 2006-01-11 16:57:07 UTC (rev 1482)
+++ SQLObject/trunk/sqlobject/converters.py 2006-01-11 16:57:28 UTC (rev 1483)
@@ -189,20 +189,22 @@
if datetime:
def DateTimeConverter(value, db):
- return value.strftime("'%Y-%m-%d %H:%M:%S'")
+ return "'%4d-%02d-%02d %02d:%02d:%02d'" % (
+ value.year, value.month, value.day,
+ value.hour, value.minute, value.second)
registerConverter(datetime.datetime, DateTimeConverter)
+ def DateConverter(value, db):
+ return "'%4d-%02d-%02d'" % (value.year, value.month, value.day)
+
+ registerConverter(datetime.date, DateConverter)
+
def TimeConverter(value, db):
- return value.strftime("'%H:%M:%S'")
+ return "'%02d:%02d:%02d'" % (value.hour, value.minute, value.second)
registerConverter(datetime.time, TimeConverter)
- def DateConverter(value, db):
- return value.strftime("'%Y-%m-%d'")
-
- registerConverter(datetime.date, DateConverter)
-
if Decimal:
def DecimalConverter(value, db):
return value.to_eng_string()
Modified: SQLObject/trunk/sqlobject/tests/test_converters.py
===================================================================
--- SQLObject/trunk/sqlobject/tests/test_converters.py 2006-01-11 16:57:07 UTC (rev 1482)
+++ SQLObject/trunk/sqlobject/tests/test_converters.py 2006-01-11 16:57:28 UTC (rev 1483)
@@ -82,6 +82,15 @@
assert sqlrepr(TRUE, 'mysql') == "1"
assert sqlrepr(FALSE, 'mysql') == "0"
+def test_datetime():
+ from datetime import datetime, date, time
+ assert sqlrepr(datetime(2005, 7, 14, 13, 31, 2)) == "'2005-07-14 13:31:02'"
+ assert sqlrepr(date(2005, 7, 14)) == "'2005-07-14'"
+ assert sqlrepr(time(13, 31, 2)) == "'13:31:02'"
+ # now dates before 1900
+ assert sqlrepr(datetime(1428, 7, 14, 13, 31, 2)) == "'1428-07-14 13:31:02'"
+ assert sqlrepr(date(1428, 7, 14)) == "'1428-07-14'"
+
def test_instance():
instance = TestClass()
assert sqlrepr(instance) == repr(instance)
|