class_docstr: Test class for SlackOutput
class_docstr_tok: ["Test","class","for","SlackOutput"]
docstr: SlackOutput - Format Multi-Message
docstr_tok: ["SlackOutput","-","Format","Multi-Message"]
code: def test_format_message_multiple(self):
      """SlackOutput - Format Multi-Message"""
      rule_name = "test_rule_multi-part"
      alert = get_random_alert(30, rule_name)
      output = MagicMock(spec=SlackOutput)
      alert_publication = compose_alert(alert, output, "asdf")
      loaded_message = SlackOutput._format_message(
          alert, alert_publication
      )
  
      # tests
      assert_set_equal(
          set(loaded_message.keys()), {"text", "mrkdwn", "attachments"}
      )
      assert_equal(
          loaded_message["text"],
          "*StreamAlert Rule Triggered: test_rule_multi-part*",
      )
      assert_equal(len(loaded_message["attachments"]), 2)
      assert_equal(
          loaded_message["attachments"][1]["text"].split("\n")[3][1:7],
          "000028",
      )
  
imports: from collections import Counter, OrderedDict
  from mock import patch, Mock, MagicMock
  from nose.tools import assert_equal, assert_false, assert_true, assert_set_equal
  from streamalert.alert_processor.helpers import compose_alert
  from streamalert.alert_processor.outputs.slack import SlackOutput
  from tests.unit.streamalert.alert_processor.helpers import get_random_alert, get_alert
label_desc: Use image node_id 8 for calling the TestSlackOutput obj's underlying member method code with example usage: obj.test_format_message_multiple() without return types