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
=== modified file 'lib/lp/registry/model/distroseriesdifference.py'
--- lib/lp/registry/model/distroseriesdifference.py 2011-04-06 22:51:53 +0000
+++ lib/lp/registry/model/distroseriesdifference.py 2011-04-12 10:31:42 +0000
@@ -312,10 +312,13 @@
312 self.source_version)312 self.source_version)
313313
314 def _package_release(self, distro_series, version):314 def _package_release(self, distro_series, version):
315 statuses = (
316 PackagePublishingStatus.PUBLISHED,
317 PackagePublishingStatus.PENDING)
315 pubs = distro_series.main_archive.getPublishedSources(318 pubs = distro_series.main_archive.getPublishedSources(
316 name=self.source_package_name.name,319 name=self.source_package_name.name,
317 version=version,320 version=version,
318 status=PackagePublishingStatus.PUBLISHED,321 status=statuses,
319 distroseries=distro_series,322 distroseries=distro_series,
320 exact_match=True)323 exact_match=True)
321324
322325
=== modified file 'lib/lp/registry/tests/test_distroseriesdifference.py'
--- lib/lp/registry/tests/test_distroseriesdifference.py 2011-04-06 15:26:34 +0000
+++ lib/lp/registry/tests/test_distroseriesdifference.py 2011-04-12 10:31:42 +0000
@@ -688,6 +688,40 @@
688 self.assertEqual(None, ds_diff.package_diff_url)688 self.assertEqual(None, ds_diff.package_diff_url)
689 self.assertEqual(None, ds_diff.parent_package_diff_url)689 self.assertEqual(None, ds_diff.parent_package_diff_url)
690690
691 def test_source_package_release_pending(self):
692 # source_package_release returns the package release of version
693 # source_version with status PUBLISHED or PENDING.
694 derived_series = self.factory.makeDistroSeries(
695 parent_series=self.factory.makeDistroSeries())
696 source_package_name = self.factory.getOrMakeSourcePackageName('foo')
697 versions = {'derived': u'1.2', 'parent': u'1.3'}
698
699 ds_diff = self.factory.makeDistroSeriesDifference(
700 derived_series=derived_series,
701 source_package_name_str=source_package_name.name,
702 versions=versions)
703
704 # Create pending source package releases.
705 self.factory.makeSourcePackagePublishingHistory(
706 distroseries=derived_series,
707 version='1.4',
708 sourcepackagename=source_package_name,
709 status=PackagePublishingStatus.PENDING)
710 self.factory.makeSourcePackagePublishingHistory(
711 distroseries=derived_series.parent_series,
712 version='1.5',
713 sourcepackagename=source_package_name,
714 status=PackagePublishingStatus.PENDING)
715
716 # Manually change the diff's source_version and
717 # parent_source_version.
718 naked_ds_diff = removeSecurityProxy(ds_diff)
719 naked_ds_diff.source_version = '1.4'
720 naked_ds_diff.parent_source_version = '1.5'
721
722 self.assertEqual(ds_diff.source_package_release.version, '1.4')
723 self.assertEqual(ds_diff.parent_source_package_release.version, '1.5')
724
691725
692class DistroSeriesDifferenceLibrarianTestCase(TestCaseWithFactory):726class DistroSeriesDifferenceLibrarianTestCase(TestCaseWithFactory):
693727