Merge lp:~rvb/launchpad/link-pending-sourcepck-757713 into lp:launchpad

Proposed by Raphaël Badin
Status: Merged
Approved by: Julian Edwards
Approved revision: no longer in the source branch.
Merged at revision: 12821
Proposed branch: lp:~rvb/launchpad/link-pending-sourcepck-757713
Merge into: lp:launchpad
Diff against target: 62 lines (+38/-1)
2 files modified
lib/lp/registry/model/distroseriesdifference.py (+4/-1)
lib/lp/registry/tests/test_distroseriesdifference.py (+34/-0)
To merge this branch: bzr merge lp:~rvb/launchpad/link-pending-sourcepck-757713
Reviewer Review Type Date Requested Status
Julian Edwards (community) Approve
Review via email: mp+57300@code.launchpad.net

Commit message

[r=julian-edwards][bug=757713] DistroSeriesDifference's source_package_release and parent_source_package_release return package releases with status in (PENDING, PUBLISHED).

Description of the change

This branch fixes DistroSeriesDifference's source_package_release and parent_source_package_release so that they return package releases with status in (PENDING, PUBLISHED).

= Test =
./bin/test -cvv test_distroseriesdifference test_source_package_release_pending

= QA =
On dogfood:
    https://dogfood.launchpad.net/deribuntu/dangerous/+localpackagediffs
The "Maverick version" of 2.6-1+df1 should be a link to the pending source package page (https://dogfood.launchpad.net/ubuntu/maverick/+source/hello/2.6-1+df1).

To post a comment you must log in.
Revision history for this message
Julian Edwards (julian-edwards) :
review: Approve

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1=== modified file 'lib/lp/registry/model/distroseriesdifference.py'
2--- lib/lp/registry/model/distroseriesdifference.py 2011-04-06 22:51:53 +0000
3+++ lib/lp/registry/model/distroseriesdifference.py 2011-04-12 10:31:42 +0000
4@@ -312,10 +312,13 @@
5 self.source_version)
6
7 def _package_release(self, distro_series, version):
8+ statuses = (
9+ PackagePublishingStatus.PUBLISHED,
10+ PackagePublishingStatus.PENDING)
11 pubs = distro_series.main_archive.getPublishedSources(
12 name=self.source_package_name.name,
13 version=version,
14- status=PackagePublishingStatus.PUBLISHED,
15+ status=statuses,
16 distroseries=distro_series,
17 exact_match=True)
18
19
20=== modified file 'lib/lp/registry/tests/test_distroseriesdifference.py'
21--- lib/lp/registry/tests/test_distroseriesdifference.py 2011-04-06 15:26:34 +0000
22+++ lib/lp/registry/tests/test_distroseriesdifference.py 2011-04-12 10:31:42 +0000
23@@ -688,6 +688,40 @@
24 self.assertEqual(None, ds_diff.package_diff_url)
25 self.assertEqual(None, ds_diff.parent_package_diff_url)
26
27+ def test_source_package_release_pending(self):
28+ # source_package_release returns the package release of version
29+ # source_version with status PUBLISHED or PENDING.
30+ derived_series = self.factory.makeDistroSeries(
31+ parent_series=self.factory.makeDistroSeries())
32+ source_package_name = self.factory.getOrMakeSourcePackageName('foo')
33+ versions = {'derived': u'1.2', 'parent': u'1.3'}
34+
35+ ds_diff = self.factory.makeDistroSeriesDifference(
36+ derived_series=derived_series,
37+ source_package_name_str=source_package_name.name,
38+ versions=versions)
39+
40+ # Create pending source package releases.
41+ self.factory.makeSourcePackagePublishingHistory(
42+ distroseries=derived_series,
43+ version='1.4',
44+ sourcepackagename=source_package_name,
45+ status=PackagePublishingStatus.PENDING)
46+ self.factory.makeSourcePackagePublishingHistory(
47+ distroseries=derived_series.parent_series,
48+ version='1.5',
49+ sourcepackagename=source_package_name,
50+ status=PackagePublishingStatus.PENDING)
51+
52+ # Manually change the diff's source_version and
53+ # parent_source_version.
54+ naked_ds_diff = removeSecurityProxy(ds_diff)
55+ naked_ds_diff.source_version = '1.4'
56+ naked_ds_diff.parent_source_version = '1.5'
57+
58+ self.assertEqual(ds_diff.source_package_release.version, '1.4')
59+ self.assertEqual(ds_diff.parent_source_package_release.version, '1.5')
60+
61
62 class DistroSeriesDifferenceLibrarianTestCase(TestCaseWithFactory):
63