def addSummaryToDifference(self, distro_series_difference): """Helper that adds binaries with summary info to the source pubs.""" # Avoid circular import. from lp.soyuz.tests.test_publishing import SoyuzTestPublisher distro_series = distro_series_difference.derived_series parent_series = distro_series_difference.parent_series source_package_name_str = ( distro_series_difference.source_package_name.name) stp = SoyuzTestPublisher() if distro_series_difference.difference_type == ( DistroSeriesDifferenceType.MISSING_FROM_DERIVED_SERIES): source_pub = distro_series_difference.parent_source_pub else: source_pub = distro_series_difference.source_pub stp.makeSourcePackageSummaryData(source_pub) stp.updateDistroSeriesPackageCache(source_pub.distroseries) # updateDistroSeriesPackageCache reconnects the db, so the # objects need to be reloaded. dsd_source = getUtility(IDistroSeriesDifferenceSource) ds_diff = dsd_source.getByDistroSeriesNameAndParentSeries( distro_series, source_package_name_str, parent_series) return ds_diff
def _makePublishedSourcePackage(self): test_publisher = SoyuzTestPublisher() test_data = test_publisher.makeSourcePackageSummaryData() source_package_name = test_data["source_package"].sourcepackagename.name distroseries_id = test_data["distroseries"].id test_publisher.updateDistroSeriesPackageCache(test_data["distroseries"]) # updateDistroSeriesPackageCache reconnects the db, so the # objects need to be reloaded. distroseries = getUtility(IDistroSeriesSet).get(distroseries_id) return distroseries.getSourcePackage(source_package_name)
def _makePublishedSourcePackage(self): test_publisher = SoyuzTestPublisher() test_data = test_publisher.makeSourcePackageSummaryData() source_package_name = ( test_data['source_package'].sourcepackagename.name) distroseries_id = test_data['distroseries'].id test_publisher.updateDistroSeriesPackageCache( test_data['distroseries']) # updateDistroSeriesPackageCache reconnects the db, so the # objects need to be reloaded. distroseries = getUtility(IDistroSeriesSet).get(distroseries_id) return distroseries.getSourcePackage(source_package_name)
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