def test_multiprocessing_factory(self): # Wrap the TestFactory. mp_factory = ScaleFactory(TestFactory(), core=2) # launch the new multiprocessing factory port = reactor.listenTCP(8118, mp_factory) # connect twice to the new server and check that # instances server run into different process' client_factory = TestClientFactory() client_factory.client_deferred_list = [Deferred(), Deferred()] #time.sleep(1) cl1 = reactor.connectTCP('localhost', 8118, client_factory) cl2 = reactor.connectTCP('localhost', 8118, client_factory) result = gatherResults(client_factory.client_deferred_list) def check_result(r_list): self.assertEqual(len(r_list), 2, "Both client should have been called. ({0})".format(repr(r_list))) self.assertTrue(r_list[0][0] != r_list[1][0], """pid returned from the first client should be different from the one returned by the second client""") self.assertTrue(r_list[0][1] == b'0') self.assertTrue(r_list[1][1] == b'1') result.addCallback(check_result) self.addCleanup(self._clean_reactor, [port], [cl1, cl2]) return result
def test_justCheckDispatcherDontReturnError(self): client_factory = TestClientFactory() client_factory.client_deferred_list = [] for i in range(10): cl1 = reactor.connectTCP('localhost', 8118, client_factory) client_factory.client_deferred_list.append(Deferred()) self.clients.append(cl1) self.addCleanup(self._clean_reactor) result = gatherResults(client_factory.client_deferred_list) return result