MCPcopy
hub / github.com/pytest-dev/pytest / _evaluate

Method _evaluate

src/_pytest/_py/path.py:70–106  ·  src/_pytest/_py/path.py::Checkers._evaluate
(self, kw)

Source from the content-addressed store, hash-verified

68 return str(self.path).endswith(arg)
69
70 def _evaluate(self, kw):
71 from .._code.source import getrawcode
72
73 for name, value in kw.items():
74 invert = False
75 meth = None
76 try:
77 meth = getattr(self, name)
78 except AttributeError:
79 if name[:3] == class="st">"not":
80 invert = True
81 try:
82 meth = getattr(self, name[3:])
83 except AttributeError:
84 pass
85 if meth is None:
86 raise TypeError(fclass="st">"no {name!r} checker available for {self.path!r}")
87 try:
88 if getrawcode(meth).co_argcount > 1:
89 if (not meth(value)) ^ invert:
90 return False
91 else:
92 if bool(value) ^ bool(meth()) ^ invert:
93 return False
94 except (error.ENOENT, error.ENOTDIR, error.EBUSY):
95 class="cm"># EBUSY feels not entirely correct,
96 class="cm"># but its kind of necessary since ENOMEDIUM
97 class="cm"># is not accessible in python
98 for name in self._depend_on_existence:
99 if name in kw:
100 if kw.get(name):
101 return False
102 name = class="st">"not" + name
103 if name in kw:
104 if not kw.get(name):
105 return False
106 return True
107
108 _statcache: Stat
109

Callers 1

checkMethod · 0.80

Calls 2

getrawcodeFunction · 0.85
getMethod · 0.45

Tested by

no test coverage detected