def test_slave_running(self): py.test.skip("XXX test broken, needs refactoring") def simple_report(event): if not isinstance(event, repevent.ReceivedItemOutcome): return item = event.item if item.code.name == 'funcpass': assert event.outcome.passed else: assert not event.outcome.passed def open_gw(): gw = py.execnet.PopenGateway() gw.host = HostInfo("localhost") gw.host.gw = gw config = py.test.config._reparse([tmpdir]) channel = setup_slave(gw.host, config) mn = MasterNode(channel, simple_report, {}) return mn master_nodes = [open_gw(), open_gw(), open_gw()] funcpass_item = rootcol._getitembynames(funcpass_spec) funcfail_item = rootcol._getitembynames(funcfail_spec) itemgenerator = iter([funcfail_item] + [funcpass_item] * 5 + [funcfail_item] * 5) shouldstop = lambda : False dispatch_loop(master_nodes, itemgenerator, shouldstop)
def test_dispatch_loop(): masternodes = [DummyMasterNode(), DummyMasterNode()] itemgenerator = iter(range(100)) shouldstop = lambda : False def waiter(): for node in masternodes: node.pending.pop() dispatch_loop(masternodes, itemgenerator, shouldstop, waiter=waiter)
def dispatch_tests(self, nodes, reporter, checkfun): colitems = self.config.getcolitems() keyword = self.config.option.keyword itemgenerator = itemgen(colitems, reporter, keyword, self.reporterror) all_tests = dispatch_loop(nodes, itemgenerator, checkfun)