class_docstr: Test class for JiraOutput
class_docstr_tok: ["Test","class","for","JiraOutput"]
docstr: JiraOutput - Dispatch Success, Empty Comment
docstr_tok: ["JiraOutput","-","Dispatch","Success",",","Empty","Comment"]
code: def test_dispatch_issue_empty_comment(
      self, post_mock, get_mock, log_mock
  ):
      """JiraOutput - Dispatch Success, Empty Comment"""
      # setup the request to find an existing issue
      get_mock.return_value.status_code = 200
      existing_issues = {
          "issues": [{"fields": {"summary": "Bogus"}, "id": "5000"}]
      }
      get_mock.return_value.json.return_value = existing_issues
      # setup the auth and successful creation responses
      auth_resp = {
          "session": {"name": "cookie_name", "value": "cookie_value"}
      }
      type(post_mock.return_value).status_code = PropertyMock(
          side_effect=[200, 200, 200]
      )
      post_mock.return_value.json.side_effect = [
          auth_resp,
          {},
          {"id": 5000},
      ]
  
      assert_true(self._dispatcher.dispatch(get_alert(), self.OUTPUT))
  
      log_mock.assert_called_with(
          "Successfully sent alert to %s:%s",
          self.SERVICE,
          self.DESCRIPTOR,
      )
  
file_path: streamalert/tests/unit/streamalert/alert_processor/outputs/test_jira.py
imports: from mock import patch, PropertyMock, Mock, MagicMock
  from nose.tools import assert_equal, assert_false, assert_true
  from streamalert.alert_processor.outputs.jira import JiraOutput
  from tests.unit.streamalert.alert_processor.helpers import get_alert
label_desc: Use image node_id 4 for calling the TestJiraOutput obj's underlying member method code with example usage: obj.test_dispatch_issue_empty_comment(post_mock, get_mock, log_mock) without return types