class_docstr: Tests for RulesEngine
class_docstr_tok: ["Tests","for","RulesEngine"]
docstr: RulesEngine - _call_dynamic_output_function, raise error
docstr_tok: ["RulesEngine","-","_call_dynamic_output_function",",","raise","error"]
code: def test_call_dynamic_output_function_raise_error(self, log_error):
      """RulesEngine - _call_dynamic_output_function, raise error"""
      dynamic_output_function = Mock(
          __name__="test", side_effect=Exception("BOOM!")
      )
  
      rule_name = "test"
  
      dynamic_outputs = (
          self._rules_engine._call_dynamic_output_function(
              dynamic_output_function, rule_name, []
          )
      )
  
      assert_equal(dynamic_outputs, [])
      log_error.assert_called_with(
          "Exception when calling dynamic_output %s for rule %s",
          "test",
          rule_name,
      )
  
imports: from datetime import datetime, timedelta
  from mock import Mock, patch, PropertyMock
  from nose.tools import assert_equal, assert_false, assert_true
  from publishers.community.generic import remove_internal_fields
  from streamalert.shared.publisher import AlertPublisher, Register, DefaultPublisher
  import streamalert.rules_engine.rules_engine
  from streamalert.rules_engine.rules_engine import RulesEngine
label_desc: Use image node_id 19 for calling the TestRulesEngine obj's underlying member method code with example usage: obj.test_call_dynamic_output_function_raise_error(log_error) without return types