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
diff --git a/lib/lp/scripts/garbo.py b/lib/lp/scripts/garbo.py
index e5a9e07..98c4b04 100644
--- a/lib/lp/scripts/garbo.py
+++ b/lib/lp/scripts/garbo.py
@@ -118,7 +118,7 @@ from lp.services.webhooks.interfaces import IWebhookJobSource
118from lp.services.webhooks.model import WebhookJob118from lp.services.webhooks.model import WebhookJob
119from lp.snappy.model.snapbuild import SnapFile119from lp.snappy.model.snapbuild import SnapFile
120from lp.snappy.model.snapbuildjob import SnapBuildJobType120from lp.snappy.model.snapbuildjob import SnapBuildJobType
121from lp.soyuz.enums import PackagePublishingStatus121from lp.soyuz.interfaces.publishing import active_publishing_status
122from lp.soyuz.model.archive import Archive122from lp.soyuz.model.archive import Archive
123from lp.soyuz.model.distributionsourcepackagecache import (123from lp.soyuz.model.distributionsourcepackagecache import (
124 DistributionSourcePackageCache,124 DistributionSourcePackageCache,
@@ -470,9 +470,8 @@ class PopulateDistributionSourcePackageCache(TunableLoop):
470 Archive.distributionID,470 Archive.distributionID,
471 SourcePackageName.id,471 SourcePackageName.id,
472 SourcePackageName.name),472 SourcePackageName.name),
473 SourcePackagePublishingHistory.status.is_in((473 SourcePackagePublishingHistory.status.is_in(
474 PackagePublishingStatus.PENDING,474 active_publishing_status),
475 PackagePublishingStatus.PUBLISHED)),
476 SourcePackagePublishingHistory.id > self.last_spph_id)475 SourcePackagePublishingHistory.id > self.last_spph_id)
477 return rows.order_by(SourcePackagePublishingHistory.id)476 return rows.order_by(SourcePackagePublishingHistory.id)
478477
diff --git a/lib/lp/soyuz/adapters/overrides.py b/lib/lp/soyuz/adapters/overrides.py
index 8d585f1..a8d609d 100644
--- a/lib/lp/soyuz/adapters/overrides.py
+++ b/lib/lp/soyuz/adapters/overrides.py
@@ -37,6 +37,7 @@ from lp.services.database.decoratedresultset import DecoratedResultSet
37from lp.services.database.interfaces import IStore37from lp.services.database.interfaces import IStore
38from lp.soyuz.enums import PackagePublishingStatus38from lp.soyuz.enums import PackagePublishingStatus
39from lp.soyuz.interfaces.component import IComponentSet39from lp.soyuz.interfaces.component import IComponentSet
40from lp.soyuz.interfaces.publishing import active_publishing_status
40from lp.soyuz.model.binarypackagename import BinaryPackageName41from lp.soyuz.model.binarypackagename import BinaryPackageName
41from lp.soyuz.model.binarypackagerelease import BinaryPackageRelease42from lp.soyuz.model.binarypackagerelease import BinaryPackageRelease
42from lp.soyuz.model.component import Component43from lp.soyuz.model.component import Component
@@ -230,10 +231,7 @@ class FromExistingOverridePolicy(BaseOverridePolicy):
230 super(FromExistingOverridePolicy, self).__init__(*args, **kwargs)231 super(FromExistingOverridePolicy, self).__init__(*args, **kwargs)
231232
232 def getExistingPublishingStatuses(self, include_deleted):233 def getExistingPublishingStatuses(self, include_deleted):
233 status = [234 status = list(active_publishing_status)
234 PackagePublishingStatus.PENDING,
235 PackagePublishingStatus.PUBLISHED,
236 ]
237 if include_deleted:235 if include_deleted:
238 status.append(PackagePublishingStatus.DELETED)236 status.append(PackagePublishingStatus.DELETED)
239 return status237 return status
diff --git a/lib/lp/soyuz/doc/archive.txt b/lib/lp/soyuz/doc/archive.txt
index 484b643..e9c2424 100644
--- a/lib/lp/soyuz/doc/archive.txt
+++ b/lib/lp/soyuz/doc/archive.txt
@@ -250,12 +250,10 @@ excludes architecture-independent duplications which is necessary for
250having correct publication counters and archive size.250having correct publication counters and archive size.
251251
252 >>> from lp.soyuz.enums import PackagePublishingStatus252 >>> from lp.soyuz.enums import PackagePublishingStatus
253253 >>> from lp.soyuz.interfaces.publishing import (
254 >>> active_status = [PackagePublishingStatus.PENDING,254 ... active_publishing_status,
255 ... PackagePublishingStatus.PUBLISHED]255 ... inactive_publishing_status,
256256 ... )
257 >>> inactive_status = [PackagePublishingStatus.SUPERSEDED,
258 ... PackagePublishingStatus.DELETED]
259257
260 >>> warty = cprov_archive.distribution['warty']258 >>> warty = cprov_archive.distribution['warty']
261 >>> hoary = cprov_archive.distribution['hoary']259 >>> hoary = cprov_archive.distribution['hoary']
@@ -365,19 +363,19 @@ Both methods support 'status' filter:
365 4363 4
366364
367 >>> cprov_archive.getPublishedOnDiskBinaries(365 >>> cprov_archive.getPublishedOnDiskBinaries(
368 ... status=active_status).count()366 ... status=active_publishing_status).count()
369 3367 3
370368
371 >>> cprov_archive.getAllPublishedBinaries(369 >>> cprov_archive.getAllPublishedBinaries(
372 ... status=active_status).count()370 ... status=active_publishing_status).count()
373 4371 4
374372
375 >>> cprov_archive.getPublishedOnDiskBinaries(373 >>> cprov_archive.getPublishedOnDiskBinaries(
376 ... status=inactive_status).count()374 ... status=inactive_publishing_status).count()
377 0375 0
378376
379 >>> cprov_archive.getAllPublishedBinaries(377 >>> cprov_archive.getAllPublishedBinaries(
380 ... status=inactive_status).count()378 ... status=inactive_publishing_status).count()
381 0379 0
382380
383Using 'distroarchseries' filter:381Using 'distroarchseries' filter:
@@ -429,44 +427,44 @@ Using 'pocket' filter:
429Associating 'name' and 'status' filters:427Associating 'name' and 'status' filters:
430428
431 >>> status_lookup = cprov_archive.getPublishedOnDiskBinaries(429 >>> status_lookup = cprov_archive.getPublishedOnDiskBinaries(
432 ... name=u'pmount', status=active_status)430 ... name=u'pmount', status=active_publishing_status)
433 >>> status_lookup.count()431 >>> status_lookup.count()
434 1432 1
435433
436 >>> status_lookup = cprov_archive.getAllPublishedBinaries(434 >>> status_lookup = cprov_archive.getAllPublishedBinaries(
437 ... name=u'pmount', status=active_status)435 ... name=u'pmount', status=active_publishing_status)
438 >>> status_lookup.count()436 >>> status_lookup.count()
439 2437 2
440438
441 >>> status_lookup = cprov_archive.getPublishedOnDiskBinaries(439 >>> status_lookup = cprov_archive.getPublishedOnDiskBinaries(
442 ... name=u'foo', status=active_status)440 ... name=u'foo', status=active_publishing_status)
443 >>> status_lookup.count()441 >>> status_lookup.count()
444 0442 0
445443
446 >>> status_lookup = cprov_archive.getAllPublishedBinaries(444 >>> status_lookup = cprov_archive.getAllPublishedBinaries(
447 ... name=u'foo', status=active_status)445 ... name=u'foo', status=active_publishing_status)
448 >>> status_lookup.count()446 >>> status_lookup.count()
449 0447 0
450448
451Associating 'name', 'version' and 'status' filters:449Associating 'name', 'version' and 'status' filters:
452450
453 >>> status_lookup = cprov_archive.getPublishedOnDiskBinaries(451 >>> status_lookup = cprov_archive.getPublishedOnDiskBinaries(
454 ... name=u'pmount', version='0.1-1', status=active_status)452 ... name=u'pmount', version='0.1-1', status=active_publishing_status)
455 >>> status_lookup.count()453 >>> status_lookup.count()
456 1454 1
457455
458 >>> status_lookup = cprov_archive.getAllPublishedBinaries(456 >>> status_lookup = cprov_archive.getAllPublishedBinaries(
459 ... name=u'pmount', version='0.1-1', status=active_status)457 ... name=u'pmount', version='0.1-1', status=active_publishing_status)
460 >>> status_lookup.count()458 >>> status_lookup.count()
461 2459 2
462460
463 >>> status_lookup = cprov_archive.getPublishedOnDiskBinaries(461 >>> status_lookup = cprov_archive.getPublishedOnDiskBinaries(
464 ... name=u'pmount', version='666', status=active_status)462 ... name=u'pmount', version='666', status=active_publishing_status)
465 >>> status_lookup.count()463 >>> status_lookup.count()
466 0464 0
467465
468 >>> status_lookup = cprov_archive.getAllPublishedBinaries(466 >>> status_lookup = cprov_archive.getAllPublishedBinaries(
469 ... name=u'pmount', version='666', status=active_status)467 ... name=u'pmount', version='666', status=active_publishing_status)
470 >>> status_lookup.count()468 >>> status_lookup.count()
471 0469 0
472470
@@ -475,14 +473,14 @@ and 'exact_match' flag:
475473
476 >>> status_lookup = cprov_archive.getAllPublishedBinaries(474 >>> status_lookup = cprov_archive.getAllPublishedBinaries(
477 ... name=u'pmount', version='0.1-1', distroarchseries=warty_i386,475 ... name=u'pmount', version='0.1-1', distroarchseries=warty_i386,
478 ... status=active_status, exact_match=True)476 ... status=active_publishing_status, exact_match=True)
479 >>> status_lookup.count()477 >>> status_lookup.count()
480 1478 1
481479
482 >>> status_lookup = cprov_archive.getAllPublishedBinaries(480 >>> status_lookup = cprov_archive.getAllPublishedBinaries(
483 ... name=u'pmount', version='0.1-1',481 ... name=u'pmount', version='0.1-1',
484 ... distroarchseries=[warty_i386, warty_hppa],482 ... distroarchseries=[warty_i386, warty_hppa],
485 ... status=active_status, exact_match=True)483 ... status=active_publishing_status, exact_match=True)
486 >>> status_lookup.count()484 >>> status_lookup.count()
487 2485 2
488486
diff --git a/lib/lp/soyuz/model/archive.py b/lib/lp/soyuz/model/archive.py
index 6e430ec..a693166 100644
--- a/lib/lp/soyuz/model/archive.py
+++ b/lib/lp/soyuz/model/archive.py
@@ -1915,8 +1915,7 @@ class Archive(SQLBase):
1915 # publication.1915 # publication.
1916 published_sources = from_archive.getPublishedSources(1916 published_sources = from_archive.getPublishedSources(
1917 name=name, distroseries=from_series_obj, exact_match=True,1917 name=name, distroseries=from_series_obj, exact_match=True,
1918 status=(PackagePublishingStatus.PUBLISHED,1918 status=active_publishing_status)
1919 PackagePublishingStatus.PENDING))
1920 first_source = published_sources.first()1919 first_source = published_sources.first()
1921 if first_source is not None:1920 if first_source is not None:
1922 sources.append(first_source)1921 sources.append(first_source)
diff --git a/lib/lp/soyuz/model/distributionsourcepackagecache.py b/lib/lp/soyuz/model/distributionsourcepackagecache.py
index 1fe14a3..c68f71f 100644
--- a/lib/lp/soyuz/model/distributionsourcepackagecache.py
+++ b/lib/lp/soyuz/model/distributionsourcepackagecache.py
@@ -23,10 +23,10 @@ from lp.services.database import bulk
23from lp.services.database.decoratedresultset import DecoratedResultSet23from lp.services.database.decoratedresultset import DecoratedResultSet
24from lp.services.database.interfaces import IStore24from lp.services.database.interfaces import IStore
25from lp.services.database.sqlbase import SQLBase25from lp.services.database.sqlbase import SQLBase
26from lp.soyuz.enums import PackagePublishingStatus
27from lp.soyuz.interfaces.distributionsourcepackagecache import (26from lp.soyuz.interfaces.distributionsourcepackagecache import (
28 IDistributionSourcePackageCache,27 IDistributionSourcePackageCache,
29 )28 )
29from lp.soyuz.interfaces.publishing import active_publishing_status
30from lp.soyuz.model.binarypackagebuild import BinaryPackageBuild30from lp.soyuz.model.binarypackagebuild import BinaryPackageBuild
31from lp.soyuz.model.binarypackagename import BinaryPackageName31from lp.soyuz.model.binarypackagename import BinaryPackageName
32from lp.soyuz.model.binarypackagerelease import BinaryPackageRelease32from lp.soyuz.model.binarypackagerelease import BinaryPackageRelease
@@ -76,9 +76,8 @@ class DistributionSourcePackageCache(SQLBase):
76 spn_ids = IStore(SourcePackagePublishingHistory).find(76 spn_ids = IStore(SourcePackagePublishingHistory).find(
77 SourcePackagePublishingHistory.sourcepackagenameID,77 SourcePackagePublishingHistory.sourcepackagenameID,
78 SourcePackagePublishingHistory.archive == archive,78 SourcePackagePublishingHistory.archive == archive,
79 SourcePackagePublishingHistory.status.is_in((79 SourcePackagePublishingHistory.status.is_in(
80 PackagePublishingStatus.PENDING,80 active_publishing_status))
81 PackagePublishingStatus.PUBLISHED)))
82 return bulk.load(SourcePackageName, spn_ids.config(distinct=True))81 return bulk.load(SourcePackageName, spn_ids.config(distinct=True))
8382
84 @classmethod83 @classmethod
@@ -151,9 +150,8 @@ class DistributionSourcePackageCache(SQLBase):
151 SourcePackagePublishingHistory.sourcepackagenameID.is_in(150 SourcePackagePublishingHistory.sourcepackagenameID.is_in(
152 [spn.id for spn in sourcepackagenames]),151 [spn.id for spn in sourcepackagenames]),
153 SourcePackagePublishingHistory.archive == archive,152 SourcePackagePublishingHistory.archive == archive,
154 SourcePackagePublishingHistory.status.is_in((153 SourcePackagePublishingHistory.status.is_in(
155 PackagePublishingStatus.PENDING,154 active_publishing_status),
156 PackagePublishingStatus.PUBLISHED))
157 ).config(distinct=True).order_by(SourcePackageRelease.id))155 ).config(distinct=True).order_by(SourcePackageRelease.id))
158 if len(all_sprs) == 0:156 if len(all_sprs) == 0:
159 if log is not None:157 if log is not None:
diff --git a/lib/lp/soyuz/model/distroseriespackagecache.py b/lib/lp/soyuz/model/distroseriespackagecache.py
index cabf07e..9bccd11 100644
--- a/lib/lp/soyuz/model/distroseriespackagecache.py
+++ b/lib/lp/soyuz/model/distroseriespackagecache.py
@@ -24,10 +24,10 @@ from zope.interface import implementer
24from lp.services.database import bulk24from lp.services.database import bulk
25from lp.services.database.interfaces import IStore25from lp.services.database.interfaces import IStore
26from lp.services.database.sqlbase import SQLBase26from lp.services.database.sqlbase import SQLBase
27from lp.soyuz.enums import PackagePublishingStatus
28from lp.soyuz.interfaces.distroseriespackagecache import (27from lp.soyuz.interfaces.distroseriespackagecache import (
29 IDistroSeriesPackageCache,28 IDistroSeriesPackageCache,
30 )29 )
30from lp.soyuz.interfaces.publishing import active_publishing_status
31from lp.soyuz.model.binarypackagename import BinaryPackageName31from lp.soyuz.model.binarypackagename import BinaryPackageName
32from lp.soyuz.model.binarypackagerelease import BinaryPackageRelease32from lp.soyuz.model.binarypackagerelease import BinaryPackageRelease
33from lp.soyuz.model.distroarchseries import DistroArchSeries33from lp.soyuz.model.distroarchseries import DistroArchSeries
@@ -61,10 +61,8 @@ class DistroSeriesPackageCache(SQLBase):
61 DistroArchSeries.id, tables=[DistroArchSeries],61 DistroArchSeries.id, tables=[DistroArchSeries],
62 where=DistroArchSeries.distroseries == distroseries)),62 where=DistroArchSeries.distroseries == distroseries)),
63 BinaryPackagePublishingHistory.archive == archive,63 BinaryPackagePublishingHistory.archive == archive,
64 BinaryPackagePublishingHistory.status.is_in((64 BinaryPackagePublishingHistory.status.is_in(
65 PackagePublishingStatus.PENDING,65 active_publishing_status)).config(distinct=True)
66 PackagePublishingStatus.PUBLISHED))).config(
67 distinct=True)
68 return bulk.load(BinaryPackageName, bpn_ids)66 return bulk.load(BinaryPackageName, bpn_ids)
6967
70 @classmethod68 @classmethod
@@ -134,9 +132,8 @@ class DistroSeriesPackageCache(SQLBase):
134 DistroArchSeries.id, tables=[DistroArchSeries],132 DistroArchSeries.id, tables=[DistroArchSeries],
135 where=DistroArchSeries.distroseries == distroseries)),133 where=DistroArchSeries.distroseries == distroseries)),
136 BinaryPackagePublishingHistory.archive == archive,134 BinaryPackagePublishingHistory.archive == archive,
137 BinaryPackagePublishingHistory.status.is_in((135 BinaryPackagePublishingHistory.status.is_in(
138 PackagePublishingStatus.PENDING,136 active_publishing_status),
139 PackagePublishingStatus.PUBLISHED))
140 ).group_by(137 ).group_by(
141 BinaryPackageRelease.binarypackagenameID,138 BinaryPackageRelease.binarypackagenameID,
142 BinaryPackageRelease.summary,139 BinaryPackageRelease.summary,
diff --git a/lib/lp/soyuz/scripts/initialize_distroseries.py b/lib/lp/soyuz/scripts/initialize_distroseries.py
index 8ac2150..308ba42 100644
--- a/lib/lp/soyuz/scripts/initialize_distroseries.py
+++ b/lib/lp/soyuz/scripts/initialize_distroseries.py
@@ -29,7 +29,6 @@ from lp.services.scripts import log
29from lp.soyuz.adapters.packagelocation import PackageLocation29from lp.soyuz.adapters.packagelocation import PackageLocation
30from lp.soyuz.enums import (30from lp.soyuz.enums import (
31 ArchivePurpose,31 ArchivePurpose,
32 PackagePublishingStatus,
33 PackageUploadStatus,32 PackageUploadStatus,
34 )33 )
35from lp.soyuz.interfaces.archive import (34from lp.soyuz.interfaces.archive import (
@@ -45,6 +44,7 @@ from lp.soyuz.interfaces.packageset import (
45 IPackagesetSet,44 IPackagesetSet,
46 NoSuchPackageSet,45 NoSuchPackageSet,
47 )46 )
47from lp.soyuz.interfaces.publishing import active_publishing_status
48from lp.soyuz.interfaces.queue import IPackageUploadSet48from lp.soyuz.interfaces.queue import IPackageUploadSet
49from lp.soyuz.model.binarypackagebuild import COPY_ARCHIVE_SCORE_PENALTY49from lp.soyuz.model.binarypackagebuild import COPY_ARCHIVE_SCORE_PENALTY
50from lp.soyuz.model.packageset import Packageset50from lp.soyuz.model.packageset import Packageset
@@ -577,9 +577,7 @@ class InitializeDistroSeries:
577 INIT_POCKETS.items()):577 INIT_POCKETS.items()):
578 sources = archive.getPublishedSources(578 sources = archive.getPublishedSources(
579 distroseries=parent, pocket=source_pocket,579 distroseries=parent, pocket=source_pocket,
580 status=(PackagePublishingStatus.PENDING,580 status=active_publishing_status, name=spns)
581 PackagePublishingStatus.PUBLISHED),
582 name=spns)
583 sources_published.extend(do_copy(581 sources_published.extend(do_copy(
584 sources, target_archive, self.distroseries,582 sources, target_archive, self.distroseries,
585 target_pocket,583 target_pocket,
diff --git a/lib/lp/soyuz/tests/test_archive.py b/lib/lp/soyuz/tests/test_archive.py
index 8660e70..caef680 100644
--- a/lib/lp/soyuz/tests/test_archive.py
+++ b/lib/lp/soyuz/tests/test_archive.py
@@ -113,6 +113,10 @@ from lp.soyuz.interfaces.binarypackagebuild import BuildSetStatus
113from lp.soyuz.interfaces.binarypackagename import IBinaryPackageNameSet113from lp.soyuz.interfaces.binarypackagename import IBinaryPackageNameSet
114from lp.soyuz.interfaces.component import IComponentSet114from lp.soyuz.interfaces.component import IComponentSet
115from lp.soyuz.interfaces.packagecopyjob import IPlainPackageCopyJobSource115from lp.soyuz.interfaces.packagecopyjob import IPlainPackageCopyJobSource
116from lp.soyuz.interfaces.publishing import (
117 active_publishing_status,
118 inactive_publishing_status,
119 )
116from lp.soyuz.model.archive import (120from lp.soyuz.model.archive import (
117 Archive,121 Archive,
118 validate_ppa,122 validate_ppa,
@@ -2580,10 +2584,6 @@ class TestGetPublishedSources(TestCaseWithFactory):
2580 # publications.2584 # publications.
2581 self.assertEqual(3, cprov_archive.getPublishedSources().count())2585 self.assertEqual(3, cprov_archive.getPublishedSources().count())
2582 # Various filters.2586 # Various filters.
2583 active_status = [PackagePublishingStatus.PENDING,
2584 PackagePublishingStatus.PUBLISHED]
2585 inactive_status = [PackagePublishingStatus.SUPERSEDED,
2586 PackagePublishingStatus.DELETED]
2587 warty = cprov_archive.distribution['warty']2587 warty = cprov_archive.distribution['warty']
2588 hoary = cprov_archive.distribution['hoary']2588 hoary = cprov_archive.distribution['hoary']
2589 breezy_autotest = cprov_archive.distribution['breezy-autotest']2589 breezy_autotest = cprov_archive.distribution['breezy-autotest']
@@ -2616,9 +2616,9 @@ class TestGetPublishedSources(TestCaseWithFactory):
2616 self.assertEqual(3, cprov_archive.getPublishedSources(2616 self.assertEqual(3, cprov_archive.getPublishedSources(
2617 status=PackagePublishingStatus.PUBLISHED).count())2617 status=PackagePublishingStatus.PUBLISHED).count())
2618 self.assertEqual(3, cprov_archive.getPublishedSources(2618 self.assertEqual(3, cprov_archive.getPublishedSources(
2619 status=active_status).count())2619 status=active_publishing_status).count())
2620 self.assertEqual(0, cprov_archive.getPublishedSources(2620 self.assertEqual(0, cprov_archive.getPublishedSources(
2621 status=inactive_status).count())2621 status=inactive_publishing_status).count())
2622 self.assertEqual(2, cprov_archive.getPublishedSources(2622 self.assertEqual(2, cprov_archive.getPublishedSources(
2623 distroseries=warty).count())2623 distroseries=warty).count())
2624 self.assertEqual(0, cprov_archive.getPublishedSources(2624 self.assertEqual(0, cprov_archive.getPublishedSources(

Subscribers

People subscribed via source and target branches

to status/vote changes: