| f | class Tester: | f | class Tester: |
| | | |
| def __init__(self, fun): | | def __init__(self, fun): |
| self.fun = fun | | self.fun = fun |
| | | |
| def __call__(self, suite, allowed=()): | | def __call__(self, suite, allowed=()): |
| n | allowed_exceptions_occurred = False | n | had_allowed = False |
| for test_case in suite: | | for args in suite: |
| try: | | try: |
| n | self.fun(*test_case) | n | self.fun(*args) |
| except Exception as e: | | except Exception as e: |
| n | if any((isinstance(e, exc_type) for exc_type in allowed) | n | if any((isinstance(e, a) for a in allowed)): |
| ): | | |
| allowed_exceptions_occurred = True | | had_allowed = True |
| else: | | else: |
| return 1 | | return 1 |
| t | return -1 if allowed_exceptions_occurred else 0 | t | return -1 if had_allowed else 0 |