|
6 | 6 | import pytest |
7 | 7 |
|
8 | 8 |
|
9 | | -def test_subpool_simple(worker): |
| 9 | +@pytest.mark.parametrize(["use_worker"], [[False], [True]]) |
| 10 | +def test_subpool_simple(worker, use_worker): |
10 | 11 |
|
11 | | - worker.start() |
| 12 | + # Check that a subpool can be used both in an outside of a Job context |
| 13 | + if use_worker: |
| 14 | + worker.start() |
| 15 | + else: |
| 16 | + from tests.tasks.general import SubPool |
| 17 | + |
| 18 | + def run(params): |
| 19 | + if use_worker: |
| 20 | + return worker.send_task("tests.tasks.general.SubPool", params) |
| 21 | + else: |
| 22 | + return SubPool().run(params) |
12 | 23 |
|
13 | 24 | # Check that sequential sleeps work |
14 | 25 | start_time = time.time() |
15 | | - result = worker.send_task("tests.tasks.general.SubPool", { |
| 26 | + result = run({ |
16 | 27 | "pool_size": 1, "inner_params": [1, 1] |
17 | 28 | }) |
18 | 29 | total_time = time.time() - start_time |
19 | 30 |
|
20 | 31 | assert result == [1, 1] |
21 | 32 | assert total_time > 2 |
22 | 33 |
|
23 | | - # Parallel sleeps |
24 | | - start_time = time.time() |
25 | | - result = worker.send_task("tests.tasks.general.SubPool", { |
26 | | - "pool_size": 20, "inner_params": [1] * 20 |
27 | | - }) |
28 | | - total_time = time.time() - start_time |
| 34 | + # py.test doesn't use gevent so we don't get the benefits of the hub |
| 35 | + if use_worker: |
| 36 | + |
| 37 | + # Parallel sleeps |
| 38 | + start_time = time.time() |
| 39 | + result = run({ |
| 40 | + "pool_size": 20, "inner_params": [1] * 20 |
| 41 | + }) |
| 42 | + total_time = time.time() - start_time |
29 | 43 |
|
30 | | - assert result == [1] * 20 |
31 | | - assert total_time < 2 |
| 44 | + assert result == [1] * 20 |
| 45 | + assert total_time < 2 |
32 | 46 |
|
33 | 47 |
|
34 | 48 | def test_subpool_exception(worker): |
|
0 commit comments