~launchpad-pqm/launchpad/devel

« back to all changes in this revision

Viewing changes to lib/lp/soyuz/tests/test_publishing.py

  • Committer: Jelmer Vernooij
  • Date: 2011-09-01 10:58:21 UTC
  • mfrom: (13843 devel)
  • mto: This revision was merged to the branch mainline in revision 13845.
  • Revision ID: jelmer@canonical.com-20110901105821-ny0sc6lh77ps0ljm
Merge devel.

Show diffs side-by-side

added added

removed removed

Lines of Context:
25
25
    DatabaseFunctionalLayer,
26
26
    LaunchpadZopelessLayer,
27
27
    reconnect_stores,
 
28
    ZopelessDatabaseLayer,
28
29
    )
29
30
from lp.app.errors import NotFoundError
30
31
from lp.archivepublisher.config import getPubConfig
36
37
from lp.registry.interfaces.pocket import PackagePublishingPocket
37
38
from lp.registry.interfaces.sourcepackage import SourcePackageUrgency
38
39
from lp.registry.interfaces.sourcepackagename import ISourcePackageNameSet
 
40
from lp.services.features.testing import FeatureFixture
39
41
from lp.services.log.logger import DevNullLogger
40
42
from lp.soyuz.adapters.overrides import UnknownOverridePolicy
41
43
from lp.soyuz.enums import (
54
56
    )
55
57
from lp.soyuz.interfaces.queue import QueueInconsistentStateError
56
58
from lp.soyuz.interfaces.section import ISectionSet
 
59
from lp.soyuz.model.distroseriesdifferencejob import (
 
60
    FEATURE_FLAG_ENABLE_MODULE,
 
61
    find_waiting_jobs,
 
62
    )
 
63
from lp.soyuz.model.distroseriespackagecache import DistroSeriesPackageCache
57
64
from lp.soyuz.model.processor import ProcessorFamily
58
65
from lp.soyuz.model.publishing import (
59
66
    BinaryPackagePublishingHistory,
556
563
        reconnect_stores(config.statistician.dbuser)
557
564
        distroseries = getUtility(IDistroSeriesSet).get(distroseries.id)
558
565
 
559
 
        distroseries.updateCompletePackageCache(
 
566
        DistroSeriesPackageCache.updateAll(
 
567
            distroseries,
560
568
            archive=distroseries.distribution.main_archive,
561
569
            ztm=transaction,
562
570
            log=DevNullLogger())
1160
1168
        self.assertEqual(None, record)
1161
1169
 
1162
1170
 
 
1171
class TestPublishingSetLite(TestCaseWithFactory):
 
1172
 
 
1173
    layer = ZopelessDatabaseLayer
 
1174
 
 
1175
    def enableDistroDerivation(self):
 
1176
        self.useFixture(FeatureFixture({FEATURE_FLAG_ENABLE_MODULE: u'on'}))
 
1177
 
 
1178
    def test_requestDeletion_marks_SPPHs_deleted(self):
 
1179
        spph = self.factory.makeSourcePackagePublishingHistory()
 
1180
        getUtility(IPublishingSet).requestDeletion(
 
1181
            [spph], self.factory.makePerson())
 
1182
        # XXX JeroenVermeulen 2011-08-25, bug=834388: obviate commit.
 
1183
        transaction.commit()
 
1184
        self.assertEqual(PackagePublishingStatus.DELETED, spph.status)
 
1185
 
 
1186
    def test_requestDeletion_leaves_other_SPPHs_alone(self):
 
1187
        spph = self.factory.makeSourcePackagePublishingHistory()
 
1188
        other_spph = self.factory.makeSourcePackagePublishingHistory()
 
1189
        getUtility(IPublishingSet).requestDeletion(
 
1190
            [other_spph], self.factory.makePerson())
 
1191
        # XXX JeroenVermeulen 2011-08-25, bug=834388: obviate commit.
 
1192
        transaction.commit()
 
1193
        self.assertEqual(PackagePublishingStatus.PENDING, spph.status)
 
1194
 
 
1195
    def test_requestDeletion_marks_attached_BPPHs_deleted(self):
 
1196
        bpph = self.factory.makeBinaryPackagePublishingHistory()
 
1197
        spph = self.factory.makeSPPHForBPPH(bpph)
 
1198
        getUtility(IPublishingSet).requestDeletion(
 
1199
            [spph], self.factory.makePerson())
 
1200
        # XXX JeroenVermeulen 2011-08-25, bug=834388: obviate commit.
 
1201
        transaction.commit()
 
1202
        self.assertEqual(PackagePublishingStatus.DELETED, spph.status)
 
1203
 
 
1204
    def test_requestDeletion_leaves_other_BPPHs_alone(self):
 
1205
        bpph = self.factory.makeBinaryPackagePublishingHistory()
 
1206
        unrelated_spph = self.factory.makeSourcePackagePublishingHistory()
 
1207
        getUtility(IPublishingSet).requestDeletion(
 
1208
            [unrelated_spph], self.factory.makePerson())
 
1209
        # XXX JeroenVermeulen 2011-08-25, bug=834388: obviate commit.
 
1210
        transaction.commit()
 
1211
        self.assertEqual(PackagePublishingStatus.PENDING, bpph.status)
 
1212
 
 
1213
    def test_requestDeletion_accepts_empty_sources_list(self):
 
1214
        person = self.factory.makePerson()
 
1215
        getUtility(IPublishingSet).requestDeletion([], person)
 
1216
        # The test is that this does not fail.
 
1217
        Store.of(person).flush()
 
1218
 
 
1219
    def test_requestDeletion_creates_DistroSeriesDifferenceJobs(self):
 
1220
        dsp = self.factory.makeDistroSeriesParent()
 
1221
        series = dsp.derived_series
 
1222
        spph = self.factory.makeSourcePackagePublishingHistory(
 
1223
            series, pocket=PackagePublishingPocket.RELEASE)
 
1224
        spn = spph.sourcepackagerelease.sourcepackagename
 
1225
 
 
1226
        self.enableDistroDerivation()
 
1227
        getUtility(IPublishingSet).requestDeletion(
 
1228
            [spph], self.factory.makePerson())
 
1229
 
 
1230
        self.assertEqual(
 
1231
            1, len(find_waiting_jobs(
 
1232
                dsp.derived_series, spn, dsp.parent_series)))
 
1233
 
 
1234
 
1163
1235
class TestSourceDomination(TestNativePublishingBase):
1164
1236
    """Test SourcePackagePublishingHistory.supersede() operates correctly."""
1165
1237