Merge lp:~cjwatson/launchpad/bpb-source-package-name into lp:launchpad

Proposed by Colin Watson
Status: Merged
Merged at revision: 17493
Proposed branch: lp:~cjwatson/launchpad/bpb-source-package-name
Merge into: lp:launchpad
Diff against target: 75 lines (+19/-0)
4 files modified
lib/lp/soyuz/interfaces/binarypackagebuild.py (+4/-0)
lib/lp/soyuz/model/binarypackagebuild.py (+5/-0)
lib/lp/soyuz/stories/webservice/xx-builds.txt (+3/-0)
lib/lp/soyuz/tests/test_binarypackagebuild.py (+7/-0)
To merge this branch: bzr merge lp:~cjwatson/launchpad/bpb-source-package-name
Reviewer Review Type Date Requested Status
William Grant code Approve
Review via email: mp+258820@code.launchpad.net

Commit message

Add an exported variant of BinaryPackageBuild.source_package_name, making it easier to cope with cases where a build's SPPH is invisible.

Description of the change

Add an exported variant of BinaryPackageBuild.source_package_name, making it easier to cope with cases where a build's SPPH is invisible. This will let us fix (or at least work around) a 401 that's biting ddeb-retriever.

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/soyuz/interfaces/binarypackagebuild.py'
2--- lib/lp/soyuz/interfaces/binarypackagebuild.py 2015-04-20 09:48:57 +0000
3+++ lib/lp/soyuz/interfaces/binarypackagebuild.py 2015-05-12 01:44:16 +0000
4@@ -98,6 +98,10 @@
5 schema=ISourcePackagePublishingHistory,
6 required=False, readonly=True,
7 description=_("The current source publication for this build.")))
8+ api_source_package_name = exported(
9+ TextLine(
10+ title=_("Source package name"), required=False, readonly=True),
11+ exported_as="source_package_name")
12
13 distro_series = Attribute("Direct parent needed by CanonicalURL")
14 arch_tag = exported(
15
16=== modified file 'lib/lp/soyuz/model/binarypackagebuild.py'
17--- lib/lp/soyuz/model/binarypackagebuild.py 2015-04-08 10:35:22 +0000
18+++ lib/lp/soyuz/model/binarypackagebuild.py 2015-05-12 01:44:16 +0000
19@@ -248,6 +248,11 @@
20 return None
21
22 @property
23+ def api_source_package_name(self):
24+ """See `IBuild`."""
25+ return self.source_package_release.name
26+
27+ @property
28 def upload_changesfile(self):
29 """See `IBuild`"""
30 package_upload = self.package_upload
31
32=== modified file 'lib/lp/soyuz/stories/webservice/xx-builds.txt'
33--- lib/lp/soyuz/stories/webservice/xx-builds.txt 2014-07-24 09:37:03 +0000
34+++ lib/lp/soyuz/stories/webservice/xx-builds.txt 2015-05-12 01:44:16 +0000
35@@ -60,6 +60,7 @@
36 resource_type_link: u'http://api.launchpad.dev/beta/#build'
37 score: None
38 self_link: u'http://api.launchpad.dev/beta/~cprov/+archive/ubuntu/ppa/+build/26'
39+ source_package_name: u'cdrkit'
40 status: u'Failed to build'
41 title: u'i386 build of cdrkit 1.0 in ubuntu breezy-autotest RELEASE'
42 upload_log_url: None
43@@ -92,6 +93,7 @@
44 resource_type_link: u'http://.../#build'
45 score: None
46 self_link: u'http://.../~cprov/+archive/ubuntu/ppa/+build/26'
47+ source_package_name: u'cdrkit'
48 title: u'i386 build of cdrkit 1.0 in ubuntu breezy-autotest RELEASE'
49 upload_log_url: None
50 web_link: u'http://launchpad.../~cprov/+archive/ubuntu/ppa/+build/26'
51@@ -124,6 +126,7 @@
52 resource_type_link: u'http://.../#build'
53 score: None
54 self_link: u'http://.../~cprov/+archive/ubuntu/ppa/+build/26'
55+ source_package_name: u'cdrkit'
56 title: u'i386 build of cdrkit 1.0 in ubuntu breezy-autotest RELEASE'
57 upload_log_url: None
58 web_link: u'http://launchpad.../~cprov/+archive/ubuntu/ppa/+build/26'
59
60=== modified file 'lib/lp/soyuz/tests/test_binarypackagebuild.py'
61--- lib/lp/soyuz/tests/test_binarypackagebuild.py 2015-04-08 10:35:22 +0000
62+++ lib/lp/soyuz/tests/test_binarypackagebuild.py 2015-05-12 01:44:16 +0000
63@@ -501,6 +501,13 @@
64 entry = self.webservice.get(build_url, api_version='devel').jsonBody()
65 self.assertEndsWith(entry['builder_link'], builder_url)
66
67+ def test_source_package_name(self):
68+ name = self.build.source_package_release.name
69+ build_url = api_url(self.build)
70+ logout()
71+ entry = self.webservice.get(build_url, api_version='devel').jsonBody()
72+ self.assertEqual(name, entry['source_package_name'])
73+
74
75 class TestPostprocessCandidate(TestCaseWithFactory):
76