def test_generate_progress_report(self, open_mock):
        csd = CommandStatusDict(None)
        report = {}
        report["tmpout"] = None
        report["tmperr"] = None
        report["structuredOut"] = None

        # Make file read calls visible
        def open_side_effect(file, mode):
            if mode == "r":
                file_mock = MagicMock()
                file_mock.read.return_value = "Read from " + str(file)
                return file_mock
            else:
                return self.original_open(file, mode)

        open_mock.side_effect = open_side_effect

        inprogress = csd.generate_in_progress_report(self.auto_hbase_install_command, report)
        expected = {
            "status": "IN_PROGRESS",
            "stderr": "Read from None",
            "stdout": "Read from None",
            "clusterName": u"cc",
            "structuredOut": "{}",
            "reportResult": False,
            "roleCommand": u"INSTALL",
            "serviceName": u"HDFS",
            "role": u"HBASE",
            "actionId": "1-1",
            "taskId": 7,
            "exitcode": 777,
        }
        self.assertEqual(inprogress, expected)

        self.auto_hbase_install_command["auto_generated"] = False
        inprogress = csd.generate_in_progress_report(self.auto_hbase_install_command, report)
        expected["reportResult"] = True
        self.assertEqual(inprogress, expected)
        pass
  def test_generate_progress_report(self, open_mock):
    csd = CommandStatusDict(None)
    report = {}
    report['tmpout'] = None
    report['tmperr'] = None
    report['structuredOut'] = None

    # Make file read calls visible
    def open_side_effect(file, mode):
      if mode == 'r':
        file_mock = MagicMock()
        file_mock.read.return_value = "Read from " + str(file)
        return file_mock
      else:
        return self.original_open(file, mode)

    open_mock.side_effect = open_side_effect

    inprogress = csd.generate_in_progress_report(self.auto_hbase_install_command, report)
    expected = {
      'status': 'IN_PROGRESS',
      'stderr': 'Read from None',
      'stdout': 'Read from None',
      'clusterName': u'cc',
      'structuredOut': '{}',
      'reportResult': False,
      'roleCommand': u'INSTALL',
      'serviceName': u'HDFS',
      'role': u'HBASE',
      'actionId': '1-1',
      'taskId': 7,
      'exitcode': 777}
    self.assertEqual(inprogress, expected)

    self.auto_hbase_install_command['auto_generated'] = False
    inprogress = csd.generate_in_progress_report(self.auto_hbase_install_command, report)
    expected['reportResult'] = True
    self.assertEqual(inprogress, expected)
    pass