Merge lp:~mwhudson/launchpad/incremental-oops into lp:launchpad

Proposed by Michael Hudson-Doyle
Status: Merged
Approved by: Tim Penhey
Approved revision: not available
Merged at revision: not available
Proposed branch: lp:~mwhudson/launchpad/incremental-oops
Merge into: lp:launchpad
Diff against target: 64 lines (+15/-5)
4 files modified
lib/lp/code/browser/branch.py (+3/-3)
lib/lp/code/enums.py (+1/-1)
lib/lp/code/model/tests/test_codeimport.py (+9/-0)
lib/lp/code/model/tests/test_codeimportjob.py (+2/-1)
To merge this branch: bzr merge lp:~mwhudson/launchpad/incremental-oops
Reviewer Review Type Date Requested Status
Tim Penhey (community) Approve
Review via email: mp+19931@code.launchpad.net

Commit message

SUCCESS_PARTIAL needs to count as a success wrt code_import.consecutive_failure_count

To post a comment you must log in.
Revision history for this message
Michael Hudson-Doyle (mwhudson) wrote :

Hi Tim,

A problem with the incremental import stuff: a partial success wasn't counted as a success when it comes to disabling imports that fail repeatedly. That's not what we want :-)

Cheers,
mwh

Revision history for this message
Tim Penhey (thumper) wrote :

Good catch.

review: Approve

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1=== modified file 'lib/lp/code/browser/branch.py'
2--- lib/lp/code/browser/branch.py 2010-02-22 20:12:10 +0000
3+++ lib/lp/code/browser/branch.py 2010-02-23 20:05:34 +0000
4@@ -514,10 +514,10 @@
5
6 def iconForCodeImportResultStatus(self, status):
7 """The icon to represent the `CodeImportResultStatus` `status`."""
8- if status in CodeImportResultStatus.successes:
9+ if status == CodeImportResultStatus.SUCCESS_PARTIAL:
10+ return "/@@/yes-gray"
11+ elif status in CodeImportResultStatus.successes:
12 return "/@@/yes"
13- elif status == CodeImportResultStatus.SUCCESS_PARTIAL:
14- return "/@@/yes-gray"
15 else:
16 return "/@@/no"
17
18
19=== modified file 'lib/lp/code/enums.py'
20--- lib/lp/code/enums.py 2010-02-17 04:28:48 +0000
21+++ lib/lp/code/enums.py 2010-02-23 20:05:34 +0000
22@@ -871,7 +871,7 @@
23 job, or the deletion of a CodeImport which had a running job.
24 """)
25
26- successes = [SUCCESS, SUCCESS_NOCHANGE]
27+ successes = [SUCCESS, SUCCESS_NOCHANGE, SUCCESS_PARTIAL]
28
29
30 class CodeReviewVote(DBEnumeratedType):
31
32=== modified file 'lib/lp/code/model/tests/test_codeimport.py'
33--- lib/lp/code/model/tests/test_codeimport.py 2010-02-22 10:31:50 +0000
34+++ lib/lp/code/model/tests/test_codeimport.py 2010-02-23 20:05:34 +0000
35@@ -432,6 +432,15 @@
36 code_import, CodeImportResultStatus.SUCCESS_NOCHANGE)
37 self.assertEqual(0, code_import.consecutive_failure_count)
38
39+ def test_consecutive_failure_count_succeed_succeed_partial(self):
40+ # A code import that has succeeded then succeeded with no changes has
41+ # a consecutive_failure_count of 0.
42+ code_import = self.factory.makeCodeImport()
43+ self.succeedImport(code_import)
44+ self.succeedImport(
45+ code_import, CodeImportResultStatus.SUCCESS_NOCHANGE)
46+ self.assertEqual(0, code_import.consecutive_failure_count)
47+
48 def test_consecutive_failure_count_fail_fail(self):
49 # A code import that has failed twice has a consecutive_failure_count
50 # of 2.
51
52=== modified file 'lib/lp/code/model/tests/test_codeimportjob.py'
53--- lib/lp/code/model/tests/test_codeimportjob.py 2010-02-23 00:26:31 +0000
54+++ lib/lp/code/model/tests/test_codeimportjob.py 2010-02-23 20:05:34 +0000
55@@ -946,7 +946,8 @@
56 code_import = job.code_import
57 self.assertTrue(code_import.date_last_successful is None)
58 getUtility(ICodeImportJobWorkflow).finishJob(job, status, None)
59- if status in CodeImportResultStatus.successes:
60+ if status in [CodeImportResultStatus.SUCCESS,
61+ CodeImportResultStatus.SUCCESS_NOCHANGE]:
62 self.assertTrue(code_import.date_last_successful is not None)
63 else:
64 self.assertTrue(code_import.date_last_successful is None)