Coverage for tests/conftest.py: 39%
24 statements
« prev ^ index » next coverage.py v7.5.3, created at 2024-06-13 21:17 +0200
« prev ^ index » next coverage.py v7.5.3, created at 2024-06-13 21:17 +0200
1import random
2import time
3from multiprocessing import get_context
5from .test_invalid_ast import generate_invalid_ast
6from .test_valid_source import generate_valid_source
9def pytest_addoption(parser, pluginmanager):
10 parser.addoption(
11 "--generate-samples",
12 action="store_true",
13 help="Config file to use, defaults to %(default)s",
14 )
17def generate(seed):
18 return generate_invalid_ast(seed) or generate_valid_source(seed)
21def seeds():
22 return [random.randint(0, 10000000) for _ in range(10000)]
25def pytest_sessionfinish(session, exitstatus):
26 print("exitstatus", exitstatus)
28 if exitstatus == 0 and session.config.option.generate_samples: 28 ↛ 29line 28 didn't jump to line 29, because the condition on line 28 was never true
29 end_time = time.time() + 60 * 5
30 if False:
31 for seed in seeds():
32 if generate(seed):
33 break
34 if time.time() > end_time:
35 print("Timeout")
36 break
37 else:
38 with get_context("spawn").Pool(maxtasksperchild=100) as p:
39 for r in p.imap_unordered(generate, seeds()):
40 if r:
41 break
43 if time.time() > end_time:
44 print("Timeout")
45 break
46 p.terminate()