Merge ~cjwatson/launchpad:builder-constraints-not-None into launchpad:master

Proposed by Colin Watson
Status: Merged
Approved by: Colin Watson
Approved revision: 296e415cfdded4239fa4c8fd697f42ce7cda192b
Merge reported by: Otto Co-Pilot
Merged at revision: not available
Proposed branch: ~cjwatson/launchpad:builder-constraints-not-None
Merge into: launchpad:master
Diff against target: 247 lines (+23/-23)
10 files modified
lib/lp/buildmaster/interfaces/buildfarmjobbehaviour.py (+2/-2)
lib/lp/buildmaster/model/buildfarmjobbehaviour.py (+1/-1)
lib/lp/charms/tests/test_charmrecipebuildbehaviour.py (+2/-2)
lib/lp/code/model/tests/test_cibuildbehaviour.py (+3/-3)
lib/lp/code/model/tests/test_recipebuilder.py (+3/-3)
lib/lp/oci/tests/test_ocirecipebuildbehaviour.py (+3/-3)
lib/lp/snappy/tests/test_snapbuildbehaviour.py (+6/-6)
lib/lp/soyuz/tests/test_binarypackagebuildbehaviour.py (+1/-1)
lib/lp/soyuz/tests/test_livefsbuildbehaviour.py (+1/-1)
lib/lp/translations/tests/test_translationtemplatesbuildbehaviour.py (+1/-1)
Reviewer Review Type Date Requested Status
Guruprasad Approve
Review via email: mp+436245@code.launchpad.net

Commit message

Don't dispatch builder_constraints as None

Description of the change

launchpad-buildd 226 accidentally assumes that it's either absent or non-None, but it's probably a good idea to avoid sending None anyway.

To post a comment you must log in.
Revision history for this message
Guruprasad (lgp171188) wrote :

LGTM 👍

review: Approve

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1diff --git a/lib/lp/buildmaster/interfaces/buildfarmjobbehaviour.py b/lib/lp/buildmaster/interfaces/buildfarmjobbehaviour.py
2index 0ef7da0..d78d9ca 100644
3--- a/lib/lp/buildmaster/interfaces/buildfarmjobbehaviour.py
4+++ b/lib/lp/buildmaster/interfaces/buildfarmjobbehaviour.py
5@@ -8,7 +8,7 @@ __all__ = [
6 "IBuildFarmJobBehaviour",
7 ]
8
9-from typing import Any, Dict, Generator, List, Tuple, Union
10+from typing import Any, Dict, Generator, List, Sequence, Union
11
12 from typing_extensions import TypedDict
13 from zope.interface import Attribute, Interface
14@@ -72,7 +72,7 @@ BuildArgs = TypedDict(
15 # The URL of this build.
16 "build_url": str,
17 # Builder resource tags required by this build farm job.
18- "builder_constraints": Tuple[str],
19+ "builder_constraints": Sequence[str],
20 # Source snap channels to use for this build [charm, ci, snap].
21 "channels": Dict[str, str],
22 # The date stamp to set in the built image [livefs].
23diff --git a/lib/lp/buildmaster/model/buildfarmjobbehaviour.py b/lib/lp/buildmaster/model/buildfarmjobbehaviour.py
24index 15b860e..f4218df 100644
25--- a/lib/lp/buildmaster/model/buildfarmjobbehaviour.py
26+++ b/lib/lp/buildmaster/model/buildfarmjobbehaviour.py
27@@ -102,7 +102,7 @@ class BuildFarmJobBehaviourBase:
28 "archive_private": self.archive.private,
29 "build_url": canonical_url(self.build),
30 "builder_constraints": removeSecurityProxy(
31- self.build.builder_constraints
32+ self.build.builder_constraints or []
33 ),
34 "fast_cleanup": self._builder.virtualized,
35 "series": self.distro_arch_series.distroseries.name,
36diff --git a/lib/lp/charms/tests/test_charmrecipebuildbehaviour.py b/lib/lp/charms/tests/test_charmrecipebuildbehaviour.py
37index 9f21dcf..10e676d 100644
38--- a/lib/lp/charms/tests/test_charmrecipebuildbehaviour.py
39+++ b/lib/lp/charms/tests/test_charmrecipebuildbehaviour.py
40@@ -304,7 +304,7 @@ class TestAsyncCharmRecipeBuildBehaviour(
41 "archives": Equals(expected_archives),
42 "arch_tag": Equals("i386"),
43 "build_url": Equals(canonical_url(job.build)),
44- "builder_constraints": Is(None),
45+ "builder_constraints": Equals([]),
46 "channels": Equals({}),
47 "fast_cleanup": Is(True),
48 "git_repository": Equals(ref.repository.git_https_url),
49@@ -346,7 +346,7 @@ class TestAsyncCharmRecipeBuildBehaviour(
50 "archives": Equals(expected_archives),
51 "arch_tag": Equals("i386"),
52 "build_url": Equals(canonical_url(job.build)),
53- "builder_constraints": Is(None),
54+ "builder_constraints": Equals([]),
55 "channels": Equals({}),
56 "fast_cleanup": Is(True),
57 "git_repository": Equals(ref.repository.git_https_url),
58diff --git a/lib/lp/code/model/tests/test_cibuildbehaviour.py b/lib/lp/code/model/tests/test_cibuildbehaviour.py
59index 52b3139..4d6221f 100644
60--- a/lib/lp/code/model/tests/test_cibuildbehaviour.py
61+++ b/lib/lp/code/model/tests/test_cibuildbehaviour.py
62@@ -299,7 +299,7 @@ class TestAsyncCIBuildBehaviour(StatsMixin, TestCIBuildBehaviourBase):
63 "archives": Equals(expected_archives),
64 "arch_tag": Equals("i386"),
65 "build_url": Equals(canonical_url(job.build)),
66- "builder_constraints": Is(None),
67+ "builder_constraints": Equals([]),
68 "fast_cleanup": Is(True),
69 "git_path": Equals(job.build.commit_sha1),
70 "git_repository": Equals(
71@@ -435,7 +435,7 @@ class TestAsyncCIBuildBehaviour(StatsMixin, TestCIBuildBehaviourBase):
72 "archives": Equals(expected_archives),
73 "arch_tag": Equals("i386"),
74 "build_url": Equals(canonical_url(job.build)),
75- "builder_constraints": Is(None),
76+ "builder_constraints": Equals([]),
77 "fast_cleanup": Is(True),
78 "git_path": Equals(job.build.commit_sha1),
79 "git_repository": Equals(
80@@ -610,7 +610,7 @@ class TestAsyncCIBuildBehaviour(StatsMixin, TestCIBuildBehaviourBase):
81 "archives": Equals(expected_archives),
82 "arch_tag": Equals("i386"),
83 "build_url": Equals(canonical_url(job.build)),
84- "builder_constraints": Is(None),
85+ "builder_constraints": Equals([]),
86 "fast_cleanup": Is(True),
87 "git_path": Equals(job.build.commit_sha1),
88 "git_repository": AfterPreprocessing(
89diff --git a/lib/lp/code/model/tests/test_recipebuilder.py b/lib/lp/code/model/tests/test_recipebuilder.py
90index 1fe01d9..ce34d6f 100644
91--- a/lib/lp/code/model/tests/test_recipebuilder.py
92+++ b/lib/lp/code/model/tests/test_recipebuilder.py
93@@ -212,7 +212,7 @@ class TestAsyncRecipeBuilder(TestRecipeBuilderBase):
94 "author_email": "requester@ubuntu.com",
95 "author_name": "Joe User",
96 "build_url": canonical_url(job.build),
97- "builder_constraints": None,
98+ "builder_constraints": [],
99 "distroseries_name": job.build.distroseries.name,
100 "fast_cleanup": True,
101 "ogrecomponent": "universe",
102@@ -315,7 +315,7 @@ class TestAsyncRecipeBuilder(TestRecipeBuilderBase):
103 "author_email": "requester@ubuntu.com",
104 "author_name": "Joe User",
105 "build_url": canonical_url(job.build),
106- "builder_constraints": None,
107+ "builder_constraints": [],
108 "distroseries_name": job.build.distroseries.name,
109 "fast_cleanup": True,
110 "ogrecomponent": "universe",
111@@ -365,7 +365,7 @@ class TestAsyncRecipeBuilder(TestRecipeBuilderBase):
112 "author_email": "requester@ubuntu.com",
113 "author_name": "Joe User",
114 "build_url": canonical_url(job.build),
115- "builder_constraints": None,
116+ "builder_constraints": [],
117 "distroseries_name": job.build.distroseries.name,
118 "fast_cleanup": True,
119 "git": True,
120diff --git a/lib/lp/oci/tests/test_ocirecipebuildbehaviour.py b/lib/lp/oci/tests/test_ocirecipebuildbehaviour.py
121index 9897717..27bf8b5 100644
122--- a/lib/lp/oci/tests/test_ocirecipebuildbehaviour.py
123+++ b/lib/lp/oci/tests/test_ocirecipebuildbehaviour.py
124@@ -498,7 +498,7 @@ class TestAsyncOCIRecipeBuildBehaviour(
125 ),
126 "build_path": Equals(job.build.recipe.build_path),
127 "build_url": Equals(canonical_url(job.build)),
128- "builder_constraints": Is(None),
129+ "builder_constraints": Equals([]),
130 "fast_cleanup": Is(True),
131 "git_repository": Equals(ref.repository.git_https_url),
132 "git_path": Equals(ref.name),
133@@ -574,7 +574,7 @@ class TestAsyncOCIRecipeBuildBehaviour(
134 ),
135 "build_path": Equals(job.build.recipe.build_path),
136 "build_url": Equals(canonical_url(job.build)),
137- "builder_constraints": Is(None),
138+ "builder_constraints": Equals([]),
139 "fast_cleanup": Is(True),
140 "git_repository": AfterPreprocessing(
141 urlsplit,
142@@ -662,7 +662,7 @@ class TestAsyncOCIRecipeBuildBehaviour(
143 ),
144 "build_path": Equals(job.build.recipe.build_path),
145 "build_url": Equals(canonical_url(job.build)),
146- "builder_constraints": Is(None),
147+ "builder_constraints": Equals([]),
148 "fast_cleanup": Is(True),
149 "git_repository": Equals(ref.repository.git_https_url),
150 "name": Equals(job.build.recipe.name),
151diff --git a/lib/lp/snappy/tests/test_snapbuildbehaviour.py b/lib/lp/snappy/tests/test_snapbuildbehaviour.py
152index 054df94..ef4e269 100644
153--- a/lib/lp/snappy/tests/test_snapbuildbehaviour.py
154+++ b/lib/lp/snappy/tests/test_snapbuildbehaviour.py
155@@ -404,7 +404,7 @@ class TestAsyncSnapBuildBehaviour(StatsMixin, TestSnapBuildBehaviourBase):
156 "branch": Equals(branch.bzr_identity),
157 "build_source_tarball": Is(False),
158 "build_url": Equals(canonical_url(job.build)),
159- "builder_constraints": Is(None),
160+ "builder_constraints": Equals([]),
161 "fast_cleanup": Is(True),
162 "name": Equals("test-snap"),
163 "private": Is(False),
164@@ -455,7 +455,7 @@ class TestAsyncSnapBuildBehaviour(StatsMixin, TestSnapBuildBehaviourBase):
165 "arch_tag": Equals("i386"),
166 "build_source_tarball": Is(False),
167 "build_url": Equals(canonical_url(job.build)),
168- "builder_constraints": Is(None),
169+ "builder_constraints": Equals([]),
170 "fast_cleanup": Is(True),
171 "git_repository": Equals(ref.repository.git_https_url),
172 "git_path": Equals(ref.name),
173@@ -498,7 +498,7 @@ class TestAsyncSnapBuildBehaviour(StatsMixin, TestSnapBuildBehaviourBase):
174 "arch_tag": Equals("i386"),
175 "build_source_tarball": Is(False),
176 "build_url": Equals(canonical_url(job.build)),
177- "builder_constraints": Is(None),
178+ "builder_constraints": Equals([]),
179 "fast_cleanup": Is(True),
180 "git_repository": Equals(ref.repository.git_https_url),
181 "name": Equals("test-snap"),
182@@ -546,7 +546,7 @@ class TestAsyncSnapBuildBehaviour(StatsMixin, TestSnapBuildBehaviourBase):
183 "arch_tag": Equals("i386"),
184 "build_source_tarball": Is(False),
185 "build_url": Equals(canonical_url(job.build)),
186- "builder_constraints": Is(None),
187+ "builder_constraints": Equals([]),
188 "fast_cleanup": Is(True),
189 "git_repository": AfterPreprocessing(
190 urlsplit,
191@@ -616,7 +616,7 @@ class TestAsyncSnapBuildBehaviour(StatsMixin, TestSnapBuildBehaviourBase):
192 "arch_tag": Equals("i386"),
193 "build_source_tarball": Is(False),
194 "build_url": Equals(canonical_url(job.build)),
195- "builder_constraints": Is(None),
196+ "builder_constraints": Equals([]),
197 "fast_cleanup": Is(True),
198 "git_repository": Equals(url),
199 "git_path": Equals("master"),
200@@ -659,7 +659,7 @@ class TestAsyncSnapBuildBehaviour(StatsMixin, TestSnapBuildBehaviourBase):
201 "arch_tag": Equals("i386"),
202 "build_source_tarball": Is(False),
203 "build_url": Equals(canonical_url(job.build)),
204- "builder_constraints": Is(None),
205+ "builder_constraints": Equals([]),
206 "fast_cleanup": Is(True),
207 "git_repository": Equals(url),
208 "name": Equals("test-snap"),
209diff --git a/lib/lp/soyuz/tests/test_binarypackagebuildbehaviour.py b/lib/lp/soyuz/tests/test_binarypackagebuildbehaviour.py
210index 581b5b6..ea4a2db 100644
211--- a/lib/lp/soyuz/tests/test_binarypackagebuildbehaviour.py
212+++ b/lib/lp/soyuz/tests/test_binarypackagebuildbehaviour.py
213@@ -167,7 +167,7 @@ class TestBinaryBuildPackageBehaviour(StatsMixin, TestCaseWithFactory):
214 "archives": archives,
215 "build_debug_symbols": archive.build_debug_symbols,
216 "build_url": canonical_url(build),
217- "builder_constraints": None,
218+ "builder_constraints": [],
219 "distribution": das.distroseries.distribution.name,
220 "fast_cleanup": builder.virtualized,
221 "image_type": "chroot",
222diff --git a/lib/lp/soyuz/tests/test_livefsbuildbehaviour.py b/lib/lp/soyuz/tests/test_livefsbuildbehaviour.py
223index 42e736b..cf49b80 100644
224--- a/lib/lp/soyuz/tests/test_livefsbuildbehaviour.py
225+++ b/lib/lp/soyuz/tests/test_livefsbuildbehaviour.py
226@@ -208,7 +208,7 @@ class TestAsyncLiveFSBuildBehaviour(TestLiveFSBuildBehaviourBase):
227 "archives": expected_archives,
228 "arch_tag": "i386",
229 "build_url": canonical_url(job.build),
230- "builder_constraints": None,
231+ "builder_constraints": [],
232 "datestamp": "20140425-103800",
233 "fast_cleanup": True,
234 "pocket": "release",
235diff --git a/lib/lp/translations/tests/test_translationtemplatesbuildbehaviour.py b/lib/lp/translations/tests/test_translationtemplatesbuildbehaviour.py
236index be9c1cd..2441b32 100644
237--- a/lib/lp/translations/tests/test_translationtemplatesbuildbehaviour.py
238+++ b/lib/lp/translations/tests/test_translationtemplatesbuildbehaviour.py
239@@ -113,7 +113,7 @@ class TestTranslationTemplatesBuildBehaviour(
240 "archive_private": False,
241 "branch_url": behaviour.build.branch.composePublicURL(),
242 "build_url": canonical_url(behaviour.build),
243- "builder_constraints": None,
244+ "builder_constraints": [],
245 "fast_cleanup": True,
246 "series": das.distroseries.name,
247 },

Subscribers

People subscribed via source and target branches

to status/vote changes: