I am using python2.5, trac 0.11dev(r7035), XmlRpcPlugin trunk(r3650).
Using following simple script to update due date for a milestone:
import xmlrpclib
testurl = "http://unko:unko@10.0.0.5/proj/test11/login/xmlrpc"
server = xmlrpclib.ServerProxy(testurl)
milestone = server.ticket.milestone.get("testmilestone")
dt = datetime.datetime(1973, 10, 23)
server.ticket.milestone.update("testmilestone", {'due': dt})
Trac fails with following error:
2008-05-11 02:52:02,670 Trac[model] INFO: Updating milestone "testmilestone"
2008-05-11 02:52:02,692 Trac[web_ui] ERROR: unsupported operand type(s) for -: 'instance' and 'datetime.datetime'
2008-05-11 02:52:02,790 Trac[web_ui] ERROR: Traceback (most recent call last):
File "/home/takuzo/debian/trac/xmlrpcplugin/tracrpc/web_ui.py", line 60, in process_request
result = XMLRPCSystem(self.env).get_method(method)(req, args)
File "/home/takuzo/debian/trac/xmlrpcplugin/tracrpc/api.py", line 85, in __call__
result = self.callable(req, *args)
File "/home/takuzo/debian/trac/xmlrpcplugin/tracrpc/ticket.py", line 215, in update
self._updateHelper(name, attributes).update()
File "/usr/lib/python2.5/site-packages/Trac-0.11dev_r7035-py2.5.egg/trac/ticket/model.py", line 692, in update
(self.name, to_timestamp(self.due), to_timestamp(self.completed),
File "/usr/lib/python2.5/site-packages/Trac-0.11dev_r7035-py2.5.egg/trac/util/datefmt.py", line 56, in to_timestamp
return diff.days * 86400 + diff.seconds
TypeError: unsupported operand type(s) for -: 'instance' and 'datetime.datetime'
It is same with ticket.milestone.create.
It seems like xmlrpclib.DateTime? and datetime.datetime can not be
subtracted at to_timestamp() in trac/util/datefmt.py.
Am I doing something wrong?