def test_get_all_can_be_called_multiple_times(self): self.results[0].set(0) self.results[1].set(1) self.results[2].set(2) result1 = get_all(self.results) result2 = get_all(self.results) self.assertEqual(result1, result2)
def test_get_all_raises_timeout_if_not_all_futures_are_available(self): try: self.results[0].set(0) self.results[2].set(2) get_all(self.results, timeout=0) self.fail("Should timeout") except Timeout: pass
def test_get_all_raises_timeout_if_not_all_futures_are_available(self): try: self.results[0].set(0) self.results[2].set(2) get_all(self.results, timeout=0) self.fail('Should timeout') except Timeout: pass
def run(pool_size, *ips): # Start resolvers resolvers = [Resolver.start().proxy() for _ in range(pool_size)] # Distribute work by mapping IPs to resolvers (not blocking) hosts = [] for i, ip in enumerate(ips): hosts.append(resolvers[i % len(resolvers)].resolve(ip)) # Gather results (blocking) ip_to_host = zip(ips, get_all(hosts)) pprint(ip_to_host) # Clean up ActorRegistry.stop_all()
def test_get_all_blocks_until_all_futures_are_available(self): self.results[0].set(0) self.results[1].set(1) self.results[2].set(2) result = get_all(self.results) self.assertEqual(result, [0, 1, 2])