diff --git a/_pylibmcmodule.c b/_pylibmcmodule.c index f92318c..23ca112 100644 --- a/_pylibmcmodule.c +++ b/_pylibmcmodule.c @@ -40,7 +40,6 @@ #endif -/* {{{ _pylibmc.client implementation */ /* {{{ Type methods */ static PylibMC_Client *PylibMC_ClientType_new(PyTypeObject *type, PyObject *args, PyObject *kwds) { @@ -873,6 +872,15 @@ static PyObject *PylibMC_Client_delete_multi(PylibMC_Client *self, } Py_DECREF(delete); + if (PyList_GET_SIZE(retval) == 0) { + Py_DECREF(retval); + retval = Py_True; + } else { + Py_DECREF(retval); + retval = Py_False; + } + Py_INCREF(retval); + return retval; error: Py_XDECREF(delete); diff --git a/tests.py b/tests.py index 0465957..35a7b56 100644 --- a/tests.py +++ b/tests.py @@ -36,7 +36,7 @@ Multi functionality. >>> c.get_multi("abc").keys() == ["a", "c", "b"] True >>> c.delete_multi("abc") -[] +True >>> c.get_multi("abc").keys() == [] True >>> c.set_multi(dict(zip("abc", "def")), key_prefix="test_") @@ -46,7 +46,7 @@ True >>> c.get("test_a") 'd' >>> c.delete_multi("abc", key_prefix="test_") -[] +True >>> bool(c.get_multi("abc", key_prefix="test_")) False @@ -54,7 +54,7 @@ Zero-key-test-time! >>> c.get_multi([""]) {} >>> c.delete_multi([""]) -[''] +False >>> c.set_multi({"": "hi"}) ['']