Merge ~cjwatson/launchpad:fix-build-can-be-cancelled-tests into launchpad:master

Proposed by Colin Watson
Status: Merged
Approved by: Colin Watson
Approved revision: 2f35d47296d002959d8e0eb86f108527064b9254
Merge reported by: Otto Co-Pilot
Merged at revision: not available
Proposed branch: ~cjwatson/launchpad:fix-build-can-be-cancelled-tests
Merge into: launchpad:master
Diff against target: 88 lines (+24/-12)
4 files modified
lib/lp/oci/tests/test_ocirecipebuild.py (+6/-3)
lib/lp/snappy/tests/test_snapbuild.py (+6/-3)
lib/lp/soyuz/tests/test_binarypackagebuild.py (+6/-3)
lib/lp/soyuz/tests/test_livefsbuild.py (+6/-3)
Reviewer Review Type Date Requested Status
Ioana Lasc (community) Approve
Review via email: mp+394710@code.launchpad.net

Commit message

Fix can_be_cancelled tests for various build types

Description of the change

These tests were broken in multiple ways: they tried to iterate over BuildStatus rather than over BuildStatus.items, and they then failed to take the status into account in each loop iteration. These two mistakes cancelled each other out, so we didn't notice.

To post a comment you must log in.
Revision history for this message
Ioana Lasc (ilasc) :
review: Approve

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1diff --git a/lib/lp/oci/tests/test_ocirecipebuild.py b/lib/lp/oci/tests/test_ocirecipebuild.py
2index 1dbd170..392672d 100644
3--- a/lib/lp/oci/tests/test_ocirecipebuild.py
4+++ b/lib/lp/oci/tests/test_ocirecipebuild.py
5@@ -150,11 +150,14 @@ class TestOCIRecipeBuild(OCIConfigHelperMixin, TestCaseWithFactory):
6 BuildStatus.BUILDING,
7 BuildStatus.NEEDSBUILD,
8 ]
9- for status in BuildStatus:
10+ for status in BuildStatus.items:
11+ build = self.factory.makeOCIRecipeBuild()
12+ build.queueBuild()
13+ build.updateStatus(status)
14 if status in ok_cases:
15- self.assertTrue(self.build.can_be_cancelled)
16+ self.assertTrue(build.can_be_cancelled)
17 else:
18- self.assertFalse(self.build.can_be_cancelled)
19+ self.assertFalse(build.can_be_cancelled)
20
21 def test_cancel_not_in_progress(self):
22 # The cancel() method for a pending build leaves it in the CANCELLED
23diff --git a/lib/lp/snappy/tests/test_snapbuild.py b/lib/lp/snappy/tests/test_snapbuild.py
24index 4a6000e..11c37bc 100644
25--- a/lib/lp/snappy/tests/test_snapbuild.py
26+++ b/lib/lp/snappy/tests/test_snapbuild.py
27@@ -187,11 +187,14 @@ class TestSnapBuild(TestCaseWithFactory):
28 BuildStatus.BUILDING,
29 BuildStatus.NEEDSBUILD,
30 ]
31- for status in BuildStatus:
32+ for status in BuildStatus.items:
33+ build = self.factory.makeSnapBuild()
34+ build.queueBuild()
35+ build.updateStatus(status)
36 if status in ok_cases:
37- self.assertTrue(self.build.can_be_cancelled)
38+ self.assertTrue(build.can_be_cancelled)
39 else:
40- self.assertFalse(self.build.can_be_cancelled)
41+ self.assertFalse(build.can_be_cancelled)
42
43 def test_cancel_not_in_progress(self):
44 # The cancel() method for a pending build leaves it in the CANCELLED
45diff --git a/lib/lp/soyuz/tests/test_binarypackagebuild.py b/lib/lp/soyuz/tests/test_binarypackagebuild.py
46index 1924b37..21b73d7 100644
47--- a/lib/lp/soyuz/tests/test_binarypackagebuild.py
48+++ b/lib/lp/soyuz/tests/test_binarypackagebuild.py
49@@ -170,11 +170,14 @@ class TestBinaryPackageBuild(TestCaseWithFactory):
50 BuildStatus.BUILDING,
51 BuildStatus.NEEDSBUILD,
52 ]
53- for status in BuildStatus:
54+ for status in BuildStatus.items:
55+ build = self.factory.makeBinaryPackageBuild()
56+ build.queueBuild()
57+ build.updateStatus(status)
58 if status in ok_cases:
59- self.assertTrue(self.build.can_be_cancelled)
60+ self.assertTrue(build.can_be_cancelled)
61 else:
62- self.assertFalse(self.build.can_be_cancelled)
63+ self.assertFalse(build.can_be_cancelled)
64
65 def test_can_be_cancelled_virtuality(self):
66 # Both virtual and non-virtual builds can be cancelled.
67diff --git a/lib/lp/soyuz/tests/test_livefsbuild.py b/lib/lp/soyuz/tests/test_livefsbuild.py
68index da4de7b..e7436f1 100644
69--- a/lib/lp/soyuz/tests/test_livefsbuild.py
70+++ b/lib/lp/soyuz/tests/test_livefsbuild.py
71@@ -160,11 +160,14 @@ class TestLiveFSBuild(TestCaseWithFactory):
72 BuildStatus.BUILDING,
73 BuildStatus.NEEDSBUILD,
74 ]
75- for status in BuildStatus:
76+ for status in BuildStatus.items:
77+ build = self.factory.makeLiveFSBuild()
78+ build.queueBuild()
79+ build.updateStatus(status)
80 if status in ok_cases:
81- self.assertTrue(self.build.can_be_cancelled)
82+ self.assertTrue(build.can_be_cancelled)
83 else:
84- self.assertFalse(self.build.can_be_cancelled)
85+ self.assertFalse(build.can_be_cancelled)
86
87 def test_cancel_not_in_progress(self):
88 # The cancel() method for a pending build leaves it in the CANCELLED

Subscribers

People subscribed via source and target branches

to status/vote changes: