def testUpdateAnalysisPartiallyTriaged(self):
    analysis = WfAnalysis.Create(
        self.master_name, self.builder_name, self.build_number_1)

    analysis.suspected_cls = [self.suspected_cl_1, self.suspected_cl_2]
    analysis.result_status = result_status.FOUND_UNTRIAGED
    analysis.put()

    success = triage_suspected_cl._UpdateAnalysis(
      self.master_name, self.builder_name, self.build_number_1,
      self.repo_name, self.revision_1, suspected_cl_status.CORRECT)

    expected_suspected_cls = [
      {
        'repo_name': self.repo_name,
        'revision': self.revision_1,
        'commit_position': self.commit_position,
        'url': 'https://codereview.chromium.org/123',
        'status': suspected_cl_status.CORRECT
      },
      self.suspected_cl_2
    ]

    analysis = WfAnalysis.Get(
        self.master_name, self.builder_name, self.build_number_1)
    self.assertTrue(success)
    self.assertEqual(analysis.result_status, result_status.FOUND_UNTRIAGED)
    self.assertEqual(analysis.suspected_cls, expected_suspected_cls)
  def testUpdateAnalysisAllIncorrect(self):
    analysis = WfAnalysis.Create(
        self.master_name, self.builder_name, self.build_number_1)

    analysis.suspected_cls = [self.suspected_cl_1, self.suspected_cl_2]
    analysis.result_status = result_status.FOUND_UNTRIAGED
    analysis.put()

    triage_suspected_cl._UpdateAnalysis(
        self.master_name, self.builder_name, self.build_number_1,
        self.repo_name, self.revision_1, suspected_cl_status.INCORRECT)

    triage_suspected_cl._UpdateAnalysis(
        self.master_name, self.builder_name, self.build_number_1,
        self.repo_name, self.revision_2, suspected_cl_status.INCORRECT)

    analysis = WfAnalysis.Get(
        self.master_name, self.builder_name, self.build_number_1)
    self.assertEqual(analysis.result_status, result_status.FOUND_INCORRECT)
 def testUpdateAnalysisNone(self):
   self.assertFalse(triage_suspected_cl._UpdateAnalysis(
       self.master_name, self.builder_name, self.build_number_1,
       self.repo_name, self.revision_1, None
   ))