Coverage for tests/conftest.py: 39%

24 statements  

« 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 

4 

5from .test_invalid_ast import generate_invalid_ast 

6from .test_valid_source import generate_valid_source 

7 

8 

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 ) 

15 

16 

17def generate(seed): 

18 return generate_invalid_ast(seed) or generate_valid_source(seed) 

19 

20 

21def seeds(): 

22 return [random.randint(0, 10000000) for _ in range(10000)] 

23 

24 

25def pytest_sessionfinish(session, exitstatus): 

26 print("exitstatus", exitstatus) 

27 

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 

42 

43 if time.time() > end_time: 

44 print("Timeout") 

45 break 

46 p.terminate()