diff options
author | Victor Stinner <victor.stinner@gmail.com> | 2015-03-27 16:12:45 (GMT) |
---|---|---|
committer | Victor Stinner <victor.stinner@gmail.com> | 2015-03-27 16:12:45 (GMT) |
commit | 992c43fec900e204deffc026318b97ab0f83eff6 (patch) | |
tree | 17cb58a91cb6a44d7d53124d9e84a7ba535dca6e /Modules/_testcapimodule.c | |
parent | 79644f9c83b3cd992c16c6e1bd6c7a5fd49f24c0 (diff) | |
download | cpython-992c43fec900e204deffc026318b97ab0f83eff6.zip cpython-992c43fec900e204deffc026318b97ab0f83eff6.tar.gz cpython-992c43fec900e204deffc026318b97ab0f83eff6.tar.bz2 |
Issue #22117: Fix rounding in _PyTime_FromSecondsObject()
* Rename _PyTime_FromObject() to _PyTime_FromSecondsObject()
* Add _PyTime_AsNanosecondsObject() and _testcapi.pytime_fromsecondsobject()
* Add unit tests
Diffstat (limited to 'Modules/_testcapimodule.c')
-rw-r--r-- | Modules/_testcapimodule.c | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/Modules/_testcapimodule.c b/Modules/_testcapimodule.c index b8e1dbc..ec513bc 100644 --- a/Modules/_testcapimodule.c +++ b/Modules/_testcapimodule.c @@ -3378,6 +3378,22 @@ return_result_with_error(PyObject *self, PyObject *args) Py_RETURN_NONE; } +static PyObject * +test_pytime_fromsecondsobject(PyObject *self, PyObject *args) +{ + PyObject *obj; + int round; + _PyTime_t ts; + + if (!PyArg_ParseTuple(args, "Oi", &obj, &round)) + return NULL; + if (check_time_rounding(round) < 0) + return NULL; + if (_PyTime_FromSecondsObject(&ts, obj, round) == -1) + return NULL; + return _PyTime_AsNanosecondsObject(ts); +} + static PyMethodDef TestMethods[] = { {"raise_exception", raise_exception, METH_VARARGS}, @@ -3541,6 +3557,7 @@ static PyMethodDef TestMethods[] = { return_null_without_error, METH_NOARGS}, {"return_result_with_error", return_result_with_error, METH_NOARGS}, + {"pytime_fromsecondsobject", test_pytime_fromsecondsobject, METH_VARARGS}, {NULL, NULL} /* sentinel */ }; |