dbus/test/python run-test.sh, 1.2, 1.3 test-client.py, 1.4, 1.5 test-service.py, 1.2, 1.3

John Palmieri johnp at freedesktop.org
Fri Oct 14 14:44:02 PDT 2005


Update of /cvs/dbus/dbus/test/python
In directory gabe:/tmp/cvs-serv10698/test/python

Modified Files:
	run-test.sh test-client.py test-service.py 
Log Message:
* python/dbus_bindings.pyx (MessageIter::append_strict): check for
  STRUCT_BEGIN not TYPE_STRUCT in indicate we are marshalling a struct

* python/service.py (Object::_message_cb): handle exceptions correctly
  by sending them over the wire to the calling app.  This makes sure
  the client returns immediately instead of waiting the 15 seconds to
  timeout.

* test/python/test-client.py (TestDBusBindings::testBenchmarkIntrospect): 
  Add a test to benchmark how long it takes to introspect a service and 
  call a method which returns a large element (pretty fast)

* test/python/test-service.py (TestObject::GetComplexArray): new test 
  method which pushes a lot of data


Index: run-test.sh
===================================================================
RCS file: /cvs/dbus/dbus/test/python/run-test.sh,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -d -r1.2 -r1.3
--- run-test.sh	26 Aug 2005 04:23:33 -0000	1.2
+++ run-test.sh	14 Oct 2005 21:44:00 -0000	1.3
@@ -29,6 +29,10 @@
 
 ln -s $DBUS_TOP_BUILDDIR/python $DBUS_TOP_BUILDDIR/python/dbus
 echo "running test-client.py"
+#uncomment this if you need to see the output from the service for debugging
+#otherwise keep it commented so we can test activation
+#libtool --mode=execute $DEBUG $DBUS_TOP_BUILDDIR/test/python/test-service.py &
+
 libtool --mode=execute $DEBUG $DBUS_TOP_BUILDDIR/test/python/test-client.py || die "test-client.py failed"
 rm $DBUS_TOP_BUILDDIR/python/dbus
 

Index: test-client.py
===================================================================
RCS file: /cvs/dbus/dbus/test/python/test-client.py,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -d -r1.4 -r1.5
--- test-client.py	5 Oct 2005 20:43:46 -0000	1.4
+++ test-client.py	14 Oct 2005 21:44:00 -0000	1.5
@@ -2,6 +2,7 @@
 import sys
 import os
 import unittest
+import time
 
 builddir = os.environ["DBUS_TOP_BUILDDIR"]
 pydir = builddir + "/python"
@@ -29,7 +30,6 @@
                  ([1,2,3],"c", 1.2, ["a","b","c"], {"a": (1,"v"), "b": (2,"d")})
                  ]
 
-
 class TestDBusBindings(unittest.TestCase):
     def setUp(self):
         self.bus = dbus.SessionBus()
@@ -57,7 +57,17 @@
             print "Testing %s"% str(send_val)
             recv_val = self.iface.Echo(send_val)
             self.assertEquals(send_val, recv_val)
-   
+
+    def testBenchmarkIntrospect(self):
+        print "\n********* Benchmark Introspect ************"
+	a = time.time()
+	print a
+        print self.iface.GetComplexArray()
+	b = time.time()
+	print b
+	print "Delta: %f" % (b - a)
+        self.assert_(True)
+
     def testAsyncCalls(self):
         #test sending python types and getting them back async
         print "\n********* Testing Async Calls ***********"

Index: test-service.py
===================================================================
RCS file: /cvs/dbus/dbus/test/python/test-service.py,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -d -r1.2 -r1.3
--- test-service.py	26 Aug 2005 04:23:33 -0000	1.2
+++ test-service.py	14 Oct 2005 21:44:00 -0000	1.3
@@ -16,6 +16,7 @@
 import dbus.service
 import dbus.glib
 import gobject
+import random
 
 class TestObject(dbus.service.Object):
     def __init__(self, bus_name, object_path="/org/freedesktop/DBus/TestSuitePythonObject"):
@@ -27,6 +28,14 @@
     def Echo(self, arg):
         return arg
 
+    @dbus.service.method("org.freedesktop.DBus.TestSuiteInterface")
+    def GetComplexArray(self):
+        ret = []
+        for i in range(0,100):
+            ret.append((random.randint(0,100), random.randint(0,100), str(random.randint(0,100))))
+
+        return dbus.Array(ret, signature="(uus)")
+
 session_bus = dbus.SessionBus()
 name = dbus.service.BusName("org.freedesktop.DBus.TestSuitePythonService", bus=session_bus)
 object = TestObject(name)



More information about the dbus-commit mailing list