(self, cfg, fn, *args, **kw)
| 133 | all_fails._expect_success(config._current) |
| 134 | |
| 135 | def _do(self, cfg, fn, *args, **kw): |
| 136 | for skip in self.skips: |
| 137 | if skip(cfg): |
| 138 | msg = "'%s' : %s" % ( |
| 139 | config.get_current_test_name(), |
| 140 | skip._as_string(cfg), |
| 141 | ) |
| 142 | config.skip_test(msg) |
| 143 | |
| 144 | if self.warns: |
| 145 | from .assertions import expect_warnings |
| 146 | |
| 147 | @contextlib.contextmanager |
| 148 | def _expect_warnings(): |
| 149 | with contextlib.ExitStack() as stack: |
| 150 | for expression, assert_ in self.warns.values(): |
| 151 | stack.enter_context( |
| 152 | expect_warnings(expression, assert_=assert_) |
| 153 | ) |
| 154 | yield |
| 155 | |
| 156 | ctx = _expect_warnings() |
| 157 | else: |
| 158 | ctx = contextlib.nullcontext() |
| 159 | |
| 160 | try: |
| 161 | with ctx: |
| 162 | return_value = fn(*args, **kw) |
| 163 | except Exception as ex: |
| 164 | self._expect_failure(cfg, ex, name=fn.__name__) |
| 165 | else: |
| 166 | self._expect_success(cfg, name=fn.__name__) |
| 167 | return return_value |
| 168 | |
| 169 | def _expect_failure(self, config, ex, name="block"): |
| 170 | for fail in self.fails: |
no test coverage detected