+2005-11-27 Robert McQueen <robot101@debian.org>
+
+ * python/dbus_bindings.pyx: Fix a bug where doing a strict append
+ with type v of an instance of dbus.Variant(foo, type='x') caused
+ it to be boxed twice before sending over the bus.
+
+ * python/dbus_bindings.pyx, python/service.py,
+ test/python/test-client.py: Update the constants for the new
+ request_name flags, and update comments/test cases now that queueing
+ is the default action.
+
2005-11-22 John (J5) Palmieri <johnp@redhat.com>
* configure.in:
tmp_sig = sig[1:-1]
retval = self.append_struct(value, signature = tmp_sig)
elif sig_type == TYPE_VARIANT:
- retval = self.append_variant(Variant(value))
+ if isinstance(value, Variant):
+ retval = self.append_variant(value)
+ else:
+ retval = self.append_variant(Variant(value))
elif sig_type == DICT_ENTRY_BEGIN:
raise TypeError, "Signiture is invalid in append_strict. A dict entry must be part of an array."
else:
return retval
-NAME_FLAG_PROHIBIT_REPLACEMENT = 0x1
+NAME_FLAG_ALLOW_REPLACEMENT = 0x1
NAME_FLAG_REPLACE_EXISTING = 0x2
+NAME_FLAG_DO_NOT_QUEUE = 0x4
REQUEST_NAME_REPLY_PRIMARY_OWNER = 1
REQUEST_NAME_REPLY_IN_QUEUE = 2
if retval == dbus_bindings.REQUEST_NAME_REPLY_PRIMARY_OWNER:
pass
elif retval == dbus_bindings.REQUEST_NAME_REPLY_IN_QUEUE:
- # you can't arrive at this state via the high-level bindings
- # because you can't put flags in, but... who knows?
+ # queueing can happen by default, maybe we should
+ # track this better or let the user know if they're
+ # queued or not?
pass
elif retval == dbus_bindings.REQUEST_NAME_REPLY_EXISTS:
raise NameExistsException(name)
print '\n******** Testing BusName creation ********'
test = [('org.freedesktop.DBus.Python.TestName', True),
('org.freedesktop.DBus.Python.TestName', True),
- ('org.freedesktop.DBus.Python.InvalidName&^*%$', False),
- ('org.freedesktop.DBus.TestSuitePythonService', False)]
+ ('org.freedesktop.DBus.Python.InvalidName&^*%$', False)]
+ # Do some more intelligent handling/testing of queueing vs success?
+ # ('org.freedesktop.DBus.TestSuitePythonService', False)]
# For some reason this actually succeeds
# ('org.freedesktop.DBus', False)]