def test_ubuntu_override_policy_sources(self): # The Ubuntu policy incorporates both the existing and the unknown # policy. universe = getUtility(IComponentSet)['universe'] spns = [self.factory.makeSourcePackageName()] expected = [SourceOverride(spns[0], universe, None)] distroseries = self.factory.makeDistroSeries() pocket = self.factory.getAnyPocket() for i in xrange(8): spph = self.factory.makeSourcePackagePublishingHistory( distroseries=distroseries, archive=distroseries.main_archive, pocket=pocket) spns.append(spph.sourcepackagerelease.sourcepackagename) expected.append( SourceOverride( spph.sourcepackagerelease.sourcepackagename, spph.component, spph.section)) spns.append(self.factory.makeSourcePackageName()) expected.append(SourceOverride(spns[-1], universe, None)) policy = UbuntuOverridePolicy() overrides = policy.calculateSourceOverrides( distroseries.main_archive, distroseries, pocket, spns) self.assertEqual(10, len(overrides)) sorted_expected = sorted( expected, key=attrgetter("source_package_name.name")) sorted_overrides = sorted( overrides, key=attrgetter("source_package_name.name")) self.assertEqual(sorted_expected, sorted_overrides)
def test_ubuntu_override_policy_binaries(self): # The Ubuntu policy incorporates both the existing and the unknown # policy. universe = getUtility(IComponentSet)['universe'] distroseries = self.factory.makeDistroSeries() pocket = self.factory.getAnyPocket() bpn = self.factory.makeBinaryPackageName() bpns = [] expected = [] for i in xrange(3): distroarchseries = self.factory.makeDistroArchSeries( distroseries=distroseries) bpb = self.factory.makeBinaryPackageBuild( distroarchseries=distroarchseries) bpr = self.factory.makeBinaryPackageRelease( build=bpb, binarypackagename=bpn, architecturespecific=True) bpph = self.factory.makeBinaryPackagePublishingHistory( binarypackagerelease=bpr, distroarchseries=distroarchseries, archive=distroseries.main_archive, pocket=pocket) bpns.append((bpn, distroarchseries.architecturetag)) expected.append( BinaryOverride( bpn, distroarchseries, bpph.component, bpph.section, bpph.priority, None)) for i in xrange(2): distroarchseries = self.factory.makeDistroArchSeries( distroseries=distroseries) bpns.append((bpn, distroarchseries.architecturetag)) expected.append( BinaryOverride( bpn, distroarchseries, universe, None, None, None)) distroseries.nominatedarchindep = distroarchseries policy = UbuntuOverridePolicy() overrides = policy.calculateBinaryOverrides( distroseries.main_archive, distroseries, pocket, bpns) self.assertEqual(5, len(overrides)) key = attrgetter("binary_package_name.name", "distro_arch_series.architecturetag", "component.name") sorted_expected = sorted(expected, key=key) sorted_overrides = sorted(overrides, key=key) self.assertEqual(sorted_expected, sorted_overrides)
def test_phased_update_percentage(self): # A policy with a phased_update_percentage applies it to new binary # overrides. universe = getUtility(IComponentSet)['universe'] distroseries = self.factory.makeDistroSeries() pocket = self.factory.getAnyPocket() bpn = self.factory.makeBinaryPackageName() bpns = [] expected = [] distroarchseries = self.factory.makeDistroArchSeries( distroseries=distroseries) bpb = self.factory.makeBinaryPackageBuild( distroarchseries=distroarchseries) bpr = self.factory.makeBinaryPackageRelease( build=bpb, binarypackagename=bpn, architecturespecific=True) bpph = self.factory.makeBinaryPackagePublishingHistory( binarypackagerelease=bpr, distroarchseries=distroarchseries, archive=distroseries.main_archive, pocket=pocket) bpns.append((bpn, distroarchseries.architecturetag)) expected.append( BinaryOverride( bpn, distroarchseries, bpph.component, bpph.section, bpph.priority, 50)) distroarchseries = self.factory.makeDistroArchSeries( distroseries=distroseries) bpns.append((bpn, distroarchseries.architecturetag)) expected.append( BinaryOverride(bpn, distroarchseries, universe, None, None, 50)) distroseries.nominatedarchindep = distroarchseries policy = UbuntuOverridePolicy(phased_update_percentage=50) overrides = policy.calculateBinaryOverrides( distroseries.main_archive, distroseries, pocket, bpns) self.assertEqual(2, len(overrides)) key = attrgetter("binary_package_name.name", "distro_arch_series.architecturetag", "component.name") sorted_expected = sorted(expected, key=key) sorted_overrides = sorted(overrides, key=key) self.assertEqual(sorted_expected, sorted_overrides)