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,
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,
1160
1168
self.assertEqual(None, record)
1171
class TestPublishingSetLite(TestCaseWithFactory):
1173
layer = ZopelessDatabaseLayer
1175
def enableDistroDerivation(self):
1176
self.useFixture(FeatureFixture({FEATURE_FLAG_ENABLE_MODULE: u'on'}))
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)
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)
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)
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)
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()
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
1226
self.enableDistroDerivation()
1227
getUtility(IPublishingSet).requestDeletion(
1228
[spph], self.factory.makePerson())
1231
1, len(find_waiting_jobs(
1232
dsp.derived_series, spn, dsp.parent_series)))
1163
1235
class TestSourceDomination(TestNativePublishingBase):
1164
1236
"""Test SourcePackagePublishingHistory.supersede() operates correctly."""