def test_delete(self): # `delete` ensures that there is no branch associated with that # sourcepackage and pocket. branch = self.factory.makePackageBranch() package = branch.sourcepackage SeriesSourcePackageBranchSet.new( package.distroseries, PackagePublishingPocket.RELEASE, package.sourcepackagename, branch, self.factory.makePerson()) SeriesSourcePackageBranchSet.delete( package, PackagePublishingPocket.RELEASE) find_branch_links = getUtility(IFindOfficialBranchLinks) self.assertEqual( [], list(find_branch_links.findForSourcePackage(package)))
def test_delete(self): # `delete` ensures that there is no branch associated with that # sourcepackage and pocket. branch = self.factory.makePackageBranch() package = branch.sourcepackage SeriesSourcePackageBranchSet.new(package.distroseries, PackagePublishingPocket.RELEASE, package.sourcepackagename, branch, self.factory.makePerson()) SeriesSourcePackageBranchSet.delete(package, PackagePublishingPocket.RELEASE) find_branch_links = getUtility(IFindOfficialBranchLinks) self.assertEqual([], list(find_branch_links.findForSourcePackage(package)))
def setBranch(self, pocket, branch, registrant): """See `ISourcePackage`.""" SeriesSourcePackageBranchSet.delete(self, pocket) if branch is not None: SeriesSourcePackageBranchSet.new(self.distroseries, pocket, self.sourcepackagename, branch, registrant) # Avoid circular imports. from lp.registry.model.distributionsourcepackage import ( DistributionSourcePackage, ) DistributionSourcePackage.ensure(sourcepackage=self) else: # Delete the official DSP if there is no publishing history. self.distribution_sourcepackage.delete()
class TestSeriesSourcePackageBranchSet(TestCaseWithFactory): """Tests for `SeriesSourcePackageBranchSet`.""" layer = DatabaseFunctionalLayer def setUp(self): TestCaseWithFactory.setUp(self) self.link_set = SeriesSourcePackageBranchSet() def makeLinkedPackageBranch(self, distribution, sourcepackagename): """Make a new package branch and make it official.""" return make_linked_package_branch(self.factory, distribution, sourcepackagename) def test_findForDistributionSourcePackage(self): # Make sure that the find method finds official links for all distro # series for the distribution source package. distro_source_package = self.factory.makeDistributionSourcePackage() distribution = distro_source_package.distribution sourcepackagename = distro_source_package.sourcepackagename # Make two package branches in different series of the same distro. b1 = self.makeLinkedPackageBranch(distribution, sourcepackagename) b2 = self.makeLinkedPackageBranch(distribution, sourcepackagename) # Make one more on same source package on different distro. self.makeLinkedPackageBranch(None, sourcepackagename) # Make one more on different source package, same different distro. self.makeLinkedPackageBranch(distribution, None) # And one more unrelated linked package branch. self.makeLinkedPackageBranch(None, None) links = self.link_set.findForDistributionSourcePackage( distro_source_package) self.assertEqual(sorted([b1, b2]), sorted([link.branch for link in links])) def test_delete(self): # SeriesSourcePackageBranchSet.delete removes the link between a # particular branch and a (distro_series, pocket, sourcepackagename) # tupled. distro_series = self.factory.makeDistroSeries() sourcepackagename = self.factory.makeSourcePackageName() sourcepackage = self.factory.makeSourcePackage( sourcepackagename=sourcepackagename, distroseries=distro_series) branch_release = self.factory.makePackageBranch( distroseries=distro_series, sourcepackagename=sourcepackagename) branch_updates = self.factory.makePackageBranch( distroseries=distro_series, sourcepackagename=sourcepackagename) self.link_set.new(distro_series, PackagePublishingPocket.RELEASE, sourcepackagename, branch_release, branch_release.owner) self.link_set.new(distro_series, PackagePublishingPocket.UPDATES, sourcepackagename, branch_updates, branch_updates.owner) self.link_set.delete(sourcepackage, PackagePublishingPocket.UPDATES) links = self.link_set.findForSourcePackage(sourcepackage) self.assertEqual(sorted([branch_release]), sorted([link.branch for link in links]))
class TestSeriesSourcePackageBranchSet(TestCaseWithFactory): """Tests for `SeriesSourcePackageBranchSet`.""" layer = DatabaseFunctionalLayer def setUp(self): TestCaseWithFactory.setUp(self) self.link_set = SeriesSourcePackageBranchSet() def makeLinkedPackageBranch(self, distribution, sourcepackagename): """Make a new package branch and make it official.""" return make_linked_package_branch( self.factory, distribution, sourcepackagename) def test_findForDistributionSourcePackage(self): # Make sure that the find method finds official links for all distro # series for the distribution source package. distro_source_package = self.factory.makeDistributionSourcePackage() distribution = distro_source_package.distribution sourcepackagename = distro_source_package.sourcepackagename # Make two package branches in different series of the same distro. b1 = self.makeLinkedPackageBranch(distribution, sourcepackagename) b2 = self.makeLinkedPackageBranch(distribution, sourcepackagename) # Make one more on same source package on different distro. self.makeLinkedPackageBranch(None, sourcepackagename) # Make one more on different source package, same different distro. self.makeLinkedPackageBranch(distribution, None) # And one more unrelated linked package branch. self.makeLinkedPackageBranch(None, None) links = self.link_set.findForDistributionSourcePackage( distro_source_package) self.assertEqual( sorted([b1, b2]), sorted([link.branch for link in links])) def test_delete(self): # SeriesSourcePackageBranchSet.delete removes the link between a # particular branch and a (distro_series, pocket, sourcepackagename) # tupled. distro_series = self.factory.makeDistroSeries() sourcepackagename = self.factory.makeSourcePackageName() sourcepackage = self.factory.makeSourcePackage( sourcepackagename=sourcepackagename, distroseries=distro_series) branch_release = self.factory.makePackageBranch( distroseries=distro_series, sourcepackagename=sourcepackagename) branch_updates = self.factory.makePackageBranch( distroseries=distro_series, sourcepackagename=sourcepackagename) self.link_set.new( distro_series, PackagePublishingPocket.RELEASE, sourcepackagename, branch_release, branch_release.owner) self.link_set.new( distro_series, PackagePublishingPocket.UPDATES, sourcepackagename, branch_updates, branch_updates.owner) self.link_set.delete(sourcepackage, PackagePublishingPocket.UPDATES) links = self.link_set.findForSourcePackage(sourcepackage) self.assertEqual( sorted([branch_release]), sorted([link.branch for link in links]))