launchpad-reviewers team mailing list archive
-
launchpad-reviewers team
-
Mailing list archive
-
Message #02203
[Merge] lp:~wgrant/launchpad/no-lucilleconfig-distroseries into lp:launchpad
William Grant has proposed merging lp:~wgrant/launchpad/no-lucilleconfig-distroseries into lp:launchpad.
Requested reviews:
Launchpad code reviewers (launchpad-reviewers)
A continuation of my anti-lucilleconfig tirade from lp:~wgrant/launchpad/no-lucilleconfig-stayofexecution, this branch obsoletes DistroSeries.lucilleconfig entirely.
Formerly used also to determine publishing components, DistroSeries.lucilleconfig now only determines whether a series will be published at all. But this restriction was put in place only to stop the publisher crashing when it couldn't find the series' lucilleconfig, so it is obsolete.
Most of lp.archivepublisher.config.Config has been removed, and the publisher has been adjusted to iterate over the Distribution's serieses, not the Config's. The one remaining use of lp.archivepublisher.tests.util is gone, so I've removed the module.
--
https://code.launchpad.net/~wgrant/launchpad/no-lucilleconfig-distroseries/+merge/44178
Your team Launchpad code reviewers is requested to review the proposed merge of lp:~wgrant/launchpad/no-lucilleconfig-distroseries into lp:launchpad.
=== modified file 'lib/lp/archivepublisher/config.py'
--- lib/lp/archivepublisher/config.py 2010-10-17 12:26:56 +0000
+++ lib/lp/archivepublisher/config.py 2010-12-19 23:04:18 +0000
@@ -6,9 +6,7 @@
# to managing the archive publisher's configuration as stored in the
# distribution and distroseries tables
-from ConfigParser import ConfigParser
import os
-from StringIO import StringIO
from canonical.config import config
from lp.soyuz.enums import ArchivePurpose
@@ -24,11 +22,11 @@
modified according local context, it basically fixes the archive
paths to cope with non-primary and PPA archives publication workflow.
"""
- pubconf = Config(archive.distribution)
+ pubconf = Config()
ppa_config = config.personalpackagearchive
pubconf.temproot = os.path.join(
- config.archivepublisher.root, '%s-temp' % pubconf.distroName)
+ config.archivepublisher.root, '%s-temp' % archive.distribution.name)
if archive.is_ppa:
if archive.private:
@@ -95,49 +93,8 @@
how the database stores configuration then the publisher will not
need to be re-coded to cope"""
- def __init__(self, distribution):
- """Initialise the configuration"""
- self.distroName = distribution.name.encode('utf-8')
- self._distroseries = {}
- if not distribution.lucilleconfig:
- raise LucilleConfigError(
- 'No Lucille config section for %s' % distribution.name)
-
- for dr in distribution:
- distroseries_name = dr.name.encode('utf-8')
- config_segment = {}
-
- if dr.lucilleconfig:
- strio = StringIO(dr.lucilleconfig.encode('utf-8'))
- config_segment["config"] = ConfigParser()
- config_segment["config"].readfp(strio)
- strio.close()
-
- self._distroseries[distroseries_name] = config_segment
-
- strio = StringIO(distribution.lucilleconfig.encode('utf-8'))
- self._distroconfig = ConfigParser()
- self._distroconfig.readfp(strio)
- strio.close()
-
- def distroSeriesNames(self):
- # Because dicts iterate for keys only; this works to get dr names
- return self._distroseries.keys()
-
- def series(self, dr):
- try:
- return self._distroseries[dr]
- except KeyError:
- raise LucilleConfigError(
- 'No Lucille config section for %s in %s' %
- (dr, self.distroName))
-
def setupArchiveDirs(self):
- """Create missing required directories in archive.
-
- For PPA publication path are overriden after instantiation
- and empty locations should not be considered for creation.
- """
+ """Create missing required directories in archive."""
required_directories = [
self.distroroot,
self.poolroot,
=== modified file 'lib/lp/archivepublisher/ftparchive.py'
--- lib/lp/archivepublisher/ftparchive.py 2010-11-09 08:43:34 +0000
+++ lib/lp/archivepublisher/ftparchive.py 2010-12-19 23:04:18 +0000
@@ -146,14 +146,6 @@
self._config = config
self._diskpool = diskpool
self.distro = distro
- self.distroseries = []
- for distroseries in self.distro.series:
- if not distroseries.name in self._config.distroSeriesNames():
- self.log.warning("Distroseries %s in %s doesn't have "
- "a lucille configuration.", distroseries.name,
- self.distro.name)
- else:
- self.distroseries.append(distroseries)
self.publisher = publisher
# We need somewhere to note down where the debian-installer
@@ -195,7 +187,7 @@
We do this to have Packages or Sources for them even if we lack
anything in them currently.
"""
- for distroseries in self.distroseries:
+ for distroseries in self.distro.series:
components = [
comp.name for comp in
self.publisher.archive.getComponentsForSeries(distroseries)]
@@ -358,7 +350,7 @@
def generateOverrides(self, fullpublish=False):
"""Collect packages that need overrides, and generate them."""
- for distroseries in self.distroseries:
+ for distroseries in self.distro.series:
for pocket in PackagePublishingPocket.items:
if not fullpublish:
if not self.publisher.isDirty(distroseries, pocket):
@@ -624,7 +616,7 @@
def generateFileLists(self, fullpublish=False):
"""Collect currently published FilePublishings and write filelists."""
- for distroseries in self.distroseries:
+ for distroseries in self.distro.series:
for pocket in PackagePublishingPocket.items:
if not fullpublish:
if not self.publisher.isDirty(distroseries, pocket):
@@ -750,14 +742,13 @@
# confixtext now contains a basic header. Add a dists entry for
# each of the distroseries we've touched
- for distroseries_name in self._config.distroSeriesNames():
- distroseries = self.distro[distroseries_name]
+ for distroseries in self.distro.series:
for pocket in PackagePublishingPocket.items:
if not fullpublish:
if not self.publisher.isDirty(distroseries, pocket):
self.log.debug("Skipping a-f stanza for %s/%s" %
- (distroseries_name, pocket.name))
+ (distroseries.name, pocket.name))
continue
self.publisher.checkDirtySuiteBeforePublishing(
distroseries, pocket)
=== modified file 'lib/lp/archivepublisher/tests/apt-data/apt.conf'
--- lib/lp/archivepublisher/tests/apt-data/apt.conf 2010-10-14 23:14:00 +0000
+++ lib/lp/archivepublisher/tests/apt-data/apt.conf 2010-12-19 23:04:18 +0000
@@ -22,81 +22,6 @@
};
-tree "dists/breezy-autotest"
-{
- FileList "/var/tmp/archive/ubuntutest-overrides/breezy-autotest_$(SECTION)_binary-$(ARCH)";
- SourceFileList "/var/tmp/archive/ubuntutest-overrides/breezy-autotest_$(SECTION)_source";
- Sections "main restricted universe multiverse";
- Architectures "source";
- BinOverride "override.breezy-autotest.$(SECTION)";
- SrcOverride "override.breezy-autotest.$(SECTION).src";
- ExtraOverride "override.breezy-autotest.extra.$(SECTION)";
- Packages::Extensions ".deb";
- BinCacheDB "packages-$(ARCH).db";
- Contents " ";
-}
-
-
-tree "dists/breezy-autotest-security"
-{
- FileList "/var/tmp/archive/ubuntutest-overrides/breezy-autotest-security_$(SECTION)_binary-$(ARCH)";
- SourceFileList "/var/tmp/archive/ubuntutest-overrides/breezy-autotest-security_$(SECTION)_source";
- Sections "main restricted universe multiverse";
- Architectures "source";
- BinOverride "override.breezy-autotest-security.$(SECTION)";
- SrcOverride "override.breezy-autotest-security.$(SECTION).src";
- ExtraOverride "override.breezy-autotest-security.extra.$(SECTION)";
- Packages::Extensions ".deb";
- BinCacheDB "packages-$(ARCH).db";
- Contents " ";
-}
-
-
-tree "dists/breezy-autotest-updates"
-{
- FileList "/var/tmp/archive/ubuntutest-overrides/breezy-autotest-updates_$(SECTION)_binary-$(ARCH)";
- SourceFileList "/var/tmp/archive/ubuntutest-overrides/breezy-autotest-updates_$(SECTION)_source";
- Sections "main restricted universe multiverse";
- Architectures "source";
- BinOverride "override.breezy-autotest-updates.$(SECTION)";
- SrcOverride "override.breezy-autotest-updates.$(SECTION).src";
- ExtraOverride "override.breezy-autotest-updates.extra.$(SECTION)";
- Packages::Extensions ".deb";
- BinCacheDB "packages-$(ARCH).db";
- Contents " ";
-}
-
-
-tree "dists/breezy-autotest-proposed"
-{
- FileList "/var/tmp/archive/ubuntutest-overrides/breezy-autotest-proposed_$(SECTION)_binary-$(ARCH)";
- SourceFileList "/var/tmp/archive/ubuntutest-overrides/breezy-autotest-proposed_$(SECTION)_source";
- Sections "main restricted universe multiverse";
- Architectures "source";
- BinOverride "override.breezy-autotest-proposed.$(SECTION)";
- SrcOverride "override.breezy-autotest-proposed.$(SECTION).src";
- ExtraOverride "override.breezy-autotest-proposed.extra.$(SECTION)";
- Packages::Extensions ".deb";
- BinCacheDB "packages-$(ARCH).db";
- Contents " ";
-}
-
-
-tree "dists/breezy-autotest-backports"
-{
- FileList "/var/tmp/archive/ubuntutest-overrides/breezy-autotest-backports_$(SECTION)_binary-$(ARCH)";
- SourceFileList "/var/tmp/archive/ubuntutest-overrides/breezy-autotest-backports_$(SECTION)_source";
- Sections "main restricted universe multiverse";
- Architectures "source";
- BinOverride "override.breezy-autotest-backports.$(SECTION)";
- SrcOverride "override.breezy-autotest-backports.$(SECTION).src";
- ExtraOverride "override.breezy-autotest-backports.extra.$(SECTION)";
- Packages::Extensions ".deb";
- BinCacheDB "packages-$(ARCH).db";
- Contents " ";
-}
-
-
tree "dists/hoary-test"
{
FileList "/var/tmp/archive/ubuntutest-overrides/hoary-test_$(SECTION)_binary-$(ARCH)";
@@ -231,3 +156,78 @@
Contents " ";
}
+
+tree "dists/breezy-autotest"
+{
+ FileList "/var/tmp/archive/ubuntutest-overrides/breezy-autotest_$(SECTION)_binary-$(ARCH)";
+ SourceFileList "/var/tmp/archive/ubuntutest-overrides/breezy-autotest_$(SECTION)_source";
+ Sections "main restricted universe multiverse";
+ Architectures "source";
+ BinOverride "override.breezy-autotest.$(SECTION)";
+ SrcOverride "override.breezy-autotest.$(SECTION).src";
+ ExtraOverride "override.breezy-autotest.extra.$(SECTION)";
+ Packages::Extensions ".deb";
+ BinCacheDB "packages-$(ARCH).db";
+ Contents " ";
+}
+
+
+tree "dists/breezy-autotest-security"
+{
+ FileList "/var/tmp/archive/ubuntutest-overrides/breezy-autotest-security_$(SECTION)_binary-$(ARCH)";
+ SourceFileList "/var/tmp/archive/ubuntutest-overrides/breezy-autotest-security_$(SECTION)_source";
+ Sections "main restricted universe multiverse";
+ Architectures "source";
+ BinOverride "override.breezy-autotest-security.$(SECTION)";
+ SrcOverride "override.breezy-autotest-security.$(SECTION).src";
+ ExtraOverride "override.breezy-autotest-security.extra.$(SECTION)";
+ Packages::Extensions ".deb";
+ BinCacheDB "packages-$(ARCH).db";
+ Contents " ";
+}
+
+
+tree "dists/breezy-autotest-updates"
+{
+ FileList "/var/tmp/archive/ubuntutest-overrides/breezy-autotest-updates_$(SECTION)_binary-$(ARCH)";
+ SourceFileList "/var/tmp/archive/ubuntutest-overrides/breezy-autotest-updates_$(SECTION)_source";
+ Sections "main restricted universe multiverse";
+ Architectures "source";
+ BinOverride "override.breezy-autotest-updates.$(SECTION)";
+ SrcOverride "override.breezy-autotest-updates.$(SECTION).src";
+ ExtraOverride "override.breezy-autotest-updates.extra.$(SECTION)";
+ Packages::Extensions ".deb";
+ BinCacheDB "packages-$(ARCH).db";
+ Contents " ";
+}
+
+
+tree "dists/breezy-autotest-proposed"
+{
+ FileList "/var/tmp/archive/ubuntutest-overrides/breezy-autotest-proposed_$(SECTION)_binary-$(ARCH)";
+ SourceFileList "/var/tmp/archive/ubuntutest-overrides/breezy-autotest-proposed_$(SECTION)_source";
+ Sections "main restricted universe multiverse";
+ Architectures "source";
+ BinOverride "override.breezy-autotest-proposed.$(SECTION)";
+ SrcOverride "override.breezy-autotest-proposed.$(SECTION).src";
+ ExtraOverride "override.breezy-autotest-proposed.extra.$(SECTION)";
+ Packages::Extensions ".deb";
+ BinCacheDB "packages-$(ARCH).db";
+ Contents " ";
+}
+
+
+tree "dists/breezy-autotest-backports"
+{
+ FileList "/var/tmp/archive/ubuntutest-overrides/breezy-autotest-backports_$(SECTION)_binary-$(ARCH)";
+ SourceFileList "/var/tmp/archive/ubuntutest-overrides/breezy-autotest-backports_$(SECTION)_source";
+ Sections "main restricted universe multiverse";
+ Architectures "source";
+ BinOverride "override.breezy-autotest-backports.$(SECTION)";
+ SrcOverride "override.breezy-autotest-backports.$(SECTION).src";
+ ExtraOverride "override.breezy-autotest-backports.extra.$(SECTION)";
+ Packages::Extensions ".deb";
+ BinCacheDB "packages-$(ARCH).db";
+ Contents " ";
+}
+
=== modified file 'lib/lp/archivepublisher/tests/publisher-config.txt'
--- lib/lp/archivepublisher/tests/publisher-config.txt 2010-10-17 12:26:56 +0000
+++ lib/lp/archivepublisher/tests/publisher-config.txt 2010-12-19 23:04:18 +0000
@@ -20,8 +20,6 @@
>>> def dump_config(config):
... for attr_name in config_attributes:
... print '%s: %s' % (attr_name, getattr(config, attr_name))
- ... for distroseries_name in sorted(config.distroSeriesNames()):
- ... print '%s' % distroseries_name
== Primary ==
@@ -41,8 +39,6 @@
cacheroot: /var/tmp/archive/ubuntutest-cache
miscroot: /var/tmp/archive/ubuntutest-misc
temproot: /var/tmp/archive/ubuntutest-temp
- breezy-autotest
- hoary-test
== PPAs ==
@@ -85,8 +81,6 @@
cacheroot: None
miscroot: None
temproot: /var/tmp/archive/ubuntutest-temp
- breezy-autotest
- hoary-test
There is a separate location for private PPAs that is used if the
archive is marked as private:
@@ -115,8 +109,6 @@
cacheroot: None
miscroot: None
temproot: /var/tmp/archive/ubuntutest-temp
- breezy-autotest
- hoary-test
== Partner ==
@@ -140,8 +132,6 @@
cacheroot: None
miscroot: None
temproot: /var/tmp/archive/ubuntutest-temp
- breezy-autotest
- hoary-test
== DEBUG ==
@@ -166,8 +156,6 @@
cacheroot: None
miscroot: None
temproot: /var/tmp/archive/ubuntutest-temp
- breezy-autotest
- hoary-test
== COPY ==
@@ -190,5 +178,3 @@
cacheroot: /var/tmp/archive/ubuntutest-rebuildtest99/ubuntutest-cache
miscroot: /var/tmp/archive/ubuntutest-rebuildtest99/ubuntutest-misc
temproot: /var/tmp/archive/ubuntutest-rebuildtest99/ubuntutest-temp
- breezy-autotest
- hoary-test
=== removed file 'lib/lp/archivepublisher/tests/test_config.py'
--- lib/lp/archivepublisher/tests/test_config.py 2010-12-19 03:48:38 +0000
+++ lib/lp/archivepublisher/tests/test_config.py 1970-01-01 00:00:00 +0000
@@ -1,52 +0,0 @@
-# Copyright 2009-2010 Canonical Ltd. This software is licensed under the
-# GNU Affero General Public License version 3 (see the file LICENSE).
-
-"""Tests for Config.py"""
-
-__metaclass__ = type
-
-from zope.component import getUtility
-
-from canonical.config import config
-from canonical.testing.layers import LaunchpadZopelessLayer
-from lp.archivepublisher.config import (
- Config,
- LucilleConfigError,
- )
-from lp.registry.interfaces.distribution import IDistributionSet
-from lp.testing import TestCaseWithFactory
-
-
-class TestConfig(TestCaseWithFactory):
- layer = LaunchpadZopelessLayer
-
- def setUp(self):
- super(TestConfig, self).setUp()
- self.layer.switchDbUser(config.archivepublisher.dbuser)
- self.ubuntutest = getUtility(IDistributionSet)['ubuntutest']
-
- def testMissingDistroSeries(self):
- distroseries = self.factory.makeDistroSeries(
- distribution=self.ubuntutest, name="somename")
- d = Config(self.ubuntutest)
- dsns = d.distroSeriesNames()
- self.assertEquals(len(dsns), 2)
- self.assertEquals(dsns[0], "breezy-autotest")
- self.assertEquals(dsns[1], "hoary-test")
-
- def testInstantiate(self):
- """Config should instantiate"""
- d = Config(self.ubuntutest)
-
- def testDistroName(self):
- """Config should be able to return the distroName"""
- d = Config(self.ubuntutest)
- self.assertEqual(d.distroName, "ubuntutest")
-
- def testDistroSeriesNames(self):
- """Config should return two distroseries names"""
- d = Config(self.ubuntutest)
- dsns = d.distroSeriesNames()
- self.assertEquals(len(dsns), 2)
- self.assertEquals(dsns[0], "breezy-autotest")
- self.assertEquals(dsns[1], "hoary-test")
=== modified file 'lib/lp/archivepublisher/tests/test_ftparchive.py'
--- lib/lp/archivepublisher/tests/test_ftparchive.py 2010-12-18 00:14:32 +0000
+++ lib/lp/archivepublisher/tests/test_ftparchive.py 2010-12-19 23:04:18 +0000
@@ -125,19 +125,6 @@
self._publisher)
return fa
- def test_NoLucilleConfig(self):
- # Distroseries without a lucille configuration get ignored
- # and trigger a warning, they don't break the publisher
- logger = BufferLogger()
- publisher = Publisher(
- logger, self._config, self._dp, self._archive)
- self.factory.makeDistroSeries(self._distribution, name="somename")
- fa = FTPArchiveHandler(logger, self._config, self._dp,
- self._distribution, publisher)
- fa.createEmptyPocketRequests(fullpublish=True)
- self.assertEquals("WARNING: Distroseries somename in ubuntutest doesn't "
- "have a lucille configuration.\n", logger.buffer.getvalue())
-
def test_getSourcesForOverrides(self):
# getSourcesForOverrides returns a list of tuples containing:
# (sourcename, suite, component, section)
=== modified file 'lib/lp/archivepublisher/tests/test_pool.py'
--- lib/lp/archivepublisher/tests/test_pool.py 2010-08-20 20:31:18 +0000
+++ lib/lp/archivepublisher/tests/test_pool.py 2010-12-19 23:04:18 +0000
@@ -11,11 +11,11 @@
from tempfile import mkdtemp
import unittest
+from canonical.launchpad.scripts.logger import QuietFakeLogger
from lp.archivepublisher.diskpool import (
DiskPool,
poolify,
)
-from lp.archivepublisher.tests.util import FakeLogger
class MockFile:
@@ -82,7 +82,8 @@
def setUp(self):
self.pool_path = mkdtemp()
self.temp_path = mkdtemp()
- self.pool = DiskPool(self.pool_path, self.temp_path, FakeLogger())
+ self.pool = DiskPool(
+ self.pool_path, self.temp_path, QuietFakeLogger())
def tearDown(self):
shutil.rmtree(self.pool_path)
=== removed file 'lib/lp/archivepublisher/tests/util.py'
--- lib/lp/archivepublisher/tests/util.py 2010-10-21 04:19:36 +0000
+++ lib/lp/archivepublisher/tests/util.py 1970-01-01 00:00:00 +0000
@@ -1,261 +0,0 @@
-# Copyright 2009 Canonical Ltd. This software is licensed under the
-# GNU Affero General Public License version 3 (see the file LICENSE).
-
-"""Utilities to aid testing archivepublisher."""
-
-__metaclass__ = type
-
-# Utility functions/classes for testing the archive publisher.
-
-from lp.archivepublisher.tests import datadir
-from lp.registry.interfaces.pocket import PackagePublishingPocket
-from lp.registry.interfaces.series import SeriesStatus
-
-
-__all__ = ['FakeLogger']
-
-
-class FakeLogger:
-
- def debug(self, *args, **kwargs):
- pass
-
- def error(self, *args, **kwargs):
- pass
-
-
-class FakeDistribution:
-
- def __init__(self, name, conf):
- self.name = name.decode('utf-8')
- self.lucilleconfig = conf.decode('utf-8')
- self.series = []
-
- def registerSeries(self, series):
- self.series.append(series)
-
- def __getitem__(self, name):
- for series in self.series:
- if series.name == name:
- return series
- return None
-
-
-class FakeDistroSeries:
-
- def __init__(self, name, conf, distro):
- self.name = name.decode('utf-8')
- self.lucilleconfig = conf.decode('utf-8')
- self.distribution = distro
- self.architectures = [FakeDistroArchSeries(self, "i386"),
- FakeDistroArchSeries(self, "powerpc")]
- self.status = SeriesStatus.DEVELOPMENT
- self.distribution.registerSeries(self)
-
-
-class FakeDistroArchSeries:
-
- def __init__(self, series, archtag):
- self.distroseries = series
- self.architecturetag = archtag
-
-
-class FakeSource:
-
- def __init__(self, version, status, name=""):
- self.version = version.decode('utf-8')
- self.status = status
- self.datepublished = None
- self.sourcepackagename = name.decode('utf-8')
-
- def _deepCopy(self):
- return FakeSource(
- self.version.encode('utf-8'),
- self.status,
- self.sourcepackagename.encode('utf-8'))
-
-
-class FakeBinary:
-
- def __init__(self, version, status, name=""):
- self.version = version.decode('utf-8')
- self.status = status
- self.datepublished = None
- self.packagename = name.decode('utf-8')
-
- def _deepCopy(self):
- return FakeBinary(
- self.version.encode('utf-8'),
- self.status,
- self.packagename.encode('utf-8'))
-
-
-class FakeSourcePublishing:
- """Mocks a SourcePackagePublishingHistory object."""
- id = 1
-
- def __init__(self, source, component, alias, section, ds):
-
- class Dummy:
- id = 1
-
- self.sourcepackagerelease = Dummy()
- self.sourcepackagerelease.name = source
- self.component = Dummy()
- self.component.name = component
- self.libraryfilealias = alias
- self.section = Dummy()
- self.section.name = section
- self.distroseries = Dummy()
- self.distroseries.name = ds
- self.pocket = PackagePublishingPocket.RELEASE
-
- def _deepCopy(self):
- return FakeSourcePublishing(
- self.sourcepackage.name,
- self.component.name,
- self.libraryfilealias,
- self.section.name,
- self.distroseries.name,
- )
-
-
-class FakeBinaryPublishing:
- """Mocks a BinaryPackagePublishingHistory object."""
- id = 1
-
- def __init__(self, binary, source, component, alias,
- section, ds, prio, archtag):
-
- class Dummy:
- id = 1
-
- self.binarypackagerelease = Dummy()
- self.binarypackagerelease.name = source
- self.sourcepackagerelease = Dummy()
- self.sourcepackagerelease.name = source
- self.binarypackage = Dummy()
- self.binarypackage.name = source
- self.component = Dummy()
- self.component.name = component
- self.section = Dummy()
- self.section.name = section
- self.distroarchseries = Dummy()
- self.distroarchseries.distroseries = Dummy()
- self.distroarchseries.distroseries.name = ds
- self.libraryfilealias = alias
- self.priority = prio
- self.architecturetag = archtag
- self.pocket = PackagePublishingPocket.RELEASE
-
- def _deepCopy(self):
- return FakeBinaryPublishing(
- self.binarypackagerelease.name,
- self.sourcepackagerelease.name,
- self.component.name,
- self.libraryfilealias,
- self.section.name,
- self.distroseries.name,
- self.priority,
- self.architecturetag,
- )
-
-
-class FakeSourceFilePublishing:
- """Mocks a SourcePackageFilePublishing object."""
-
- def __init__(self, source, component, leafname, alias, section, ds):
- self.sourcepackagename = source
- self.componentname = component
- self.libraryfilealiasfilename = leafname
- self.libraryfilealias = alias
- self.sectionname = section
- self.distroseriesname = ds
- self.pocket = PackagePublishingPocket.RELEASE
-
- def _deepCopy(self):
- return FakeSourceFilePublishing(
- self.sourcepackagename,
- self.componentname,
- self.libraryfilealiasfilename,
- self.libraryfilealias,
- self.sectionname,
- self.distroseriesname,
- )
-
-
-class FakeBinaryFilePublishing:
- """Mocks a BinaryPackageFilePublishing object."""
-
- def __init__(self, source, component, leafname, alias, section,
- ds, archtag):
- self.sourcepackagename = source
- self.componentname = component
- self.libraryfilealiasfilename = leafname
- self.libraryfilealias = alias
- self.sectionname = section
- self.distroseriesname = ds
- self.architecturetag = archtag
- self.pocket = PackagePublishingPocket.RELEASE
-
- def _deepCopy(self):
- return FakeBinaryFilePublishing(
- self.sourcepackagename,
- self.componentname,
- self.libraryfilealiasfilename,
- self.libraryfilealias,
- self.sectionname,
- self.distroseriesname,
- self.architecturetag,
- )
-
-sentinel = object()
-
-
-def _deepCopy(thing):
- if type(thing) == dict:
- ret = {}
- for key in thing:
- ret[key] = _deepCopy(thing[key])
- return ret
- if type(thing) == list:
- ret = []
- for val in thing:
- ret.append(_deepCopy(val))
- return ret
- if type(thing) == tuple:
- ret = []
- for val in thing:
- ret.append(_deepCopy(val))
- return tuple(ret)
- if getattr(thing, "_deepCopy", sentinel) != sentinel:
- return thing._deepCopy()
- return thing # Assume we can't copy it deeply
-
-
-# NOTE: If you alter the configs here remember to add tests in test_config.py
-fake_ubuntu = FakeDistribution("ubuntu",
- """
-[publishing]
-pendingremovalduration=5
-root=FOO
-archiveroot=FOO/BAR
-poolroot=FOO/BAR/pool
-distsroot=FOO/BAR/dists
-overrideroot=FOO/overrides
-cacheroot=FOO/cache
-miscroot=FOO/misc
- """.replace(
- "FOO", datadir("distro")).replace("BAR", "ubuntu"))
-
-fake_ubuntu_series = [
- FakeDistroSeries("warty",
- """
-[publishing]
-components = main restricted universe
- """, fake_ubuntu),
- FakeDistroSeries("hoary",
- """
-[publishing]
-components = main restricted universe
- """, fake_ubuntu)]