|
5 | 5 | from functools import wraps
|
6 | 6 | import gzip
|
7 | 7 | import os
|
8 |
| -import re |
9 | 8 | from shutil import rmtree
|
10 | 9 | import string
|
11 | 10 | import tempfile
|
|
23 | 22 | )
|
24 | 23 |
|
25 | 24 | import pandas._libs.testing as _testing
|
26 |
| -from pandas.compat import _get_lzma_file, _import_lzma, raise_with_traceback |
| 25 | +from pandas.compat import _get_lzma_file, _import_lzma |
27 | 26 |
|
28 | 27 | from pandas.core.dtypes.common import (
|
29 | 28 | is_bool,
|
@@ -2404,143 +2403,6 @@ def wrapper(*args, **kwargs):
|
2404 | 2403 | with_connectivity_check = network
|
2405 | 2404 |
|
2406 | 2405 |
|
2407 |
| -def assert_raises_regex(_exception, _regexp, _callable=None, *args, **kwargs): |
2408 |
| - r""" |
2409 |
| - Check that the specified Exception is raised and that the error message |
2410 |
| - matches a given regular expression pattern. This may be a regular |
2411 |
| - expression object or a string containing a regular expression suitable |
2412 |
| - for use by `re.search()`. This is a port of the `assertRaisesRegexp` |
2413 |
| - function from unittest in Python 2.7. |
2414 |
| -
|
2415 |
| - .. deprecated:: 0.24.0 |
2416 |
| - Use `pytest.raises` instead. |
2417 |
| -
|
2418 |
| - Examples |
2419 |
| - -------- |
2420 |
| - >>> assert_raises_regex(ValueError, 'invalid literal for.*XYZ', int, 'XYZ') |
2421 |
| - >>> import re |
2422 |
| - >>> assert_raises_regex(ValueError, re.compile('literal'), int, 'XYZ') |
2423 |
| -
|
2424 |
| - If an exception of a different type is raised, it bubbles up. |
2425 |
| -
|
2426 |
| - >>> assert_raises_regex(TypeError, 'literal', int, 'XYZ') |
2427 |
| - Traceback (most recent call last): |
2428 |
| - ... |
2429 |
| - ValueError: invalid literal for int() with base 10: 'XYZ' |
2430 |
| - >>> dct = dict() |
2431 |
| - >>> assert_raises_regex(KeyError, 'pear', dct.__getitem__, 'apple') |
2432 |
| - Traceback (most recent call last): |
2433 |
| - ... |
2434 |
| - AssertionError: "pear" does not match "'apple'" |
2435 |
| -
|
2436 |
| - You can also use this in a with statement. |
2437 |
| -
|
2438 |
| - >>> with assert_raises_regex(TypeError, r'unsupported operand type\(s\)'): |
2439 |
| - ... 1 + {} |
2440 |
| - >>> with assert_raises_regex(TypeError, 'banana'): |
2441 |
| - ... 'apple'[0] = 'b' |
2442 |
| - Traceback (most recent call last): |
2443 |
| - ... |
2444 |
| - AssertionError: "banana" does not match "'str' object does not support \ |
2445 |
| -item assignment" |
2446 |
| - """ |
2447 |
| - warnings.warn( |
2448 |
| - ( |
2449 |
| - "assert_raises_regex has been deprecated and will " |
2450 |
| - "be removed in the next release. Please use " |
2451 |
| - "`pytest.raises` instead." |
2452 |
| - ), |
2453 |
| - FutureWarning, |
2454 |
| - stacklevel=2, |
2455 |
| - ) |
2456 |
| - |
2457 |
| - manager = _AssertRaisesContextmanager(exception=_exception, regexp=_regexp) |
2458 |
| - if _callable is not None: |
2459 |
| - with manager: |
2460 |
| - _callable(*args, **kwargs) |
2461 |
| - else: |
2462 |
| - return manager |
2463 |
| - |
2464 |
| - |
2465 |
| -class _AssertRaisesContextmanager: |
2466 |
| - """ |
2467 |
| - Context manager behind `assert_raises_regex`. |
2468 |
| - """ |
2469 |
| - |
2470 |
| - def __init__(self, exception, regexp=None): |
2471 |
| - """ |
2472 |
| - Initialize an _AssertRaisesContextManager instance. |
2473 |
| -
|
2474 |
| - Parameters |
2475 |
| - ---------- |
2476 |
| - exception : class |
2477 |
| - The expected Exception class. |
2478 |
| - regexp : str, default None |
2479 |
| - The regex to compare against the Exception message. |
2480 |
| - """ |
2481 |
| - |
2482 |
| - self.exception = exception |
2483 |
| - |
2484 |
| - if regexp is not None and not hasattr(regexp, "search"): |
2485 |
| - regexp = re.compile(regexp, re.DOTALL) |
2486 |
| - |
2487 |
| - self.regexp = regexp |
2488 |
| - |
2489 |
| - def __enter__(self): |
2490 |
| - return self |
2491 |
| - |
2492 |
| - def __exit__(self, exc_type, exc_value, trace_back): |
2493 |
| - expected = self.exception |
2494 |
| - |
2495 |
| - if not exc_type: |
2496 |
| - exp_name = getattr(expected, "__name__", str(expected)) |
2497 |
| - raise AssertionError("{name} not raised.".format(name=exp_name)) |
2498 |
| - |
2499 |
| - return self.exception_matches(exc_type, exc_value, trace_back) |
2500 |
| - |
2501 |
| - def exception_matches(self, exc_type, exc_value, trace_back): |
2502 |
| - """ |
2503 |
| - Check that the Exception raised matches the expected Exception |
2504 |
| - and expected error message regular expression. |
2505 |
| -
|
2506 |
| - Parameters |
2507 |
| - ---------- |
2508 |
| - exc_type : class |
2509 |
| - The type of Exception raised. |
2510 |
| - exc_value : Exception |
2511 |
| - The instance of `exc_type` raised. |
2512 |
| - trace_back : stack trace object |
2513 |
| - The traceback object associated with `exc_value`. |
2514 |
| -
|
2515 |
| - Returns |
2516 |
| - ------- |
2517 |
| - is_matched : bool |
2518 |
| - Whether or not the Exception raised matches the expected |
2519 |
| - Exception class and expected error message regular expression. |
2520 |
| -
|
2521 |
| - Raises |
2522 |
| - ------ |
2523 |
| - AssertionError : The error message provided does not match |
2524 |
| - the expected error message regular expression. |
2525 |
| - """ |
2526 |
| - |
2527 |
| - if issubclass(exc_type, self.exception): |
2528 |
| - if self.regexp is not None: |
2529 |
| - val = str(exc_value) |
2530 |
| - |
2531 |
| - if not self.regexp.search(val): |
2532 |
| - msg = '"{pat}" does not match "{val}"'.format( |
2533 |
| - pat=self.regexp.pattern, val=val |
2534 |
| - ) |
2535 |
| - e = AssertionError(msg) |
2536 |
| - raise_with_traceback(e, trace_back) |
2537 |
| - |
2538 |
| - return True |
2539 |
| - else: |
2540 |
| - # Failed, so allow Exception to bubble up. |
2541 |
| - return False |
2542 |
| - |
2543 |
| - |
2544 | 2406 | @contextmanager
|
2545 | 2407 | def assert_produces_warning(
|
2546 | 2408 | expected_warning=Warning,
|
|
0 commit comments