def add_architecture(distroseries, architecture_name): """Add a DistroArchSeries for the given architecture to `distroseries`.""" # Avoid circular import. from lp.soyuz.model.distroarchseries import DistroArchSeries processor = getUtility(IProcessorSet).getByName(architecture_name) archseries = DistroArchSeries( distroseries=distroseries, processor=processor, owner=distroseries.owner, official=True, architecturetag=architecture_name) IMasterStore(DistroArchSeries).add(archseries)
def ensure_archinfo(self, archtag): """Append retrived distroarchseries info to a dict.""" if archtag in self.archinfo.keys(): return # Get distroarchseries and processor from the architecturetag. dar = DistroArchSeries.selectOneBy(distroseriesID=self.distroseries.id, architecturetag=archtag) if not dar: raise DataSetupError("Error finding distroarchseries for %s/%s" % (self.distroseries.name, archtag)) processor = dar.processor info = {'distroarchseries': dar, 'processor': processor} self.archinfo[archtag] = info self.bppublishers[archtag] = BinaryPackagePublisher( dar, self.pocket, self.component_override) self.imported_bins[archtag] = []
def updatePackageCache(self): # Create package cache records for new binary packages. # # SoyuzTestPublisher.updatePackageCache() creates a # DistroSeriesPackageCache record for the new binary package. # The method closes the current DB connection, making references # to DB objects in other DB objects unusable. Starting with # the distroarchseries, we can create new, valid, instances of # objects required later in the test again. # of the objects we need later. sourcepackagename = self.sourcepackagerelease.sourcepackagename publisher = SoyuzTestPublisher() publisher.updatePackageCache(self.distroarchseries.distroseries) self.distroarchseries = DistroArchSeries.get(self.distroarchseries.id) distribution = self.distroarchseries.distroseries.distribution releases = distribution.getCurrentSourceReleases([sourcepackagename]) [(distribution_sourcepackage, dsp_release)] = releases.items() self.dsp_release = dsp_release self.sourcepackagerelease = dsp_release.sourcepackagerelease
def ensure_archinfo(self, archtag): """Append retrived distroarchseries info to a dict.""" if archtag in self.archinfo.keys(): return # Get distroarchseries and processor from the architecturetag. dar = DistroArchSeries.selectOneBy( distroseriesID=self.distroseries.id, architecturetag=archtag) if not dar: raise DataSetupError("Error finding distroarchseries for %s/%s" % (self.distroseries.name, archtag)) processor = dar.processor info = {'distroarchseries': dar, 'processor': processor} self.archinfo[archtag] = info self.bppublishers[archtag] = BinaryPackagePublisher( dar, self.pocket, self.component_override) self.imported_bins[archtag] = []
def updateDistroSeriesPackageCache(self): # Create DistroSeriesPackageCache records for new binary # packages. # # SoyuzTestPublisher.updateDistroSeriesPackageCache() creates # a DistroSeriesPackageCache record for the new binary package. # The method closes the current DB connection, making references # to DB objects in other DB objects unusable. Starting with # the distroarchseries, we can create new, valid, instances of # objects required later in the test again. # of the objects we need later. sourcepackagename = self.sourcepackagerelease.sourcepackagename publisher = SoyuzTestPublisher() publisher.updateDistroSeriesPackageCache( self.distroarchseries.distroseries) self.distroarchseries = DistroArchSeries.get(self.distroarchseries.id) distribution = self.distroarchseries.distroseries.distribution releases = distribution.getCurrentSourceReleases([sourcepackagename]) [(distribution_sourcepackage, dsp_release)] = releases.items() self.dsp_release = dsp_release self.sourcepackagerelease = dsp_release.sourcepackagerelease