blob: 1bcd24d5d03ec7b1fdcdb893c78bb305b008eb45 [file] [log] [blame]
Ed Tanousc9b55212017-06-12 13:25:51 -07001# Copyright (c) Benjamin Kietzman (github.com/bkietz)
2#
3# Distributed under the Boost Software License, Version 1.0. (See accompanying
4# file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
5
6import unittest
7import dbus
8from dbus.mainloop.glib import DBusGMainLoop
9from gobject import MainLoop
10from socket import gethostname
11
12class AvahiTest(unittest.TestCase):
13
14 @classmethod
15 def setUpClass(c):
16 c.system_bus = dbus.SystemBus(mainloop=DBusGMainLoop())
17
18 def setUp(self):
19 None
20
21 def testAvahi(self):
22 # Connect to Avahi Daemon's interface:
23 avahi_remote = AvahiTest.system_bus.get_object('org.freedesktop.Avahi', '/')
24 avahi = dbus.Interface(avahi_remote, 'org.freedesktop.Avahi.Server')
25 self.assertEqual(gethostname(), avahi.GetHostName())
26
27 # Use the Avahi Daemon to produce a new
28 # ServiceBrowser and connect to its interface:
29 browser_path = avahi.ServiceBrowserNew(-1, -1, "_http._tcp", "local", dbus.UInt32(0))
30 browser_remote = AvahiTest.system_bus.get_object('org.freedesktop.Avahi', browser_path)
31
32 browser = dbus.Interface(browser_remote, 'org.freedesktop.Avahi.ServiceBrowser')
33
34 # Connect to the ItemNew signal from the browser:
35 def new_item_handler(interface, protocol, instance_name, instance_type, domain, flags):
36 print "Found service '%s'" % instance_name
37
38 browser.connect_to_signal("ItemNew", new_item_handler)
39
40if __name__ == '__main__':
41 unittest.main()
42 MainLoop().run()