Merge lp:~cjwatson/launchpad/buildinfo-multiple-binary into lp:launchpad

Proposed by Colin Watson
Status: Merged
Merged at revision: 18360
Proposed branch: lp:~cjwatson/launchpad/buildinfo-multiple-binary
Merge into: lp:launchpad
Diff against target: 100 lines (+17/-12)
4 files modified
lib/lp/archiveuploader/nascentupload.py (+3/-2)
lib/lp/archiveuploader/tests/data/suite/bar_1.0-1_binary_buildinfo/bar_1.0-1_i386.buildinfo (+5/-4)
lib/lp/archiveuploader/tests/data/suite/bar_1.0-1_binary_buildinfo/bar_1.0-1_i386.changes (+6/-5)
lib/lp/archiveuploader/tests/test_uploadprocessor.py (+3/-1)
To merge this branch: bzr merge lp:~cjwatson/launchpad/buildinfo-multiple-binary
Reviewer Review Type Date Requested Status
William Grant code Approve
Review via email: mp+322956@code.launchpad.net

Commit message

Fix handling of multi-binary uploads with buildinfo.

To post a comment you must log in.
Revision history for this message
William Grant (wgrant) :
review: Approve (code)

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1=== modified file 'lib/lp/archiveuploader/nascentupload.py'
2--- lib/lp/archiveuploader/nascentupload.py 2017-03-29 09:28:09 +0000
3+++ lib/lp/archiveuploader/nascentupload.py 2017-04-21 12:24:57 +0000
4@@ -1,4 +1,4 @@
5-# Copyright 2009-2014 Canonical Ltd. This software is licensed under the
6+# Copyright 2009-2017 Canonical Ltd. This software is licensed under the
7 # GNU Affero General Public License version 3 (see the file LICENSE).
8
9 """The processing of nascent uploads.
10@@ -867,7 +867,8 @@
11 assert self.queue_root.pocket == bpf_build.pocket, (
12 "Binary was not build for the claimed pocket.")
13 binary_package_file.storeInDatabase(bpf_build)
14- if self.changes.buildinfo is not None:
15+ if (self.changes.buildinfo is not None and
16+ bpf_build.buildinfo is None):
17 self.changes.buildinfo.checkBuild(bpf_build)
18 bpf_build.addBuildInfo(
19 self.changes.buildinfo.storeInDatabase())
20
21=== added file 'lib/lp/archiveuploader/tests/data/suite/bar_1.0-1_binary_buildinfo/bar-bin_1.0-1_i386.deb'
22Binary files lib/lp/archiveuploader/tests/data/suite/bar_1.0-1_binary_buildinfo/bar-bin_1.0-1_i386.deb 1970-01-01 00:00:00 +0000 and lib/lp/archiveuploader/tests/data/suite/bar_1.0-1_binary_buildinfo/bar-bin_1.0-1_i386.deb 2017-04-21 12:24:57 +0000 differ
23=== modified file 'lib/lp/archiveuploader/tests/data/suite/bar_1.0-1_binary_buildinfo/bar_1.0-1_i386.buildinfo'
24--- lib/lp/archiveuploader/tests/data/suite/bar_1.0-1_binary_buildinfo/bar_1.0-1_i386.buildinfo 2017-03-29 22:34:48 +0000
25+++ lib/lp/archiveuploader/tests/data/suite/bar_1.0-1_binary_buildinfo/bar_1.0-1_i386.buildinfo 2017-04-21 12:24:57 +0000
26@@ -3,11 +3,12 @@
27
28 Format: 1.0
29 Source: bar
30-Binary: bar
31+Binary: bar bar-bin
32 Architecture: i386
33 Version: 1.0-1
34 Checksums-Md5:
35 39a6dde58f0b84139e9877892f6ac56a 644 bar_1.0-1_i386.deb
36+ 79b22a9047bae498f37b58adde5b1f1c 660 bar-bin_1.0-1_i386.deb
37 Build-Origin: Ubuntu
38 Build-Architecture: i386
39 Build-Date: Wed, 29 Mar 2017 00:01:21 +0100
40@@ -17,7 +18,7 @@
41
42 -----BEGIN PGP SIGNATURE-----
43
44-iF0EARECAB0WIQQ0DKO7Jw4nFsnuC3aOfrcIbGSoxQUCWNwqmQAKCRCOfrcIbGSo
45-xc7HAJ9JMKX0NRHSvhaY11jKITVazztw6QCfdQAKsVEzM6tIRNUIwfJnOi7N2Pg=
46-=aQ0x
47+iF0EARECAB0WIQQ0DKO7Jw4nFsnuC3aOfrcIbGSoxQUCWPnwPQAKCRCOfrcIbGSo
48+xQr7AKCateEy6YhIpQTc4CkOWZ2fof67agCeLkFgSIIOocMegMRNo7JYxS98pn8=
49+=YPRu
50 -----END PGP SIGNATURE-----
51
52=== modified file 'lib/lp/archiveuploader/tests/data/suite/bar_1.0-1_binary_buildinfo/bar_1.0-1_i386.changes'
53--- lib/lp/archiveuploader/tests/data/suite/bar_1.0-1_binary_buildinfo/bar_1.0-1_i386.changes 2017-03-29 22:34:48 +0000
54+++ lib/lp/archiveuploader/tests/data/suite/bar_1.0-1_binary_buildinfo/bar_1.0-1_i386.changes 2017-04-21 12:24:57 +0000
55@@ -4,7 +4,7 @@
56 Format: 1.7
57 Date: Thu, 16 Feb 2006 15:34:09 +0000
58 Source: bar
59-Binary: bar
60+Binary: bar bar-bin
61 Architecture: i386
62 Version: 1.0-1
63 Distribution: breezy
64@@ -19,11 +19,12 @@
65 * Initial version
66 Files:
67 39a6dde58f0b84139e9877892f6ac56a 644 devel optional bar_1.0-1_i386.deb
68- fa48116db5bb103a310e7e5ffd6a14f4 541 devel optional bar_1.0-1_i386.buildinfo
69+ 79b22a9047bae498f37b58adde5b1f1c 660 devel optional bar-bin_1.0-1_i386.deb
70+ f0dfbb33531a080faddac73c964bd77d 610 devel optional bar_1.0-1_i386.buildinfo
71
72 -----BEGIN PGP SIGNATURE-----
73
74-iF0EARECAB0WIQQ0DKO7Jw4nFsnuC3aOfrcIbGSoxQUCWNwqmQAKCRCOfrcIbGSo
75-xfGYAJ9ha1G54CIb6L+RNtt2Y1BoCc8NfgCfbNqjebToNPL5Egxd0U7nfC+yzlA=
76-=WNoA
77+iF0EARECAB0WIQQ0DKO7Jw4nFsnuC3aOfrcIbGSoxQUCWPnwRQAKCRCOfrcIbGSo
78+xX9kAJ4mbB557c+O+JLyCkEbaCtCMPQ50ACeNCoTSLQW2AkI8jIeL/geTJX6E04=
79+=Xs+1
80 -----END PGP SIGNATURE-----
81
82=== modified file 'lib/lp/archiveuploader/tests/test_uploadprocessor.py'
83--- lib/lp/archiveuploader/tests/test_uploadprocessor.py 2017-03-29 09:28:09 +0000
84+++ lib/lp/archiveuploader/tests/test_uploadprocessor.py 2017-04-21 12:24:57 +0000
85@@ -2043,7 +2043,8 @@
86 version=u"1.0-1", name=u"bar")
87 queue_item.setDone()
88 build.buildqueue_record.markAsBuilding(self.factory.makeBuilder())
89- build.updateStatus(BuildStatus.UPLOADING)
90+ build.updateStatus(
91+ BuildStatus.UPLOADING, builder=build.buildqueue_record.builder)
92 self.switchToUploader()
93 shutil.rmtree(upload_dir)
94 self.layer.txn.commit()
95@@ -2057,6 +2058,7 @@
96 self.options.builds = True
97 BuildUploadHandler(
98 uploadprocessor, self.incoming_folder, leaf_name).process()
99+ self.assertEqual(BuildStatus.FULLYBUILT, build.status)
100 self.assertEqual(buildinfo_contents, build.buildinfo.read())
101
102