2005-10-29 Robert McQueen <robot101@debian.org>
authorRobert McQueen <robot101@debian.org>
Sat, 29 Oct 2005 22:04:01 +0000 (22:04 +0000)
committerRobert McQueen <robot101@debian.org>
Sat, 29 Oct 2005 22:04:01 +0000 (22:04 +0000)
        * python/dbus_bindings.pyx: Tweak 'raise AssertionError' to assert().
        Add checking for the end of struct character when marshalling a
        struct in MessageIter.append_strict.

        * python/examples/example-service.py,
        python/examples/gconf-proxy-service.py,
        python/examples/gconf-proxy-service2.py: Update to use gobject
        mainloop directly rather than appearing to depend on gtk.

        * python/test/test-client.py, python/test/test-server.py: Remove
        obsolete and broken test scripts for old bindings. We have up to date
        and working tests in test/python/.

ChangeLog
python/dbus_bindings.pyx
python/examples/example-service.py
python/examples/gconf-proxy-service.py
python/examples/gconf-proxy-service2.py
python/tests/test-client.py [deleted file]
python/tests/test-server.py [deleted file]

index 128a78e2856b292bd4a880493728b6dcc94f7d25..d03d051fd5828eaa03d984efe981a8a334a5df61 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,18 @@
+2005-10-29  Robert McQueen  <robot101@debian.org>
+
+       * python/dbus_bindings.pyx: Tweak 'raise AssertionError' to assert().
+       Add checking for the end of struct character when marshalling a
+       struct in MessageIter.append_strict.
+
+       * python/examples/example-service.py,
+       python/examples/gconf-proxy-service.py,
+       python/examples/gconf-proxy-service2.py: Update to use gobject
+       mainloop directly rather than appearing to depend on gtk.
+
+       * python/test/test-client.py, python/test/test-server.py: Remove
+       obsolete and broken test scripts for old bindings. We have up to date
+       and working tests in test/python/.
+
 2005-10-29  Robert McQueen  <robot101@debian.org>
 
        * python/decorators.py: Add optional arguments to the method and
index fe6e7777e7e9c77783021eeedabdd0b10e732446..c693a3d06d3a799d8661417bd1ef96220283011a 100644 (file)
@@ -457,13 +457,12 @@ cdef class Connection:
             dbus_error_free (&error)
             raise DBusException, errormsg
 
-        if retval == NULL:
-            raise AssertionError
-        
+        assert(retval != NULL)
+
         m = EmptyMessage()
         m._set_msg(retval)
 
-        return m 
+        return m
 
     def set_watch_functions(self, add_function, remove_function, data):
         pass
@@ -1048,6 +1047,9 @@ cdef class MessageIter:
         elif sig_type == TYPE_OBJECT_PATH:
             retval = self.append_object_path(value)
         elif sig_type == STRUCT_BEGIN:
+            if ord(sig[-1]) != STRUCT_END:
+                raise TypeError, "Invalid struct entry in append_strict. No termination in signature %s." % (sig)
+
             tmp_sig = sig[1:-1]
             retval = self.append_struct(value, signature = tmp_sig)
         elif sig_type == TYPE_VARIANT:
index ce871a1f106299f2cbe6bcf1b27ab33a64893e43..cb25d2035685dd4e71d72cfc5d93361136a7c551 100644 (file)
@@ -3,8 +3,7 @@
 import dbus
 import dbus.service
 import dbus.glib
-import pygtk
-import gtk
+import gobject
 
 class SomeObject(dbus.service.Object):
     def __init__(self, bus_name, object_path="/SomeObject"):
@@ -27,4 +26,5 @@ session_bus = dbus.SessionBus()
 name = dbus.service.BusName("org.designfu.SampleService", bus=session_bus)
 object = SomeObject(name)
 
-gtk.main()
+mainloop = gobject.MainLoop()
+mainloop.run()
index b9bdef1481a2d8454cb071e543521a35c21ee885..a899cf21549e75ba682140b5d26a03d2dbc60440 100644 (file)
@@ -2,7 +2,7 @@
 #FIXME: Doesn't work with the new bindings
 import dbus
 
-import gtk
+import gobject
 import gconf
 
 class GConfService(dbus.Service):
@@ -39,4 +39,5 @@ gconf_service = GConfService()
 print ("GConf Proxy service started.")
 print ("Run 'gconf-proxy-client.py' to fetch a GConf key through the proxy...")
 
-gtk.main()
+mainloop = gobject.MainLoop()
+mainloop.run()
index ba8d249babefe45b9fd2599bb1f65ff8d919d93d..5731ab287d8aa4820f7bb070443fab19f528fb63 100644 (file)
@@ -2,7 +2,7 @@
 #FIXME: doesn't work with the new bindings
 import dbus
 
-import gtk
+import gobject
 import gconf
 
 class GConfService(dbus.Service):
@@ -35,4 +35,5 @@ gconf_service = GConfService()
 print ("GConf Proxy service started.")
 print ("Run 'gconf-proxy-client.py' to fetch a GConf key through the proxy...")
 
-gtk.main()
+mainloop = gobject.MainLoop()
+mainloop.run()
diff --git a/python/tests/test-client.py b/python/tests/test-client.py
deleted file mode 100644 (file)
index 5dc6e20..0000000
+++ /dev/null
@@ -1,100 +0,0 @@
-import dbus
-
-def ensure_same(expected, received):
-    if type(received) != type(expected):
-        raise Exception ("Sending %s, expected echo of type %s, but got %s" % (expected, type(expected), type(received)))
-
-    if received.__class__ != expected.__class__:
-        raise Exception ("Sending %s, expected echo to be of class %s, but got %s" % (expected, expected.__class__, received.__class__))
-
-    if received != expected:
-        raise Exception("Sending %s, expected echo to be the same, but was %s" % (expected, received))
-
-def TestEcho(value):
-    global remote_object
-    echoed = remote_object.Echo(value)
-    ensure_same(value, echoed)
-
-def TestEchoList(sent_list):
-    assert(type(sent_list) == list)
-
-    global remote_object
-
-    reply_list = remote_object.Echo(sent_list)
-
-    if type(reply_list) != list:
-        raise Exception ("Sending list %s, expected echo to be a list, but it was %s" % (sent_list, type(reply_list)))
-
-    if len(reply_list) != len(sent_list):
-        raise Exception ("Sending list %s, expected echo of length %d, but length was %d" % (len(sent_list), len(reply_list)))
-
-    for i in range(len(sent_list)):
-        ensure_same(sent_list[i], reply_list[i])
-
-def TestEchoDict(sent_dict):
-    assert(type(sent_dict) == dict)
-
-    global remote_object
-    
-    reply_dict = remote_object.Echo(sent_dict)
-
-
-    assert(type(reply_dict) == dict)
-
-    assert(len(reply_dict) == len(sent_dict))
-
-    for key in sent_dict.keys():
-        ensure_same(reply_dict[key], sent_dict[key])
-    
-session_bus = dbus.SessionBus()
-
-remote_service = session_bus.get_service("org.designfu.Test")
-remote_object = remote_service.get_object("/TestObject", "org.designfu.Test")
-
-TestEcho(chr(120))
-TestEcho(10)
-TestEcho(39.5)
-TestEcho("HelloWorld")
-TestEcho(dbus.ObjectPath("/test/path"))
-TestEcho(dbus.ByteArray("blahblahblah"))
-
-string_list = []
-for i in range(200):
-    string_list.append("List item " + str(i))
-TestEchoList(string_list)
-
-int_list = range(200)
-TestEchoList(int_list)
-
-path_list = []
-for i in range(200):
-    path_list.append(dbus.ObjectPath("/some/object/path" + str(i)))
-TestEchoList(path_list)
-
-double_list = []
-for i in range(200):
-    double_list.append(float(i) / 1000)
-TestEchoList(double_list)
-
-#FIXME: this currently fails!
-#empty_list = []
-#TestEchoList(empty_list)
-
-string_to_int_dict = {}
-for i in range(200):
-    string_to_int_dict["key" + str(i)] = i
-TestEchoDict(string_to_int_dict)
-
-string_to_double_dict = {}
-for i in range(200):
-    string_to_double_dict["key" + str(i)] = float(i) / 1000
-TestEchoDict(string_to_double_dict)
-
-string_to_string_dict = {}
-for i in range(200):
-    string_to_string_dict["key" + str(i)] = "value" + str(i)
-TestEchoDict(string_to_string_dict)
-
-#FIXME: this currently crashes dbus in c code
-#empty_dict = {}
-#TestEchoDict(empty_dict)
diff --git a/python/tests/test-server.py b/python/tests/test-server.py
deleted file mode 100644 (file)
index 235da70..0000000
+++ /dev/null
@@ -1,17 +0,0 @@
-import dbus
-import gtk
-
-class TestObject(dbus.Object):
-    def __init__(self, service):
-        method_list = [ self.Echo ]
-        dbus.Object.__init__(self, "/TestObject", service, method_list)
-
-    def Echo(self, variable):
-        return variable
-            
-session_bus = dbus.SessionBus()
-
-local_service = dbus.Service("org.designfu.Test", bus=session_bus)
-local_object = TestObject(local_service)
-
-gtk.main()