From 1439f4c8f65ed6e75ad0ae306b49560b12d350b6 Mon Sep 17 00:00:00 2001 From: Ricter Zheng Date: Wed, 27 Apr 2022 15:03:58 +0800 Subject: add set_allow_interactive_authorization / get_allow_interactive_authorization for message add unit tests --- dbus_bindings/message.c | 28 ++++++++++++++++++++++++++++ test/test-client.py | 6 ++++++ 2 files changed, 34 insertions(+) diff --git a/dbus_bindings/message.c b/dbus_bindings/message.c index 4ebd59b..5162c11 100644 --- a/dbus_bindings/message.c +++ b/dbus_bindings/message.c @@ -358,6 +358,30 @@ Message_set_no_reply(Message *self, PyObject *args) Py_RETURN_NONE; } +PyDoc_STRVAR(Message_get_allow_interactive_authorization__doc__, +"message.get_allow_interactive_authorization(bool) -> None\n" +"Get allow interactive authorization flag.\n"); +static PyObject * +Message_get_allow_interactive_authorization(Message *self, PyObject *unused UNUSED) +{ + if (!self->msg) return DBusPy_RaiseUnusableMessage(); + return PyBool_FromLong(dbus_message_get_allow_interactive_authorization(self->msg)); +} + + +PyDoc_STRVAR(Message_set_allow_interactive_authorization__doc__, +"message.set_allow_interactive_authorization(bool) -> None\n" +"Set allow interactive authorization flag to this message.\n"); +static PyObject * +Message_set_allow_interactive_authorization(Message *self, PyObject *args) +{ + int value; + if (!PyArg_ParseTuple(args, "i", &value)) return NULL; + if (!self->msg) return DBusPy_RaiseUnusableMessage(); + dbus_message_set_allow_interactive_authorization(self->msg, value ? TRUE : FALSE); + Py_RETURN_NONE; +} + PyDoc_STRVAR(Message_get_reply_serial__doc__, "message.get_reply_serial() -> long\n" "Returns the serial that the message is a reply to or 0 if none.\n"); @@ -837,6 +861,10 @@ static PyMethodDef Message_tp_methods[] = { METH_NOARGS, Message_get_no_reply__doc__}, {"set_no_reply", (PyCFunction) (void (*)(void))Message_set_no_reply, METH_VARARGS, Message_set_no_reply__doc__}, + {"get_allow_interactive_authorization", (PyCFunction) (void (*)(void))Message_get_allow_interactive_authorization, + METH_NOARGS, Message_get_allow_interactive_authorization__doc__}, + {"set_allow_interactive_authorization", (PyCFunction) (void (*)(void))Message_set_allow_interactive_authorization, + METH_VARARGS, Message_set_allow_interactive_authorization__doc__}, {"get_reply_serial", (PyCFunction) (void (*)(void))Message_get_reply_serial, METH_NOARGS, Message_get_reply_serial__doc__}, {"set_reply_serial", (PyCFunction) (void (*)(void))Message_set_reply_serial, diff --git a/test/test-client.py b/test/test-client.py index 916ad4f..3b1114d 100755 --- a/test/test-client.py +++ b/test/test-client.py @@ -180,6 +180,12 @@ class TestDBusBindings(unittest.TestCase): print("Delta: %f" % (b - a)) self.assertTrue(True) + def testAllowInteractiveAuthorization(self): + message = dbus.lowlevel.MethodCallMessage(NAME, OBJECT, IFACE, 'TestAllowInteractiveAuthorization') + assert not message.get_allow_interactive_authorization() + message.set_allow_interactive_authorization(True) + assert message.get_allow_interactive_authorization() + def testNoReply(self): failures = [] report = [] -- cgit v1.2.3