diff options
| -rw-r--r-- | ChangeLog | 11 | ||||
| -rw-r--r-- | python/dbus_bindings.pyx | 8 | ||||
| -rw-r--r-- | python/service.py | 5 | ||||
| -rwxr-xr-x | test/python/test-client.py | 5 | 
4 files changed, 23 insertions, 6 deletions
@@ -1,3 +1,14 @@ +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: diff --git a/python/dbus_bindings.pyx b/python/dbus_bindings.pyx index 8b1b221b..21adc87a 100644 --- a/python/dbus_bindings.pyx +++ b/python/dbus_bindings.pyx @@ -1053,7 +1053,10 @@ cdef class MessageIter:              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: @@ -1748,8 +1751,9 @@ def bus_register(Connection connection):      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 diff --git a/python/service.py b/python/service.py index e5a7002b..ad36e4f5 100644 --- a/python/service.py +++ b/python/service.py @@ -27,8 +27,9 @@ class BusName(object):          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) diff --git a/test/python/test-client.py b/test/python/test-client.py index e972f446..23000400 100755 --- a/test/python/test-client.py +++ b/test/python/test-client.py @@ -227,8 +227,9 @@ class TestDBusBindings(unittest.TestCase):          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)]  | 
