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.updatePackageCache(source_pub.distroseries) # updatePackageCache 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.updatePackageCache(test_data['distroseries']) # updatePackageCache reconnects the db, so the objects need to be # reloaded. distroseries = getUtility(IDistroSeriesSet).get(distroseries_id) return distroseries.getSourcePackage(source_package_name)
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