"""Assertions for Blueberry package.""" import contextlib from typing import Iterator, Type from mobly import signals @contextlib.contextmanager def assert_not_raises( exception: Type[Exception] = Exception) -> Iterator[None]: """Asserts that the exception is not raised. This assertion function is used to catch a specified exception (or any exceptions) and raise signal.TestFailure instead. Usage: ``` with asserts.assert_not_raises(signals.TestError): foo() ``` Args: exception: Exception to be catched. If not specify, catch any exceptions as default. Yields: A context which may raise the exception. Raises: signals.TestFailure: raised when the exception is catched in the context. """ try: yield except exception as e: # pylint: disable=broad-except raise signals.TestFailure(e)