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

Shortcuts on this page

r m x   toggle line displays

j k   next/prev highlighted chunk

0   (zero) top of page

1   (one) first highlighted chunk

10 statements  

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 import nodes 

7from astroid.brain.helpers import register_module_extender 

8from astroid.builder import AstroidBuilder 

9from astroid.manager import AstroidManager 

10 

11 

12def pytest_transform() -> nodes.Module: 

13 return AstroidBuilder(AstroidManager()).string_build( 

14 """ 

15 

16try: 

17 import _pytest.mark 

18 import _pytest.recwarn 

19 import _pytest.runner 

20 import _pytest.python 

21 import _pytest.skipping 

22 import _pytest.assertion 

23except ImportError: 

24 pass 

25else: 

26 deprecated_call = _pytest.recwarn.deprecated_call 

27 warns = _pytest.recwarn.warns 

28 

29 exit = _pytest.runner.exit 

30 fail = _pytest.runner.fail 

31 skip = _pytest.runner.skip 

32 importorskip = _pytest.runner.importorskip 

33 

34 xfail = _pytest.skipping.xfail 

35 mark = _pytest.mark.MarkGenerator() 

36 raises = _pytest.python.raises 

37 

38 # New in pytest 3.0 

39 try: 

40 approx = _pytest.python.approx 

41 register_assert_rewrite = _pytest.assertion.register_assert_rewrite 

42 except AttributeError: 

43 pass 

44 

45 

46# Moved in pytest 3.0 

47 

48try: 

49 import _pytest.freeze_support 

50 freeze_includes = _pytest.freeze_support.freeze_includes 

51except ImportError: 

52 try: 

53 import _pytest.genscript 

54 freeze_includes = _pytest.genscript.freeze_includes 

55 except ImportError: 

56 pass 

57 

58try: 

59 import _pytest.debugging 

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

61except ImportError: 

62 try: 

63 import _pytest.pdb 

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

65 except ImportError: 

66 pass 

67 

68try: 

69 import _pytest.fixtures 

70 fixture = _pytest.fixtures.fixture 

71 yield_fixture = _pytest.fixtures.yield_fixture 

72except ImportError: 

73 try: 

74 import _pytest.python 

75 fixture = _pytest.python.fixture 

76 yield_fixture = _pytest.python.yield_fixture 

77 except ImportError: 

78 pass 

79""" 

80 ) 

81 

82 

83def register(manager: AstroidManager) -> None: 

84 register_module_extender(manager, "pytest", pytest_transform) 

85 register_module_extender(manager, "py.test", pytest_transform)