def test_log_exception(): """Test logged output.""" script_obj = script.Script( None, cv.SCRIPT_SCHEMA([{"service": "test.script"}, {"event": "test_event"}]) ) script_obj._exception_step = 1 for exc, msg in ( (vol.Invalid("Invalid number"), "Invalid data"), ( exceptions.TemplateError(jinja2.TemplateError("Unclosed bracket")), "Error rendering template", ), (exceptions.Unauthorized(), "Unauthorized"), (exceptions.ServiceNotFound("light", "turn_on"), "Service not found"), (ValueError("Cannot parse JSON"), "Unknown error"), ): logger = mock.Mock() script_obj.async_log_exception(logger, "Test error", exc) assert len(logger.mock_calls) == 1 _, _, p_error_desc, p_action_type, p_step, p_error = logger.mock_calls[0][1] assert p_error_desc == msg assert p_action_type == script.ACTION_FIRE_EVENT assert p_step == 2 if isinstance(exc, ValueError): assert p_error == "" else: assert p_error == str(exc)
def test_log_exception(): """Test logged output.""" script_obj = script.Script(None, cv.SCRIPT_SCHEMA([ {'service': 'test.script'}, {'event': 'test_event'}])) script_obj._exception_step = 1 for exc, msg in ( (vol.Invalid("Invalid number"), 'Invalid data'), (exceptions.TemplateError( jinja2.TemplateError('Unclosed bracket')), 'Error rendering template'), (exceptions.Unauthorized(), 'Unauthorized'), (exceptions.ServiceNotFound('light', 'turn_on'), 'Service not found'), (ValueError("Cannot parse JSON"), 'Unknown error'), ): logger = mock.Mock() script_obj.async_log_exception(logger, 'Test error', exc) assert len(logger.mock_calls) == 1 _, _, p_error_desc, p_action_type, p_step, p_error = \ logger.mock_calls[0][1] assert p_error_desc == msg assert p_action_type == script.ACTION_FIRE_EVENT assert p_step == 2 if isinstance(exc, ValueError): assert p_error == "" else: assert p_error == str(exc)