Merge lp:~julian-edwards/launchpad/init-superseded-bug-824532 into lp:launchpad

Proposed by Julian Edwards
Status: Merged
Approved by: Julian Edwards
Approved revision: not available
Merged at revision: 13682
Proposed branch: lp:~julian-edwards/launchpad/init-superseded-bug-824532
Merge into: lp:launchpad
Diff against target: 62 lines (+34/-0)
2 files modified
lib/lp/soyuz/scripts/initialize_distroseries.py (+3/-0)
lib/lp/soyuz/scripts/tests/test_initialize_distroseries.py (+31/-0)
To merge this branch: bzr merge lp:~julian-edwards/launchpad/init-superseded-bug-824532
Reviewer Review Type Date Requested Status
Julian Edwards (community) Approve
Review via email: mp+71350@code.launchpad.net

Commit message

[r=julian-edwards][bug=824532] Don't copy superseded sources from the parent series when initializing a new distroseries.

Description of the change

Distroseries initialization is erroneously copying superseded sources from the parent. This branch fixes that.

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/soyuz/scripts/initialize_distroseries.py'
2--- lib/lp/soyuz/scripts/initialize_distroseries.py 2011-08-05 03:58:16 +0000
3+++ lib/lp/soyuz/scripts/initialize_distroseries.py 2011-08-12 12:57:04 +0000
4@@ -26,6 +26,7 @@
5 from lp.soyuz.adapters.packagelocation import PackageLocation
6 from lp.soyuz.enums import (
7 ArchivePurpose,
8+ PackagePublishingStatus,
9 PackageUploadStatus,
10 )
11 from lp.soyuz.interfaces.archive import (
12@@ -438,6 +439,8 @@
13 PackagePublishingPocket.SECURITY)
14 sources = archive.getPublishedSources(
15 distroseries=parent, pocket=pockets_to_copy,
16+ status=(PackagePublishingStatus.PENDING,
17+ PackagePublishingStatus.PUBLISHED),
18 name=spns)
19 # XXX: rvb 2011-06-23 bug=801112: do_copy is atomic (all
20 # or none of the sources will be copied). This might
21
22=== modified file 'lib/lp/soyuz/scripts/tests/test_initialize_distroseries.py'
23--- lib/lp/soyuz/scripts/tests/test_initialize_distroseries.py 2011-08-09 08:28:56 +0000
24+++ lib/lp/soyuz/scripts/tests/test_initialize_distroseries.py 2011-08-12 12:57:04 +0000
25@@ -203,6 +203,37 @@
26 self.assertDistroSeriesInitializedCorrectly(
27 child, self.parent, self.parent_das)
28
29+ def test_do_not_copy_superseded_sources(self):
30+ # Make sure we don't copy superseded sources from the parent,
31+ # we only want (pending, published).
32+ self.parent, self.parent_das = self.setupParent()
33+ # Add 2 more sources, pending and superseded.
34+ superseded = self.factory.makeSourcePackagePublishingHistory(
35+ distroseries=self.parent,
36+ pocket=PackagePublishingPocket.RELEASE,
37+ status=PackagePublishingStatus.SUPERSEDED)
38+ superseded_source_name = (
39+ superseded.sourcepackagerelease.sourcepackagename.name)
40+ pending = self.factory.makeSourcePackagePublishingHistory(
41+ distroseries=self.parent,
42+ pocket=PackagePublishingPocket.RELEASE,
43+ status=PackagePublishingStatus.PENDING)
44+ pending_source_name = (
45+ pending.sourcepackagerelease.sourcepackagename.name)
46+ child = self._fullInitialize([self.parent])
47+
48+ # Check the superseded source is not copied.
49+ superseded_child_sources = child.main_archive.getPublishedSources(
50+ name=superseded_source_name, distroseries=child,
51+ exact_match=True)
52+ self.assertEqual(0, superseded_child_sources.count())
53+
54+ # Check the pending source is copied.
55+ pending_child_sources = child.main_archive.getPublishedSources(
56+ name=pending_source_name, distroseries=child,
57+ exact_match=True)
58+ self.assertEqual(1, pending_child_sources.count())
59+
60 def test_failure_with_queue_items(self):
61 # If the parent series has items in its queues, such as NEW and
62 # UNAPPROVED, we can't initialize.