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/.
This commit is contained in:
Robert McQueen 2005-10-29 22:04:01 +00:00
parent 20bcbaf21f
commit 6fbd1c7ff5
7 changed files with 30 additions and 128 deletions

View file

@ -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

View 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:

View 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()

View 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()

View 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()

View file

@ -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)

View file

@ -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()