(self)
| 2176 | record=True) |
| 2177 | |
| 2178 | def __enter__(self): |
| 2179 | if self._entered: |
| 2180 | raise RuntimeError("cannot enter suppress_warnings twice.") |
| 2181 | |
| 2182 | self._orig_show = warnings.showwarning |
| 2183 | self._filters = warnings.filters |
| 2184 | warnings.filters = self._filters[:] |
| 2185 | |
| 2186 | self._entered = True |
| 2187 | self._tmp_suppressions = [] |
| 2188 | self._tmp_modules = set() |
| 2189 | self._forwarded = set() |
| 2190 | |
| 2191 | self.log = [] # reset global log (no need to keep same list) |
| 2192 | |
| 2193 | for cat, mess, _, mod, log in self._suppressions: |
| 2194 | if log is not None: |
| 2195 | del log[:] # clear the log |
| 2196 | if mod is None: |
| 2197 | warnings.filterwarnings( |
| 2198 | "always", category=cat, message=mess) |
| 2199 | else: |
| 2200 | module_regex = mod.__name__.replace('.', r'\.') + '$' |
| 2201 | warnings.filterwarnings( |
| 2202 | "always", category=cat, message=mess, |
| 2203 | module=module_regex) |
| 2204 | self._tmp_modules.add(mod) |
| 2205 | warnings.showwarning = self._showwarning |
| 2206 | self._clear_registries() |
| 2207 | |
| 2208 | return self |
| 2209 | |
| 2210 | def __exit__(self, *exc_info): |
| 2211 | warnings.showwarning = self._orig_show |
no test coverage detected