mirror of
https://gitlab.freedesktop.org/dbus/dbus.git
synced 2026-06-09 06:58:21 +02:00
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:
parent
20bcbaf21f
commit
6fbd1c7ff5
7 changed files with 30 additions and 128 deletions
15
ChangeLog
15
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
|
||||
|
|
|
|||
|
|
@ -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:
|
||||
|
|
|
|||
|
|
@ -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()
|
||||
|
|
|
|||
|
|
@ -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()
|
||||
|
|
|
|||
|
|
@ -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()
|
||||
|
|
|
|||
|
|
@ -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)
|
||||
|
|
@ -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()
|
||||
Loading…
Add table
Reference in a new issue