#!/usr/bin/env python # not a full regression suite for pyzeroconf, this just validates our usage of it import unittest import socket import threading import Zeroconf class MyListener(object): def __init__(self): self.event = threading.Event() def removeService(self, server, type, name): print "Service", repr(name), "removed" def addService(self, server, type, name): print "Service", repr(name), "added" # Request more information about the service info = server.getServiceInfo(type, name) print 'Additional info:', info self.event.set() class Test(unittest.TestCase): def setUp(self): self.zeroconf = Zeroconf.Zeroconf() def tearDown(self): self.zeroconf.close() pass def testBasic(self): listener = MyListener() browser = Zeroconf.ServiceBrowser(self.zeroconf, "_gf4d._tcp.local.", listener) # Get local IP address localhost = socket.gethostbyname(socket.gethostname()) local_ip = socket.inet_aton(localhost) print localhost, local_ip svc1 = Zeroconf.ServiceInfo('_gf4d._tcp.local.', 'Test Service._gf4d._tcp.local.', address = local_ip, port = 3375, weight = 0, priority=0, properties = {'version': '2.10'} ) self.zeroconf.registerService(svc1) self.zeroconf.wait(10000) def suite(): return unittest.makeSuite(Test,'test') if __name__ == '__main__': unittest.main(defaultTest='suite')