[Telepathy-commits] [telepathy-salut/master] Add some avahi testing utilities
Sjoerd Simons
sjoerd.simons at collabora.co.uk
Mon Sep 1 10:39:31 PDT 2008
---
tests/twisted/avahitest.py | 53 ++++++++++++++++++++++++++++++++++++++++++++
1 files changed, 53 insertions(+), 0 deletions(-)
create mode 100644 tests/twisted/avahitest.py
diff --git a/tests/twisted/avahitest.py b/tests/twisted/avahitest.py
new file mode 100644
index 0000000..aa7041c
--- /dev/null
+++ b/tests/twisted/avahitest.py
@@ -0,0 +1,53 @@
+"""
+Infrastructure for testing avahi
+"""
+
+import servicetest
+from servicetest import Event
+import dbus
+import dbus.glib
+import avahi
+
+def get_host_name():
+ bus = dbus.SystemBus()
+ server = dbus.Interface(bus.get_object(avahi.DBUS_NAME,
+ avahi.DBUS_PATH_SERVER), avahi.DBUS_INTERFACE_SERVER)
+ return server.GetHostName()
+
+class AvahiListener:
+ def __init__(self, event_queue):
+ self.event_queue = event_queue
+
+ self.bus = dbus.SystemBus()
+
+ self.server = dbus.Interface(self.bus.get_object(avahi.DBUS_NAME,
+ avahi.DBUS_PATH_SERVER), avahi.DBUS_INTERFACE_SERVER)
+ self.browsers = []
+
+ def _service_added_cb(self, interface, protocol, name, stype, domain,
+ flags):
+
+ e = Event ('service-added',
+ interface=interface, protocol=protocol, name=name, stype=stype,
+ domain=domain, flags=flags)
+ self.event_queue.append(e)
+
+ def _service_removed_cb(self, interface, protocol, name, stype, domain,
+ flags):
+
+ e = Event ('service-removed',
+ interface=interface, protocol=protocol, name=name, stype=stype,
+ domain=domain, flags=flags)
+ self.event_queue.append(e)
+
+ def listen_for_service(self, sname):
+ browser_path = self.server.ServiceBrowserNew(avahi.IF_UNSPEC,
+ avahi.PROTO_UNSPEC, sname, "local", dbus.UInt32(0));
+ browser_obj = self.bus.get_object(avahi.DBUS_NAME, browser_path)
+ browser = dbus.Interface(browser_obj,
+ avahi.DBUS_INTERFACE_SERVICE_BROWSER)
+
+ browser.connect_to_signal('ItemNew', self._service_added_cb)
+ browser.connect_to_signal('ItemRemoved', self._service_removed_cb)
+
+ self.browsers.append(browser)
--
1.5.6.3
More information about the Telepathy-commits
mailing list