def test_gotRemoteRoot(self): """ Should add remote to builder and observers, add self to remote builders and observers, start static info fetching. """ hub = Hub() remote = FakeRemoteHub('foo') called = [] def makeFake(name): def f(*args): called.append((name, args)) return f hub.addBuilder = makeFake('addB') hub.addObserver = makeFake('addO') remote.addBuilder = makeFake('r_addB') remote.addObserver = makeFake('r_addO') remote.getStaticInfo = makeFake('r_getStaticInfo') hub.gotRemoteRoot(remote) self.assertEqual(set(called), set([ ('addB', (remote,)), ('addO', (remote,)), ('r_addB', (hub,)), ('r_addO', (hub,)), ('r_getStaticInfo', ()), ])) self.assertEqual(remote.hub, hub)
def test_remote_addObserver(self): """ Should wrap the remote and call addObserver """ h = Hub() h.remoteHubFactory = FakeRemoteHub called = [] h.addObserver = called.append h.remote_addObserver('foo') self.assertEqual(len(called), 1) observer = called[0] self.assertTrue(isinstance(observer, FakeRemoteHub)) self.assertEqual(observer.original, 'foo') self.assertEqual(observer.hub, h)