[pypy-svn] r75170 - in pypy/trunk/pypy/module/cpyext: . test
afa at codespeak.net
afa at codespeak.net
Mon Jun 7 13:30:57 CEST 2010
Author: afa
Date: Mon Jun 7 13:30:56 2010
New Revision: 75170
Modified:
pypy/trunk/pypy/module/cpyext/datetime.py
pypy/trunk/pypy/module/cpyext/stubs.py
pypy/trunk/pypy/module/cpyext/test/test_datetime.py
Log:
PyDateTime_FromTimestamp, PyDate_FromTimestamp
Modified: pypy/trunk/pypy/module/cpyext/datetime.py
==============================================================================
--- pypy/trunk/pypy/module/cpyext/datetime.py (original)
+++ pypy/trunk/pypy/module/cpyext/datetime.py Mon Jun 7 13:30:56 2010
@@ -79,6 +79,26 @@
space.wrap(usecond))
raise NotImplementedError
+ at cpython_api([PyObject], PyObject)
+def PyDateTime_FromTimestamp(space, w_args):
+ """Create and return a new datetime.datetime object given an argument tuple
+ suitable for passing to datetime.datetime.fromtimestamp().
+ """
+ w_datetime = PyImport_Import(space, space.wrap("datetime"))
+ w_type = space.getattr(w_datetime, space.wrap("datetime"))
+ w_method = space.getattr(w_type, space.wrap("fromtimestamp"))
+ return space.call(w_method, w_args)
+
+ at cpython_api([PyObject], PyObject)
+def PyDate_FromTimestamp(space, w_args):
+ """Create and return a new datetime.date object given an argument tuple
+ suitable for passing to datetime.date.fromtimestamp().
+ """
+ w_datetime = PyImport_Import(space, space.wrap("datetime"))
+ w_type = space.getattr(w_datetime, space.wrap("date"))
+ w_method = space.getattr(w_type, space.wrap("fromtimestamp"))
+ return space.call(w_method, w_args)
+
@cpython_api([rffi.INT_real, rffi.INT_real, rffi.INT_real], PyObject)
def PyDelta_FromDSU(space, days, seconds, useconds):
"""Return a datetime.timedelta object representing the given number of days,
Modified: pypy/trunk/pypy/module/cpyext/stubs.py
==============================================================================
--- pypy/trunk/pypy/module/cpyext/stubs.py (original)
+++ pypy/trunk/pypy/module/cpyext/stubs.py Mon Jun 7 13:30:56 2010
@@ -587,20 +587,6 @@
"""
raise NotImplementedError
- at cpython_api([PyObject], PyObject)
-def PyDateTime_FromTimestamp(space, args):
- """Create and return a new datetime.datetime object given an argument tuple
- suitable for passing to datetime.datetime.fromtimestamp().
- """
- raise NotImplementedError
-
- at cpython_api([PyObject], PyObject)
-def PyDate_FromTimestamp(space, args):
- """Create and return a new datetime.date object given an argument tuple
- suitable for passing to datetime.date.fromtimestamp().
- """
- raise NotImplementedError
-
@cpython_api([PyTypeObjectPtr, PyGetSetDef], PyObject)
def PyDescr_NewGetSet(space, type, getset):
raise NotImplementedError
Modified: pypy/trunk/pypy/module/cpyext/test/test_datetime.py
==============================================================================
--- pypy/trunk/pypy/module/cpyext/test/test_datetime.py (original)
+++ pypy/trunk/pypy/module/cpyext/test/test_datetime.py Mon Jun 7 13:30:56 2010
@@ -1,5 +1,6 @@
from pypy.module.cpyext.test.test_cpyext import AppTestCpythonExtensionBase
from pypy.module.cpyext.test.test_api import BaseApiTest
+import datetime
class TestDatetime(BaseApiTest):
def test_date(self, space, api):
@@ -61,3 +62,13 @@
w_delta = api.PyDelta_FromDSU(10, 20, 30)
assert api.PyDelta_Check(w_delta)
assert api.PyDelta_CheckExact(w_delta)
+
+ def test_fromtimestamp(self, space, api):
+ w_args = space.wrap((0,))
+ w_date = api.PyDate_FromTimestamp(w_args)
+ assert space.unwrap(space.str(w_date)) == '1970-01-01'
+
+ w_args = space.wrap((0,))
+ w_date = api.PyDateTime_FromTimestamp(w_args)
+ date = datetime.datetime.fromtimestamp(0)
+ assert space.unwrap(space.str(w_date)) == str(date)
More information about the Pypy-commit
mailing list