Merge ~cjwatson/launchpad:snap-charm-filter-uploads into launchpad:master
- Git
- lp:~cjwatson/launchpad
- snap-charm-filter-uploads
- Merge into master
Proposed by
Colin Watson
Status: | Merged |
---|---|
Approved by: | Colin Watson |
Approved revision: | 450964865816ea460e4314cd35b0a29d6d68cb52 |
Merge reported by: | Otto Co-Pilot |
Merged at revision: | not available |
Proposed branch: | ~cjwatson/launchpad:snap-charm-filter-uploads |
Merge into: | launchpad:master |
Diff against target: |
508 lines (+89/-58) 5 files modified
lib/lp/charms/model/charmhubclient.py (+0/-10) lib/lp/charms/model/charmrecipebuildjob.py (+6/-3) lib/lp/charms/tests/test_charmrecipebuildjob.py (+38/-21) lib/lp/snappy/model/snapbuildjob.py (+6/-3) lib/lp/snappy/tests/test_snapbuildjob.py (+39/-21) |
Related bugs: |
Reviewer | Review Type | Date Requested | Status |
---|---|---|---|
Cristian Gonzalez (community) | Approve | ||
Review via email: mp+408680@code.launchpad.net |
Commit message
Fix selection of snap/charm files to upload to the store
Description of the change
I lost the filter for files ending with ".snap" or ".charm" in a recent refactoring (https:/
To post a comment you must log in.
Preview Diff
[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1 | diff --git a/lib/lp/charms/model/charmhubclient.py b/lib/lp/charms/model/charmhubclient.py |
2 | index 33ea281..1ac2f6c 100644 |
3 | --- a/lib/lp/charms/model/charmhubclient.py |
4 | +++ b/lib/lp/charms/model/charmhubclient.py |
5 | @@ -210,16 +210,6 @@ class CharmhubClient: |
6 | timeline_action.finish() |
7 | |
8 | @classmethod |
9 | - def upload(cls, build): |
10 | - """See `ICharmhubClient`.""" |
11 | - assert build.recipe.can_upload_to_store |
12 | - for _, lfa, _ in build.getFiles(): |
13 | - if not lfa.filename.endswith(".charm"): |
14 | - continue |
15 | - upload_id = cls.uploadFile(lfa) |
16 | - return cls._push(build, upload_id) |
17 | - |
18 | - @classmethod |
19 | def checkStatus(cls, build, status_url): |
20 | """See `ICharmhubClient`.""" |
21 | status_url = urlappend( |
22 | diff --git a/lib/lp/charms/model/charmrecipebuildjob.py b/lib/lp/charms/model/charmrecipebuildjob.py |
23 | index cfe86a6..a0f7993 100644 |
24 | --- a/lib/lp/charms/model/charmrecipebuildjob.py |
25 | +++ b/lib/lp/charms/model/charmrecipebuildjob.py |
26 | @@ -323,13 +323,16 @@ class CharmhubUploadJob(CharmRecipeBuildJobDerived): |
27 | client = getUtility(ICharmhubClient) |
28 | try: |
29 | try: |
30 | - lfa = next((row[1] for row in self.build.getFiles()), None) |
31 | - if lfa is None: |
32 | + charm_lfa = next( |
33 | + (lfa for _, lfa, _ in self.build.getFiles() |
34 | + if lfa.filename.endswith(".charm")), |
35 | + None) |
36 | + if charm_lfa is None: |
37 | # Nothing to do. |
38 | self.error_message = None |
39 | return |
40 | if "upload_id" not in self.store_metadata: |
41 | - self.upload_id = client.uploadFile(lfa) |
42 | + self.upload_id = client.uploadFile(charm_lfa) |
43 | # We made progress, so reset attempt_count. |
44 | self.attempt_count = 1 |
45 | if "status_url" not in self.store_metadata: |
46 | diff --git a/lib/lp/charms/tests/test_charmrecipebuildjob.py b/lib/lp/charms/tests/test_charmrecipebuildjob.py |
47 | index d8c1e86..69865b1 100644 |
48 | --- a/lib/lp/charms/tests/test_charmrecipebuildjob.py |
49 | +++ b/lib/lp/charms/tests/test_charmrecipebuildjob.py |
50 | @@ -84,6 +84,19 @@ class FakeCharmhubClient: |
51 | self.release = FakeMethod() |
52 | |
53 | |
54 | +class FileUploaded(MatchesListwise): |
55 | + |
56 | + def __init__(self, filename): |
57 | + super().__init__([ |
58 | + MatchesListwise([ |
59 | + MatchesListwise([ |
60 | + MatchesStructure.byEquality(filename=filename), |
61 | + ]), |
62 | + MatchesDict({}), |
63 | + ]), |
64 | + ]) |
65 | + |
66 | + |
67 | class TestCharmRecipeBuildJob(TestCaseWithFactory): |
68 | |
69 | layer = DatabaseFunctionalLayer |
70 | @@ -130,12 +143,15 @@ class TestCharmhubUploadJob(TestCaseWithFactory): |
71 | repr(job)) |
72 | |
73 | def makeCharmRecipeBuild(self, **kwargs): |
74 | - # Make a build with a builder, a file, and a webhook. |
75 | + # Make a build with a builder, some files, and a webhook. |
76 | build = self.factory.makeCharmRecipeBuild( |
77 | builder=self.factory.makeBuilder(), **kwargs) |
78 | build.updateStatus(BuildStatus.FULLYBUILT) |
79 | + irrelevant_lfa = self.factory.makeLibraryFileAlias( |
80 | + filename="000-irrelevant.txt", content=b"irrelevant file") |
81 | + self.factory.makeCharmFile(build=build, library_file=irrelevant_lfa) |
82 | charm_lfa = self.factory.makeLibraryFileAlias( |
83 | - filename="test-charm.charm", content="dummy charm content") |
84 | + filename="test-charm.charm", content=b"dummy charm content") |
85 | self.factory.makeCharmFile(build=build, library_file=charm_lfa) |
86 | self.factory.makeWebhook( |
87 | target=build.recipe, event_types=["charm-recipe:build:0.1"]) |
88 | @@ -180,7 +196,6 @@ class TestCharmhubUploadJob(TestCaseWithFactory): |
89 | # revision. |
90 | logger = self.useFixture(FakeLogger()) |
91 | build = self.makeCharmRecipeBuild() |
92 | - charm_lfa = build.getFiles()[0][1] |
93 | self.assertContentEqual([], build.store_upload_jobs) |
94 | job = CharmhubUploadJob.create(build) |
95 | client = FakeCharmhubClient() |
96 | @@ -190,7 +205,8 @@ class TestCharmhubUploadJob(TestCaseWithFactory): |
97 | self.useFixture(ZopeUtilityFixture(client, ICharmhubClient)) |
98 | with dbuser(config.ICharmhubUploadJobSource.dbuser): |
99 | run_isolated_jobs([job]) |
100 | - self.assertEqual([((charm_lfa,), {})], client.uploadFile.calls) |
101 | + self.assertThat( |
102 | + client.uploadFile.calls, FileUploaded("test-charm.charm")) |
103 | self.assertEqual([((build, 1), {})], client.push.calls) |
104 | self.assertEqual( |
105 | [((build, self.status_url), {})], client.checkStatus.calls) |
106 | @@ -205,7 +221,6 @@ class TestCharmhubUploadJob(TestCaseWithFactory): |
107 | # A failed run sets the store upload status to FAILED. |
108 | logger = self.useFixture(FakeLogger()) |
109 | build = self.makeCharmRecipeBuild() |
110 | - charm_lfa = build.getFiles()[0][1] |
111 | self.assertContentEqual([], build.store_upload_jobs) |
112 | job = CharmhubUploadJob.create(build) |
113 | client = FakeCharmhubClient() |
114 | @@ -213,7 +228,8 @@ class TestCharmhubUploadJob(TestCaseWithFactory): |
115 | self.useFixture(ZopeUtilityFixture(client, ICharmhubClient)) |
116 | with dbuser(config.ICharmhubUploadJobSource.dbuser): |
117 | run_isolated_jobs([job]) |
118 | - self.assertEqual([((charm_lfa,), {})], client.uploadFile.calls) |
119 | + self.assertThat( |
120 | + client.uploadFile.calls, FileUploaded("test-charm.charm")) |
121 | self.assertEqual([], client.push.calls) |
122 | self.assertEqual([], client.checkStatus.calls) |
123 | self.assertEqual([], client.release.calls) |
124 | @@ -234,7 +250,6 @@ class TestCharmhubUploadJob(TestCaseWithFactory): |
125 | build = self.makeCharmRecipeBuild( |
126 | requester=requester_team, name="test-charm", owner=requester_team, |
127 | project=project) |
128 | - charm_lfa = build.getFiles()[0][1] |
129 | self.assertContentEqual([], build.store_upload_jobs) |
130 | job = CharmhubUploadJob.create(build) |
131 | client = FakeCharmhubClient() |
132 | @@ -244,7 +259,8 @@ class TestCharmhubUploadJob(TestCaseWithFactory): |
133 | self.useFixture(ZopeUtilityFixture(client, ICharmhubClient)) |
134 | with dbuser(config.ICharmhubUploadJobSource.dbuser): |
135 | run_isolated_jobs([job]) |
136 | - self.assertEqual([((charm_lfa,), {})], client.uploadFile.calls) |
137 | + self.assertThat( |
138 | + client.uploadFile.calls, FileUploaded("test-charm.charm")) |
139 | self.assertEqual([], client.push.calls) |
140 | self.assertEqual([], client.checkStatus.calls) |
141 | self.assertEqual([], client.release.calls) |
142 | @@ -287,7 +303,6 @@ class TestCharmhubUploadJob(TestCaseWithFactory): |
143 | # retried. |
144 | logger = self.useFixture(FakeLogger()) |
145 | build = self.makeCharmRecipeBuild() |
146 | - charm_lfa = build.getFiles()[0][1] |
147 | self.assertContentEqual([], build.store_upload_jobs) |
148 | job = CharmhubUploadJob.create(build) |
149 | client = FakeCharmhubClient() |
150 | @@ -296,7 +311,8 @@ class TestCharmhubUploadJob(TestCaseWithFactory): |
151 | self.useFixture(ZopeUtilityFixture(client, ICharmhubClient)) |
152 | with dbuser(config.ICharmhubUploadJobSource.dbuser): |
153 | run_isolated_jobs([job]) |
154 | - self.assertEqual([((charm_lfa,), {})], client.uploadFile.calls) |
155 | + self.assertThat( |
156 | + client.uploadFile.calls, FileUploaded("test-charm.charm")) |
157 | self.assertEqual([], client.push.calls) |
158 | self.assertEqual([], client.checkStatus.calls) |
159 | self.assertEqual([], client.release.calls) |
160 | @@ -316,7 +332,8 @@ class TestCharmhubUploadJob(TestCaseWithFactory): |
161 | client.checkStatus.result = 1 |
162 | with dbuser(config.ICharmhubUploadJobSource.dbuser): |
163 | run_isolated_jobs([job]) |
164 | - self.assertEqual([((charm_lfa,), {})], client.uploadFile.calls) |
165 | + self.assertThat( |
166 | + client.uploadFile.calls, FileUploaded("test-charm.charm")) |
167 | self.assertEqual([((build, 1), {})], client.push.calls) |
168 | self.assertEqual( |
169 | [((build, self.status_url), {})], client.checkStatus.calls) |
170 | @@ -339,7 +356,6 @@ class TestCharmhubUploadJob(TestCaseWithFactory): |
171 | build = self.makeCharmRecipeBuild( |
172 | requester=requester_team, name="test-charm", owner=requester_team, |
173 | project=project) |
174 | - charm_lfa = build.getFiles()[0][1] |
175 | self.assertContentEqual([], build.store_upload_jobs) |
176 | job = CharmhubUploadJob.create(build) |
177 | client = FakeCharmhubClient() |
178 | @@ -348,7 +364,8 @@ class TestCharmhubUploadJob(TestCaseWithFactory): |
179 | self.useFixture(ZopeUtilityFixture(client, ICharmhubClient)) |
180 | with dbuser(config.ICharmhubUploadJobSource.dbuser): |
181 | run_isolated_jobs([job]) |
182 | - self.assertEqual([((charm_lfa,), {})], client.uploadFile.calls) |
183 | + self.assertThat( |
184 | + client.uploadFile.calls, FileUploaded("test-charm.charm")) |
185 | self.assertEqual([], client.push.calls) |
186 | self.assertEqual([], client.checkStatus.calls) |
187 | self.assertEqual([], client.release.calls) |
188 | @@ -392,7 +409,6 @@ class TestCharmhubUploadJob(TestCaseWithFactory): |
189 | # charm schedules itself to be retried. |
190 | logger = self.useFixture(FakeLogger()) |
191 | build = self.makeCharmRecipeBuild() |
192 | - charm_lfa = build.getFiles()[0][1] |
193 | self.assertContentEqual([], build.store_upload_jobs) |
194 | job = CharmhubUploadJob.create(build) |
195 | client = FakeCharmhubClient() |
196 | @@ -402,7 +418,8 @@ class TestCharmhubUploadJob(TestCaseWithFactory): |
197 | self.useFixture(ZopeUtilityFixture(client, ICharmhubClient)) |
198 | with dbuser(config.ICharmhubUploadJobSource.dbuser): |
199 | run_isolated_jobs([job]) |
200 | - self.assertEqual([((charm_lfa,), {})], client.uploadFile.calls) |
201 | + self.assertThat( |
202 | + client.uploadFile.calls, FileUploaded("test-charm.charm")) |
203 | self.assertEqual([((build, 2), {})], client.push.calls) |
204 | self.assertEqual( |
205 | [((build, self.status_url), {})], client.checkStatus.calls) |
206 | @@ -445,7 +462,6 @@ class TestCharmhubUploadJob(TestCaseWithFactory): |
207 | build = self.makeCharmRecipeBuild( |
208 | requester=requester_team, name="test-charm", owner=requester_team, |
209 | project=project) |
210 | - charm_lfa = build.getFiles()[0][1] |
211 | self.assertContentEqual([], build.store_upload_jobs) |
212 | job = CharmhubUploadJob.create(build) |
213 | client = FakeCharmhubClient() |
214 | @@ -456,7 +472,8 @@ class TestCharmhubUploadJob(TestCaseWithFactory): |
215 | self.useFixture(ZopeUtilityFixture(client, ICharmhubClient)) |
216 | with dbuser(config.ICharmhubUploadJobSource.dbuser): |
217 | run_isolated_jobs([job]) |
218 | - self.assertEqual([((charm_lfa,), {})], client.uploadFile.calls) |
219 | + self.assertThat( |
220 | + client.uploadFile.calls, FileUploaded("test-charm.charm")) |
221 | self.assertEqual([((build, 2), {})], client.push.calls) |
222 | self.assertEqual( |
223 | [((build, self.status_url), {})], client.checkStatus.calls) |
224 | @@ -498,7 +515,6 @@ class TestCharmhubUploadJob(TestCaseWithFactory): |
225 | # channels does so. |
226 | logger = self.useFixture(FakeLogger()) |
227 | build = self.makeCharmRecipeBuild(store_channels=["stable", "edge"]) |
228 | - charm_lfa = build.getFiles()[0][1] |
229 | self.assertContentEqual([], build.store_upload_jobs) |
230 | job = CharmhubUploadJob.create(build) |
231 | client = FakeCharmhubClient() |
232 | @@ -508,7 +524,8 @@ class TestCharmhubUploadJob(TestCaseWithFactory): |
233 | self.useFixture(ZopeUtilityFixture(client, ICharmhubClient)) |
234 | with dbuser(config.ICharmhubUploadJobSource.dbuser): |
235 | run_isolated_jobs([job]) |
236 | - self.assertEqual([((charm_lfa,), {})], client.uploadFile.calls) |
237 | + self.assertThat( |
238 | + client.uploadFile.calls, FileUploaded("test-charm.charm")) |
239 | self.assertEqual([((build, 1), {})], client.push.calls) |
240 | self.assertEqual( |
241 | [((build, self.status_url), {})], client.checkStatus.calls) |
242 | @@ -530,7 +547,6 @@ class TestCharmhubUploadJob(TestCaseWithFactory): |
243 | build = self.makeCharmRecipeBuild( |
244 | requester=requester_team, name="test-charm", owner=requester_team, |
245 | project=project, store_channels=["stable", "edge"]) |
246 | - charm_lfa = build.getFiles()[0][1] |
247 | self.assertContentEqual([], build.store_upload_jobs) |
248 | job = CharmhubUploadJob.create(build) |
249 | client = FakeCharmhubClient() |
250 | @@ -541,7 +557,8 @@ class TestCharmhubUploadJob(TestCaseWithFactory): |
251 | self.useFixture(ZopeUtilityFixture(client, ICharmhubClient)) |
252 | with dbuser(config.ICharmhubUploadJobSource.dbuser): |
253 | JobRunner([job]).runAll() |
254 | - self.assertEqual([((charm_lfa,), {})], client.uploadFile.calls) |
255 | + self.assertThat( |
256 | + client.uploadFile.calls, FileUploaded("test-charm.charm")) |
257 | self.assertEqual([((build, 1), {})], client.push.calls) |
258 | self.assertEqual( |
259 | [((build, self.status_url), {})], client.checkStatus.calls) |
260 | diff --git a/lib/lp/snappy/model/snapbuildjob.py b/lib/lp/snappy/model/snapbuildjob.py |
261 | index 8e79973..dbf43e1 100644 |
262 | --- a/lib/lp/snappy/model/snapbuildjob.py |
263 | +++ b/lib/lp/snappy/model/snapbuildjob.py |
264 | @@ -345,13 +345,16 @@ class SnapStoreUploadJob(SnapBuildJobDerived): |
265 | client = getUtility(ISnapStoreClient) |
266 | try: |
267 | try: |
268 | - lfa = next((row[1] for row in self.snapbuild.getFiles()), None) |
269 | - if lfa is None: |
270 | + snap_lfa = next( |
271 | + (lfa for _, lfa, _ in self.snapbuild.getFiles() |
272 | + if lfa.filename.endswith(".snap")), |
273 | + None) |
274 | + if snap_lfa is None: |
275 | # Nothing to do. |
276 | self.error_message = None |
277 | return |
278 | if "upload_id" not in self.store_metadata: |
279 | - self.upload_id = client.uploadFile(lfa) |
280 | + self.upload_id = client.uploadFile(snap_lfa) |
281 | # We made progress, so reset attempt_count. |
282 | self.attempt_count = 1 |
283 | if "status_url" not in self.store_metadata: |
284 | diff --git a/lib/lp/snappy/tests/test_snapbuildjob.py b/lib/lp/snappy/tests/test_snapbuildjob.py |
285 | index 1c1f316..68eef98 100644 |
286 | --- a/lib/lp/snappy/tests/test_snapbuildjob.py |
287 | +++ b/lib/lp/snappy/tests/test_snapbuildjob.py |
288 | @@ -79,6 +79,19 @@ class FakeSnapStoreClient: |
289 | self.listChannels = FakeMethod(result=[]) |
290 | |
291 | |
292 | +class FileUploaded(MatchesListwise): |
293 | + |
294 | + def __init__(self, filename): |
295 | + super().__init__([ |
296 | + MatchesListwise([ |
297 | + MatchesListwise([ |
298 | + MatchesStructure.byEquality(filename=filename), |
299 | + ]), |
300 | + MatchesDict({}), |
301 | + ]), |
302 | + ]) |
303 | + |
304 | + |
305 | class TestSnapBuildJob(TestCaseWithFactory): |
306 | |
307 | layer = DatabaseFunctionalLayer |
308 | @@ -125,6 +138,10 @@ class TestSnapStoreUploadJob(TestCaseWithFactory): |
309 | snapbuild = self.factory.makeSnapBuild( |
310 | builder=self.factory.makeBuilder(), **kwargs) |
311 | snapbuild.updateStatus(BuildStatus.FULLYBUILT) |
312 | + irrelevant_lfa = self.factory.makeLibraryFileAlias( |
313 | + filename="000-irrelevant.txt", content=b"irrelevant file") |
314 | + self.factory.makeSnapFile( |
315 | + snapbuild=snapbuild, libraryfile=irrelevant_lfa) |
316 | snap_lfa = self.factory.makeLibraryFileAlias( |
317 | filename="test-snap.snap", content=b"dummy snap content") |
318 | self.factory.makeSnapFile(snapbuild=snapbuild, libraryfile=snap_lfa) |
319 | @@ -169,7 +186,6 @@ class TestSnapStoreUploadJob(TestCaseWithFactory): |
320 | # and revision. |
321 | logger = self.useFixture(FakeLogger()) |
322 | snapbuild = self.makeSnapBuild() |
323 | - snap_lfa = snapbuild.getFiles()[0][1] |
324 | self.assertContentEqual([], snapbuild.store_upload_jobs) |
325 | job = SnapStoreUploadJob.create(snapbuild) |
326 | client = FakeSnapStoreClient() |
327 | @@ -179,7 +195,8 @@ class TestSnapStoreUploadJob(TestCaseWithFactory): |
328 | self.useFixture(ZopeUtilityFixture(client, ISnapStoreClient)) |
329 | with dbuser(config.ISnapStoreUploadJobSource.dbuser): |
330 | run_isolated_jobs([job]) |
331 | - self.assertEqual([((snap_lfa,), {})], client.uploadFile.calls) |
332 | + self.assertThat( |
333 | + client.uploadFile.calls, FileUploaded("test-snap.snap")) |
334 | self.assertEqual([((snapbuild, 1), {})], client.push.calls) |
335 | self.assertEqual([((self.status_url,), {})], client.checkStatus.calls) |
336 | self.assertContentEqual([job], snapbuild.store_upload_jobs) |
337 | @@ -196,7 +213,6 @@ class TestSnapStoreUploadJob(TestCaseWithFactory): |
338 | # A failed run sets the store upload status to FAILED. |
339 | logger = self.useFixture(FakeLogger()) |
340 | snapbuild = self.makeSnapBuild() |
341 | - snap_lfa = snapbuild.getFiles()[0][1] |
342 | self.assertContentEqual([], snapbuild.store_upload_jobs) |
343 | job = SnapStoreUploadJob.create(snapbuild) |
344 | client = FakeSnapStoreClient() |
345 | @@ -204,7 +220,8 @@ class TestSnapStoreUploadJob(TestCaseWithFactory): |
346 | self.useFixture(ZopeUtilityFixture(client, ISnapStoreClient)) |
347 | with dbuser(config.ISnapStoreUploadJobSource.dbuser): |
348 | run_isolated_jobs([job]) |
349 | - self.assertEqual([((snap_lfa,), {})], client.uploadFile.calls) |
350 | + self.assertThat( |
351 | + client.uploadFile.calls, FileUploaded("test-snap.snap")) |
352 | self.assertEqual([], client.push.calls) |
353 | self.assertEqual([], client.checkStatus.calls) |
354 | self.assertContentEqual([job], snapbuild.store_upload_jobs) |
355 | @@ -225,7 +242,6 @@ class TestSnapStoreUploadJob(TestCaseWithFactory): |
356 | owner=requester, name="requester-team", members=[requester]) |
357 | snapbuild = self.makeSnapBuild( |
358 | requester=requester_team, name="test-snap", owner=requester_team) |
359 | - snap_lfa = snapbuild.getFiles()[0][1] |
360 | self.assertContentEqual([], snapbuild.store_upload_jobs) |
361 | job = SnapStoreUploadJob.create(snapbuild) |
362 | client = FakeSnapStoreClient() |
363 | @@ -235,7 +251,8 @@ class TestSnapStoreUploadJob(TestCaseWithFactory): |
364 | self.useFixture(ZopeUtilityFixture(client, ISnapStoreClient)) |
365 | with dbuser(config.ISnapStoreUploadJobSource.dbuser): |
366 | run_isolated_jobs([job]) |
367 | - self.assertEqual([((snap_lfa,), {})], client.uploadFile.calls) |
368 | + self.assertThat( |
369 | + client.uploadFile.calls, FileUploaded("test-snap.snap")) |
370 | self.assertEqual([((snapbuild, 1), {})], client.push.calls) |
371 | self.assertEqual([], client.checkStatus.calls) |
372 | self.assertContentEqual([job], snapbuild.store_upload_jobs) |
373 | @@ -277,7 +294,6 @@ class TestSnapStoreUploadJob(TestCaseWithFactory): |
374 | # retried. |
375 | logger = self.useFixture(FakeLogger()) |
376 | snapbuild = self.makeSnapBuild() |
377 | - snap_lfa = snapbuild.getFiles()[0][1] |
378 | self.assertContentEqual([], snapbuild.store_upload_jobs) |
379 | job = SnapStoreUploadJob.create(snapbuild) |
380 | client = FakeSnapStoreClient() |
381 | @@ -286,7 +302,8 @@ class TestSnapStoreUploadJob(TestCaseWithFactory): |
382 | self.useFixture(ZopeUtilityFixture(client, ISnapStoreClient)) |
383 | with dbuser(config.ISnapStoreUploadJobSource.dbuser): |
384 | run_isolated_jobs([job]) |
385 | - self.assertEqual([((snap_lfa,), {})], client.uploadFile.calls) |
386 | + self.assertThat( |
387 | + client.uploadFile.calls, FileUploaded("test-snap.snap")) |
388 | self.assertEqual([], client.push.calls) |
389 | self.assertEqual([], client.checkStatus.calls) |
390 | self.assertContentEqual([job], snapbuild.store_upload_jobs) |
391 | @@ -308,7 +325,8 @@ class TestSnapStoreUploadJob(TestCaseWithFactory): |
392 | client.checkStatus.result = (self.store_url, 1) |
393 | with dbuser(config.ISnapStoreUploadJobSource.dbuser): |
394 | run_isolated_jobs([job]) |
395 | - self.assertEqual([((snap_lfa,), {})], client.uploadFile.calls) |
396 | + self.assertThat( |
397 | + client.uploadFile.calls, FileUploaded("test-snap.snap")) |
398 | self.assertEqual([((snapbuild, 1), {})], client.push.calls) |
399 | self.assertEqual([((self.status_url,), {})], client.checkStatus.calls) |
400 | self.assertContentEqual([job], snapbuild.store_upload_jobs) |
401 | @@ -331,7 +349,6 @@ class TestSnapStoreUploadJob(TestCaseWithFactory): |
402 | owner=requester, name="requester-team", members=[requester]) |
403 | snapbuild = self.makeSnapBuild( |
404 | requester=requester_team, name="test-snap", owner=requester_team) |
405 | - snap_lfa = snapbuild.getFiles()[0][1] |
406 | self.assertContentEqual([], snapbuild.store_upload_jobs) |
407 | job = SnapStoreUploadJob.create(snapbuild) |
408 | client = FakeSnapStoreClient() |
409 | @@ -340,7 +357,8 @@ class TestSnapStoreUploadJob(TestCaseWithFactory): |
410 | self.useFixture(ZopeUtilityFixture(client, ISnapStoreClient)) |
411 | with dbuser(config.ISnapStoreUploadJobSource.dbuser): |
412 | run_isolated_jobs([job]) |
413 | - self.assertEqual([((snap_lfa,), {})], client.uploadFile.calls) |
414 | + self.assertThat( |
415 | + client.uploadFile.calls, FileUploaded("test-snap.snap")) |
416 | self.assertEqual([((snapbuild, 1), {})], client.push.calls) |
417 | self.assertEqual([], client.checkStatus.calls) |
418 | self.assertContentEqual([job], snapbuild.store_upload_jobs) |
419 | @@ -387,7 +405,6 @@ class TestSnapStoreUploadJob(TestCaseWithFactory): |
420 | owner=requester, name="requester-team", members=[requester]) |
421 | snapbuild = self.makeSnapBuild( |
422 | requester=requester_team, name="test-snap", owner=requester_team) |
423 | - snap_lfa = snapbuild.getFiles()[0][1] |
424 | self.assertContentEqual([], snapbuild.store_upload_jobs) |
425 | job = SnapStoreUploadJob.create(snapbuild) |
426 | client = FakeSnapStoreClient() |
427 | @@ -396,7 +413,8 @@ class TestSnapStoreUploadJob(TestCaseWithFactory): |
428 | self.useFixture(ZopeUtilityFixture(client, ISnapStoreClient)) |
429 | with dbuser(config.ISnapStoreUploadJobSource.dbuser): |
430 | run_isolated_jobs([job]) |
431 | - self.assertEqual([((snap_lfa,), {})], client.uploadFile.calls) |
432 | + self.assertThat( |
433 | + client.uploadFile.calls, FileUploaded("test-snap.snap")) |
434 | self.assertEqual([], client.push.calls) |
435 | self.assertEqual([], client.checkStatus.calls) |
436 | self.assertContentEqual([job], snapbuild.store_upload_jobs) |
437 | @@ -441,7 +459,6 @@ class TestSnapStoreUploadJob(TestCaseWithFactory): |
438 | # package schedules itself to be retried. |
439 | logger = self.useFixture(FakeLogger()) |
440 | snapbuild = self.makeSnapBuild() |
441 | - snap_lfa = snapbuild.getFiles()[0][1] |
442 | self.assertContentEqual([], snapbuild.store_upload_jobs) |
443 | job = SnapStoreUploadJob.create(snapbuild) |
444 | client = FakeSnapStoreClient() |
445 | @@ -451,7 +468,8 @@ class TestSnapStoreUploadJob(TestCaseWithFactory): |
446 | self.useFixture(ZopeUtilityFixture(client, ISnapStoreClient)) |
447 | with dbuser(config.ISnapStoreUploadJobSource.dbuser): |
448 | run_isolated_jobs([job]) |
449 | - self.assertEqual([((snap_lfa,), {})], client.uploadFile.calls) |
450 | + self.assertThat( |
451 | + client.uploadFile.calls, FileUploaded("test-snap.snap")) |
452 | self.assertEqual([((snapbuild, 2), {})], client.push.calls) |
453 | self.assertEqual([((self.status_url,), {})], client.checkStatus.calls) |
454 | self.assertContentEqual([job], snapbuild.store_upload_jobs) |
455 | @@ -495,7 +513,6 @@ class TestSnapStoreUploadJob(TestCaseWithFactory): |
456 | owner=requester, name="requester-team", members=[requester]) |
457 | snapbuild = self.makeSnapBuild( |
458 | requester=requester_team, name="test-snap", owner=requester_team) |
459 | - snap_lfa = snapbuild.getFiles()[0][1] |
460 | self.assertContentEqual([], snapbuild.store_upload_jobs) |
461 | job = SnapStoreUploadJob.create(snapbuild) |
462 | client = FakeSnapStoreClient() |
463 | @@ -509,7 +526,8 @@ class TestSnapStoreUploadJob(TestCaseWithFactory): |
464 | self.useFixture(ZopeUtilityFixture(client, ISnapStoreClient)) |
465 | with dbuser(config.ISnapStoreUploadJobSource.dbuser): |
466 | run_isolated_jobs([job]) |
467 | - self.assertEqual([((snap_lfa,), {})], client.uploadFile.calls) |
468 | + self.assertThat( |
469 | + client.uploadFile.calls, FileUploaded("test-snap.snap")) |
470 | self.assertEqual([((snapbuild, 2), {})], client.push.calls) |
471 | self.assertEqual([((self.status_url,), {})], client.checkStatus.calls) |
472 | self.assertContentEqual([job], snapbuild.store_upload_jobs) |
473 | @@ -555,7 +573,6 @@ class TestSnapStoreUploadJob(TestCaseWithFactory): |
474 | # URL or revision. |
475 | logger = self.useFixture(FakeLogger()) |
476 | snapbuild = self.makeSnapBuild() |
477 | - snap_lfa = snapbuild.getFiles()[0][1] |
478 | self.assertContentEqual([], snapbuild.store_upload_jobs) |
479 | job = SnapStoreUploadJob.create(snapbuild) |
480 | client = FakeSnapStoreClient() |
481 | @@ -565,7 +582,8 @@ class TestSnapStoreUploadJob(TestCaseWithFactory): |
482 | self.useFixture(ZopeUtilityFixture(client, ISnapStoreClient)) |
483 | with dbuser(config.ISnapStoreUploadJobSource.dbuser): |
484 | run_isolated_jobs([job]) |
485 | - self.assertEqual([((snap_lfa,), {})], client.uploadFile.calls) |
486 | + self.assertThat( |
487 | + client.uploadFile.calls, FileUploaded("test-snap.snap")) |
488 | self.assertEqual([((snapbuild, 1), {})], client.push.calls) |
489 | self.assertEqual([((self.status_url,), {})], client.checkStatus.calls) |
490 | self.assertContentEqual([job], snapbuild.store_upload_jobs) |
491 | @@ -583,7 +601,6 @@ class TestSnapStoreUploadJob(TestCaseWithFactory): |
492 | # channels does so. |
493 | logger = self.useFixture(FakeLogger()) |
494 | snapbuild = self.makeSnapBuild(store_channels=["stable", "edge"]) |
495 | - snap_lfa = snapbuild.getFiles()[0][1] |
496 | self.assertContentEqual([], snapbuild.store_upload_jobs) |
497 | job = SnapStoreUploadJob.create(snapbuild) |
498 | client = FakeSnapStoreClient() |
499 | @@ -593,7 +610,8 @@ class TestSnapStoreUploadJob(TestCaseWithFactory): |
500 | self.useFixture(ZopeUtilityFixture(client, ISnapStoreClient)) |
501 | with dbuser(config.ISnapStoreUploadJobSource.dbuser): |
502 | run_isolated_jobs([job]) |
503 | - self.assertEqual([((snap_lfa,), {})], client.uploadFile.calls) |
504 | + self.assertThat( |
505 | + client.uploadFile.calls, FileUploaded("test-snap.snap")) |
506 | self.assertEqual([((snapbuild, 1), {})], client.push.calls) |
507 | self.assertEqual([((self.status_url,), {})], client.checkStatus.calls) |
508 | self.assertContentEqual([job], snapbuild.store_upload_jobs) |
Looks good!