コード例 #1
0
def test_should_construct_critical_error_from_base_exception_and_valid_input_parameters():
    valid_input_parameters = ("hola", 2)

    error = CriticalError(
        Exception("my_trace"), input_parameters=valid_input_parameters
    )

    assert error.message == "Exception: my_trace"
    assert "Input Parameters: {'param_1': 'hola', 'param_2': 2}" in error.__repr__()
コード例 #2
0
def test_should_capture_an_exception_with_additional_context():

    expected_trace = "my_trace"
    expected_raised_exception = RuntimeError(expected_trace)

    def inner():
        raise expected_raised_exception

    @meiga
    def method():
        try:
            inner()
        except Exception as exception:
            raise CriticalError(
                exception=exception,
                executor="executor",
                traceback=traceback.format_exc(),
            )

    result = method()
    assert_failure(
        result,
        value_is_instance_of=CriticalError,
        value_is_equal_to=CriticalError(expected_raised_exception),
    )

    assert result.value.executor == "executor"
    assert "Traceback" in result.value.traceback
    assert "File" in result.value.traceback

    assert "Traceback" in str(result)
コード例 #3
0
 def method():
     try:
         inner()
     except Exception as exception:
         raise CriticalError(
             exception=exception,
             executor="executor",
             traceback=traceback.format_exc(),
         )
コード例 #4
0
def test_should_capture_an_exception_during_runtime():

    expected_raised_exception = RuntimeError("my_trace")

    def inner():
        raise expected_raised_exception

    @meiga
    def method():
        try:
            inner()
        except Exception as exception:
            raise CriticalError(exception)

    result = method()

    assert_failure(
        result,
        value_is_instance_of=CriticalError,
        value_is_equal_to=CriticalError(expected_raised_exception),
    )
コード例 #5
0
        def wrapper(*args, **kwargs):
            @meiga
            def run_event_handler(*args, **kwargs) -> Result:
                return func(*args, **kwargs)

            self._check_logger()
            self._check_notifier()

            event: Event = args[0]

            log_message = LogMessage(layer="event_handler",
                                     operation=f"{func.__name__}")

            self.logger.log(
                DEBUG,
                log_message.set_message({
                    "event": event.event_name,
                    "body": event.to_json()
                }),
            )

            try:
                result = run_event_handler(*args, **kwargs)
            except Exception as exception:
                result = Failure(
                    CriticalError(
                        exception=exception,
                        input_parameters=kwargs if len(kwargs) > 0 else args,
                        executor=f"{func.__name__} (Event Handler)",
                        traceback=traceback.format_exc(),
                    ))

            self.logger.log(DEBUG, log_message.set_message({"result": result}))

            self.notify(result)

            return result
コード例 #6
0
 def method():
     try:
         inner()
     except Exception as exception:
         raise CriticalError(exception)
コード例 #7
0
def test_should_construct_critical_error_from_runtime_error_exception():

    error = CriticalError(RuntimeError("my_trace"))

    assert error.message == "RuntimeError: my_trace"
コード例 #8
0
def test_should_construct_critical_error_from_base_exception():

    error = CriticalError(Exception("my_trace"))

    assert error.message == "Exception: my_trace"