From 001e4a6c073b6b811cb4de6a0275494c057a6b8b Mon Sep 17 00:00:00 2001 From: Benjamin Peterson Date: Sun, 13 Dec 2009 21:27:53 +0000 Subject: add a test of loading the datetime capi --- Modules/_testcapimodule.c | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/Modules/_testcapimodule.c b/Modules/_testcapimodule.c index f2181eb..c5c2c6b 100644 --- a/Modules/_testcapimodule.c +++ b/Modules/_testcapimodule.c @@ -8,6 +8,7 @@ #include "Python.h" #include #include "structmember.h" +#include "datetime.h" #ifdef WITH_THREAD #include "pythread.h" @@ -806,6 +807,20 @@ raise_exception(PyObject *self, PyObject *args) #ifdef WITH_THREAD +static PyObject * +test_datetime_capi(PyObject *self, PyObject *args) { + if (PyDateTimeAPI) { + PyErr_SetString(PyExc_AssertionError, + "PyDateTime_CAPI somehow initialized"); + return NULL; + } + PyDateTime_IMPORT; + if (PyDateTimeAPI) + Py_RETURN_NONE; + else + return NULL; +} + /* test_thread_state spawns a thread of its own, and that thread releases * `thread_done` when it's finished. The driver code has to know when the * thread finishes, because the thread uses a PyObject (the callable) that @@ -1012,6 +1027,7 @@ code_newempty(PyObject *self, PyObject *args) static PyMethodDef TestMethods[] = { {"raise_exception", raise_exception, METH_VARARGS}, {"test_config", (PyCFunction)test_config, METH_NOARGS}, + {"test_datetime_capi", test_datetime_capi, METH_NOARGS}, {"test_list_api", (PyCFunction)test_list_api, METH_NOARGS}, {"test_dict_iteration", (PyCFunction)test_dict_iteration,METH_NOARGS}, {"test_lazy_hash_inheritance", (PyCFunction)test_lazy_hash_inheritance,METH_NOARGS}, -- cgit v0.12