示例#1
0
    def test_timeout_sync(self):
        p = pool.get_pool(thread_count=0)

        jobs = [pool.Job(lambda v: time.sleep(1) and v, 'job', i) for i in range(1, 5)]

        with self.assertRaises(pool.PoolTimeoutError):
          results = pool.pool_exec(p, jobs, 1)

          list(results)
示例#2
0
    def test_timeout(self):
        p = pool.get_pool()

        jobs = [pool.Job(lambda v: time.sleep(2) and v, i) for i in range(1, 5)]

        with self.assertRaises(pool.PoolTimeoutError):
          results = pool.pool_exec(p, jobs, 1)

          list(results)
示例#3
0
    def test_named_no_worker_pool(self):
        default = pool.get_pool(thread_count=0)
        p = pool.get_pool(name='test', thread_count=0)

        self.assertIsNone(p)
        self.assertIsNone(default)

        results = pool.pool_exec(p, [pool.Job(lambda v: v, 'job', 'a')], 1)

        self.assertEqual(list(results)[0].result, 'a')
示例#4
0
    def test_exception(self):
        p = pool.get_pool()

        err = Exception('this is a test')

        def testfunc():
          raise err

        results = pool.pool_exec(p, [pool.Job(testfunc, 'job')], 1)

        self.assertEqual(list(results)[0].exception, err)
示例#5
0
    def test_named(self):
        default = pool.get_pool()
        p = pool.get_pool(name='test')

        self.assertIn('test', pool._pools)

        self.assertNotEqual(default, p)

        results = pool.pool_exec(p, [pool.Job(lambda v: v, 'job', 'a')], 1)

        self.assertEqual(list(results)[0].result, 'a')

        pool.stop_pool('test')

        self.assertNotIn('test', pool._pools)