Merge ~cjwatson/launchpad:use-more-publishing-status-helpers into launchpad:master
- Git
- lp:~cjwatson/launchpad
- use-more-publishing-status-helpers
- Merge into 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) |
Related bugs: |
Reviewer | Review Type | Date Requested | Status |
---|---|---|---|
Ioana Lasc (community) | Approve | ||
Review via email: mp+383710@code.launchpad.net |
Commit message
Use the (in)active_
Description of the change
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
1 | diff --git a/lib/lp/scripts/garbo.py b/lib/lp/scripts/garbo.py |
2 | index 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 | |
26 | diff --git a/lib/lp/soyuz/adapters/overrides.py b/lib/lp/soyuz/adapters/overrides.py |
27 | index 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 |
50 | diff --git a/lib/lp/soyuz/doc/archive.txt b/lib/lp/soyuz/doc/archive.txt |
51 | index 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 | |
165 | diff --git a/lib/lp/soyuz/model/archive.py b/lib/lp/soyuz/model/archive.py |
166 | index 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) |
179 | diff --git a/lib/lp/soyuz/model/distributionsourcepackagecache.py b/lib/lp/soyuz/model/distributionsourcepackagecache.py |
180 | index 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: |
219 | diff --git a/lib/lp/soyuz/model/distroseriespackagecache.py b/lib/lp/soyuz/model/distroseriespackagecache.py |
220 | index 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, |
260 | diff --git a/lib/lp/soyuz/scripts/initialize_distroseries.py b/lib/lp/soyuz/scripts/initialize_distroseries.py |
261 | index 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, |
291 | diff --git a/lib/lp/soyuz/tests/test_archive.py b/lib/lp/soyuz/tests/test_archive.py |
292 | index 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( |