summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRicter Zheng <ricterzheng@gmail.com>2022-04-27 15:03:58 +0800
committerRicter Zheng <ricterzheng@gmail.com>2022-04-27 15:21:41 +0800
commit1439f4c8f65ed6e75ad0ae306b49560b12d350b6 (patch)
tree71727a8fc20ed3ecd37341ebc0c353188b1733f7
parent012f0e3adbe3bebf73d983b3a0a8eb8138e06548 (diff)
downloaddbus-python-1439f4c8f65ed6e75ad0ae306b49560b12d350b6.tar.gz
add set_allow_interactive_authorization / get_allow_interactive_authorization for message
add unit tests
-rw-r--r--dbus_bindings/message.c28
-rwxr-xr-xtest/test-client.py6
2 files changed, 34 insertions, 0 deletions
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 = []