Merge ~cjwatson/launchpad:use-more-publishing-status-helpers into launchpad:master

Proposed by Colin Watson
Status: Merged
Approved by: Colin Watson
Approved revision: 25ba24a6562e5cc9ffd51a865570256a8d32970d
Merge reported by: Otto Co-Pilot
Merged at revision: not available
Proposed branch: ~cjwatson/launchpad:use-more-publishing-status-helpers
Merge into: launchpad:master
Diff against target: 328 lines (+42/-55)
8 files modified
lib/lp/scripts/garbo.py (+3/-4)
lib/lp/soyuz/adapters/overrides.py (+2/-4)
lib/lp/soyuz/doc/archive.txt (+18/-20)
lib/lp/soyuz/model/archive.py (+1/-2)
lib/lp/soyuz/model/distributionsourcepackagecache.py (+5/-7)
lib/lp/soyuz/model/distroseriespackagecache.py (+5/-8)
lib/lp/soyuz/scripts/initialize_distroseries.py (+2/-4)
lib/lp/soyuz/tests/test_archive.py (+6/-6)
Reviewer Review Type Date Requested Status
Ioana Lasc (community) Approve
Review via email: mp+383710@code.launchpad.net

Commit message

Use the (in)active_publishing_status helpers in more places

To post a comment you must log in.
Revision history for this message
Ioana Lasc (ilasc) :
review: Approve

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1diff --git a/lib/lp/scripts/garbo.py b/lib/lp/scripts/garbo.py
2index e5a9e07..98c4b04 100644
3--- a/lib/lp/scripts/garbo.py
4+++ b/lib/lp/scripts/garbo.py
5@@ -118,7 +118,7 @@ from lp.services.webhooks.interfaces import IWebhookJobSource
6 from lp.services.webhooks.model import WebhookJob
7 from lp.snappy.model.snapbuild import SnapFile
8 from lp.snappy.model.snapbuildjob import SnapBuildJobType
9-from lp.soyuz.enums import PackagePublishingStatus
10+from lp.soyuz.interfaces.publishing import active_publishing_status
11 from lp.soyuz.model.archive import Archive
12 from lp.soyuz.model.distributionsourcepackagecache import (
13 DistributionSourcePackageCache,
14@@ -470,9 +470,8 @@ class PopulateDistributionSourcePackageCache(TunableLoop):
15 Archive.distributionID,
16 SourcePackageName.id,
17 SourcePackageName.name),
18- SourcePackagePublishingHistory.status.is_in((
19- PackagePublishingStatus.PENDING,
20- PackagePublishingStatus.PUBLISHED)),
21+ SourcePackagePublishingHistory.status.is_in(
22+ active_publishing_status),
23 SourcePackagePublishingHistory.id > self.last_spph_id)
24 return rows.order_by(SourcePackagePublishingHistory.id)
25
26diff --git a/lib/lp/soyuz/adapters/overrides.py b/lib/lp/soyuz/adapters/overrides.py
27index 8d585f1..a8d609d 100644
28--- a/lib/lp/soyuz/adapters/overrides.py
29+++ b/lib/lp/soyuz/adapters/overrides.py
30@@ -37,6 +37,7 @@ from lp.services.database.decoratedresultset import DecoratedResultSet
31 from lp.services.database.interfaces import IStore
32 from lp.soyuz.enums import PackagePublishingStatus
33 from lp.soyuz.interfaces.component import IComponentSet
34+from lp.soyuz.interfaces.publishing import active_publishing_status
35 from lp.soyuz.model.binarypackagename import BinaryPackageName
36 from lp.soyuz.model.binarypackagerelease import BinaryPackageRelease
37 from lp.soyuz.model.component import Component
38@@ -230,10 +231,7 @@ class FromExistingOverridePolicy(BaseOverridePolicy):
39 super(FromExistingOverridePolicy, self).__init__(*args, **kwargs)
40
41 def getExistingPublishingStatuses(self, include_deleted):
42- status = [
43- PackagePublishingStatus.PENDING,
44- PackagePublishingStatus.PUBLISHED,
45- ]
46+ status = list(active_publishing_status)
47 if include_deleted:
48 status.append(PackagePublishingStatus.DELETED)
49 return status
50diff --git a/lib/lp/soyuz/doc/archive.txt b/lib/lp/soyuz/doc/archive.txt
51index 484b643..e9c2424 100644
52--- a/lib/lp/soyuz/doc/archive.txt
53+++ b/lib/lp/soyuz/doc/archive.txt
54@@ -250,12 +250,10 @@ excludes architecture-independent duplications which is necessary for
55 having correct publication counters and archive size.
56
57 >>> from lp.soyuz.enums import PackagePublishingStatus
58-
59- >>> active_status = [PackagePublishingStatus.PENDING,
60- ... PackagePublishingStatus.PUBLISHED]
61-
62- >>> inactive_status = [PackagePublishingStatus.SUPERSEDED,
63- ... PackagePublishingStatus.DELETED]
64+ >>> from lp.soyuz.interfaces.publishing import (
65+ ... active_publishing_status,
66+ ... inactive_publishing_status,
67+ ... )
68
69 >>> warty = cprov_archive.distribution['warty']
70 >>> hoary = cprov_archive.distribution['hoary']
71@@ -365,19 +363,19 @@ Both methods support 'status' filter:
72 4
73
74 >>> cprov_archive.getPublishedOnDiskBinaries(
75- ... status=active_status).count()
76+ ... status=active_publishing_status).count()
77 3
78
79 >>> cprov_archive.getAllPublishedBinaries(
80- ... status=active_status).count()
81+ ... status=active_publishing_status).count()
82 4
83
84 >>> cprov_archive.getPublishedOnDiskBinaries(
85- ... status=inactive_status).count()
86+ ... status=inactive_publishing_status).count()
87 0
88
89 >>> cprov_archive.getAllPublishedBinaries(
90- ... status=inactive_status).count()
91+ ... status=inactive_publishing_status).count()
92 0
93
94 Using 'distroarchseries' filter:
95@@ -429,44 +427,44 @@ Using 'pocket' filter:
96 Associating 'name' and 'status' filters:
97
98 >>> status_lookup = cprov_archive.getPublishedOnDiskBinaries(
99- ... name=u'pmount', status=active_status)
100+ ... name=u'pmount', status=active_publishing_status)
101 >>> status_lookup.count()
102 1
103
104 >>> status_lookup = cprov_archive.getAllPublishedBinaries(
105- ... name=u'pmount', status=active_status)
106+ ... name=u'pmount', status=active_publishing_status)
107 >>> status_lookup.count()
108 2
109
110 >>> status_lookup = cprov_archive.getPublishedOnDiskBinaries(
111- ... name=u'foo', status=active_status)
112+ ... name=u'foo', status=active_publishing_status)
113 >>> status_lookup.count()
114 0
115
116 >>> status_lookup = cprov_archive.getAllPublishedBinaries(
117- ... name=u'foo', status=active_status)
118+ ... name=u'foo', status=active_publishing_status)
119 >>> status_lookup.count()
120 0
121
122 Associating 'name', 'version' and 'status' filters:
123
124 >>> status_lookup = cprov_archive.getPublishedOnDiskBinaries(
125- ... name=u'pmount', version='0.1-1', status=active_status)
126+ ... name=u'pmount', version='0.1-1', status=active_publishing_status)
127 >>> status_lookup.count()
128 1
129
130 >>> status_lookup = cprov_archive.getAllPublishedBinaries(
131- ... name=u'pmount', version='0.1-1', status=active_status)
132+ ... name=u'pmount', version='0.1-1', status=active_publishing_status)
133 >>> status_lookup.count()
134 2
135
136 >>> status_lookup = cprov_archive.getPublishedOnDiskBinaries(
137- ... name=u'pmount', version='666', status=active_status)
138+ ... name=u'pmount', version='666', status=active_publishing_status)
139 >>> status_lookup.count()
140 0
141
142 >>> status_lookup = cprov_archive.getAllPublishedBinaries(
143- ... name=u'pmount', version='666', status=active_status)
144+ ... name=u'pmount', version='666', status=active_publishing_status)
145 >>> status_lookup.count()
146 0
147
148@@ -475,14 +473,14 @@ and 'exact_match' flag:
149
150 >>> status_lookup = cprov_archive.getAllPublishedBinaries(
151 ... name=u'pmount', version='0.1-1', distroarchseries=warty_i386,
152- ... status=active_status, exact_match=True)
153+ ... status=active_publishing_status, exact_match=True)
154 >>> status_lookup.count()
155 1
156
157 >>> status_lookup = cprov_archive.getAllPublishedBinaries(
158 ... name=u'pmount', version='0.1-1',
159 ... distroarchseries=[warty_i386, warty_hppa],
160- ... status=active_status, exact_match=True)
161+ ... status=active_publishing_status, exact_match=True)
162 >>> status_lookup.count()
163 2
164
165diff --git a/lib/lp/soyuz/model/archive.py b/lib/lp/soyuz/model/archive.py
166index 6e430ec..a693166 100644
167--- a/lib/lp/soyuz/model/archive.py
168+++ b/lib/lp/soyuz/model/archive.py
169@@ -1915,8 +1915,7 @@ class Archive(SQLBase):
170 # publication.
171 published_sources = from_archive.getPublishedSources(
172 name=name, distroseries=from_series_obj, exact_match=True,
173- status=(PackagePublishingStatus.PUBLISHED,
174- PackagePublishingStatus.PENDING))
175+ status=active_publishing_status)
176 first_source = published_sources.first()
177 if first_source is not None:
178 sources.append(first_source)
179diff --git a/lib/lp/soyuz/model/distributionsourcepackagecache.py b/lib/lp/soyuz/model/distributionsourcepackagecache.py
180index 1fe14a3..c68f71f 100644
181--- a/lib/lp/soyuz/model/distributionsourcepackagecache.py
182+++ b/lib/lp/soyuz/model/distributionsourcepackagecache.py
183@@ -23,10 +23,10 @@ from lp.services.database import bulk
184 from lp.services.database.decoratedresultset import DecoratedResultSet
185 from lp.services.database.interfaces import IStore
186 from lp.services.database.sqlbase import SQLBase
187-from lp.soyuz.enums import PackagePublishingStatus
188 from lp.soyuz.interfaces.distributionsourcepackagecache import (
189 IDistributionSourcePackageCache,
190 )
191+from lp.soyuz.interfaces.publishing import active_publishing_status
192 from lp.soyuz.model.binarypackagebuild import BinaryPackageBuild
193 from lp.soyuz.model.binarypackagename import BinaryPackageName
194 from lp.soyuz.model.binarypackagerelease import BinaryPackageRelease
195@@ -76,9 +76,8 @@ class DistributionSourcePackageCache(SQLBase):
196 spn_ids = IStore(SourcePackagePublishingHistory).find(
197 SourcePackagePublishingHistory.sourcepackagenameID,
198 SourcePackagePublishingHistory.archive == archive,
199- SourcePackagePublishingHistory.status.is_in((
200- PackagePublishingStatus.PENDING,
201- PackagePublishingStatus.PUBLISHED)))
202+ SourcePackagePublishingHistory.status.is_in(
203+ active_publishing_status))
204 return bulk.load(SourcePackageName, spn_ids.config(distinct=True))
205
206 @classmethod
207@@ -151,9 +150,8 @@ class DistributionSourcePackageCache(SQLBase):
208 SourcePackagePublishingHistory.sourcepackagenameID.is_in(
209 [spn.id for spn in sourcepackagenames]),
210 SourcePackagePublishingHistory.archive == archive,
211- SourcePackagePublishingHistory.status.is_in((
212- PackagePublishingStatus.PENDING,
213- PackagePublishingStatus.PUBLISHED))
214+ SourcePackagePublishingHistory.status.is_in(
215+ active_publishing_status),
216 ).config(distinct=True).order_by(SourcePackageRelease.id))
217 if len(all_sprs) == 0:
218 if log is not None:
219diff --git a/lib/lp/soyuz/model/distroseriespackagecache.py b/lib/lp/soyuz/model/distroseriespackagecache.py
220index cabf07e..9bccd11 100644
221--- a/lib/lp/soyuz/model/distroseriespackagecache.py
222+++ b/lib/lp/soyuz/model/distroseriespackagecache.py
223@@ -24,10 +24,10 @@ from zope.interface import implementer
224 from lp.services.database import bulk
225 from lp.services.database.interfaces import IStore
226 from lp.services.database.sqlbase import SQLBase
227-from lp.soyuz.enums import PackagePublishingStatus
228 from lp.soyuz.interfaces.distroseriespackagecache import (
229 IDistroSeriesPackageCache,
230 )
231+from lp.soyuz.interfaces.publishing import active_publishing_status
232 from lp.soyuz.model.binarypackagename import BinaryPackageName
233 from lp.soyuz.model.binarypackagerelease import BinaryPackageRelease
234 from lp.soyuz.model.distroarchseries import DistroArchSeries
235@@ -61,10 +61,8 @@ class DistroSeriesPackageCache(SQLBase):
236 DistroArchSeries.id, tables=[DistroArchSeries],
237 where=DistroArchSeries.distroseries == distroseries)),
238 BinaryPackagePublishingHistory.archive == archive,
239- BinaryPackagePublishingHistory.status.is_in((
240- PackagePublishingStatus.PENDING,
241- PackagePublishingStatus.PUBLISHED))).config(
242- distinct=True)
243+ BinaryPackagePublishingHistory.status.is_in(
244+ active_publishing_status)).config(distinct=True)
245 return bulk.load(BinaryPackageName, bpn_ids)
246
247 @classmethod
248@@ -134,9 +132,8 @@ class DistroSeriesPackageCache(SQLBase):
249 DistroArchSeries.id, tables=[DistroArchSeries],
250 where=DistroArchSeries.distroseries == distroseries)),
251 BinaryPackagePublishingHistory.archive == archive,
252- BinaryPackagePublishingHistory.status.is_in((
253- PackagePublishingStatus.PENDING,
254- PackagePublishingStatus.PUBLISHED))
255+ BinaryPackagePublishingHistory.status.is_in(
256+ active_publishing_status),
257 ).group_by(
258 BinaryPackageRelease.binarypackagenameID,
259 BinaryPackageRelease.summary,
260diff --git a/lib/lp/soyuz/scripts/initialize_distroseries.py b/lib/lp/soyuz/scripts/initialize_distroseries.py
261index 8ac2150..308ba42 100644
262--- a/lib/lp/soyuz/scripts/initialize_distroseries.py
263+++ b/lib/lp/soyuz/scripts/initialize_distroseries.py
264@@ -29,7 +29,6 @@ from lp.services.scripts import log
265 from lp.soyuz.adapters.packagelocation import PackageLocation
266 from lp.soyuz.enums import (
267 ArchivePurpose,
268- PackagePublishingStatus,
269 PackageUploadStatus,
270 )
271 from lp.soyuz.interfaces.archive import (
272@@ -45,6 +44,7 @@ from lp.soyuz.interfaces.packageset import (
273 IPackagesetSet,
274 NoSuchPackageSet,
275 )
276+from lp.soyuz.interfaces.publishing import active_publishing_status
277 from lp.soyuz.interfaces.queue import IPackageUploadSet
278 from lp.soyuz.model.binarypackagebuild import COPY_ARCHIVE_SCORE_PENALTY
279 from lp.soyuz.model.packageset import Packageset
280@@ -577,9 +577,7 @@ class InitializeDistroSeries:
281 INIT_POCKETS.items()):
282 sources = archive.getPublishedSources(
283 distroseries=parent, pocket=source_pocket,
284- status=(PackagePublishingStatus.PENDING,
285- PackagePublishingStatus.PUBLISHED),
286- name=spns)
287+ status=active_publishing_status, name=spns)
288 sources_published.extend(do_copy(
289 sources, target_archive, self.distroseries,
290 target_pocket,
291diff --git a/lib/lp/soyuz/tests/test_archive.py b/lib/lp/soyuz/tests/test_archive.py
292index 8660e70..caef680 100644
293--- a/lib/lp/soyuz/tests/test_archive.py
294+++ b/lib/lp/soyuz/tests/test_archive.py
295@@ -113,6 +113,10 @@ from lp.soyuz.interfaces.binarypackagebuild import BuildSetStatus
296 from lp.soyuz.interfaces.binarypackagename import IBinaryPackageNameSet
297 from lp.soyuz.interfaces.component import IComponentSet
298 from lp.soyuz.interfaces.packagecopyjob import IPlainPackageCopyJobSource
299+from lp.soyuz.interfaces.publishing import (
300+ active_publishing_status,
301+ inactive_publishing_status,
302+ )
303 from lp.soyuz.model.archive import (
304 Archive,
305 validate_ppa,
306@@ -2580,10 +2584,6 @@ class TestGetPublishedSources(TestCaseWithFactory):
307 # publications.
308 self.assertEqual(3, cprov_archive.getPublishedSources().count())
309 # Various filters.
310- active_status = [PackagePublishingStatus.PENDING,
311- PackagePublishingStatus.PUBLISHED]
312- inactive_status = [PackagePublishingStatus.SUPERSEDED,
313- PackagePublishingStatus.DELETED]
314 warty = cprov_archive.distribution['warty']
315 hoary = cprov_archive.distribution['hoary']
316 breezy_autotest = cprov_archive.distribution['breezy-autotest']
317@@ -2616,9 +2616,9 @@ class TestGetPublishedSources(TestCaseWithFactory):
318 self.assertEqual(3, cprov_archive.getPublishedSources(
319 status=PackagePublishingStatus.PUBLISHED).count())
320 self.assertEqual(3, cprov_archive.getPublishedSources(
321- status=active_status).count())
322+ status=active_publishing_status).count())
323 self.assertEqual(0, cprov_archive.getPublishedSources(
324- status=inactive_status).count())
325+ status=inactive_publishing_status).count())
326 self.assertEqual(2, cprov_archive.getPublishedSources(
327 distroseries=warty).count())
328 self.assertEqual(0, cprov_archive.getPublishedSources(

Subscribers

People subscribed via source and target branches

to status/vote changes: