Coverage for /pythoncovmergedfiles/medio/medio/usr/local/lib/python3.8/site-packages/astroid/brain/brain_pytest.py: 88%

8 statements  

« prev     ^ index     » next       coverage.py v7.2.7, created at 2023-06-07 06:53 +0000

1# Licensed under the LGPL: https://www.gnu.org/licenses/old-licenses/lgpl-2.1.en.html 

2# For details: https://github.com/pylint-dev/astroid/blob/main/LICENSE 

3# Copyright (c) https://github.com/pylint-dev/astroid/blob/main/CONTRIBUTORS.txt 

4 

5"""Astroid hooks for pytest.""" 

6from astroid.brain.helpers import register_module_extender 

7from astroid.builder import AstroidBuilder 

8from astroid.manager import AstroidManager 

9 

10 

11def pytest_transform(): 

12 return AstroidBuilder(AstroidManager()).string_build( 

13 """ 

14 

15try: 

16 import _pytest.mark 

17 import _pytest.recwarn 

18 import _pytest.runner 

19 import _pytest.python 

20 import _pytest.skipping 

21 import _pytest.assertion 

22except ImportError: 

23 pass 

24else: 

25 deprecated_call = _pytest.recwarn.deprecated_call 

26 warns = _pytest.recwarn.warns 

27 

28 exit = _pytest.runner.exit 

29 fail = _pytest.runner.fail 

30 skip = _pytest.runner.skip 

31 importorskip = _pytest.runner.importorskip 

32 

33 xfail = _pytest.skipping.xfail 

34 mark = _pytest.mark.MarkGenerator() 

35 raises = _pytest.python.raises 

36 

37 # New in pytest 3.0 

38 try: 

39 approx = _pytest.python.approx 

40 register_assert_rewrite = _pytest.assertion.register_assert_rewrite 

41 except AttributeError: 

42 pass 

43 

44 

45# Moved in pytest 3.0 

46 

47try: 

48 import _pytest.freeze_support 

49 freeze_includes = _pytest.freeze_support.freeze_includes 

50except ImportError: 

51 try: 

52 import _pytest.genscript 

53 freeze_includes = _pytest.genscript.freeze_includes 

54 except ImportError: 

55 pass 

56 

57try: 

58 import _pytest.debugging 

59 set_trace = _pytest.debugging.pytestPDB().set_trace 

60except ImportError: 

61 try: 

62 import _pytest.pdb 

63 set_trace = _pytest.pdb.pytestPDB().set_trace 

64 except ImportError: 

65 pass 

66 

67try: 

68 import _pytest.fixtures 

69 fixture = _pytest.fixtures.fixture 

70 yield_fixture = _pytest.fixtures.yield_fixture 

71except ImportError: 

72 try: 

73 import _pytest.python 

74 fixture = _pytest.python.fixture 

75 yield_fixture = _pytest.python.yield_fixture 

76 except ImportError: 

77 pass 

78""" 

79 ) 

80 

81 

82register_module_extender(AstroidManager(), "pytest", pytest_transform) 

83register_module_extender(AstroidManager(), "py.test", pytest_transform)