aboutsummaryrefslogtreecommitdiff
path: root/hwpack
diff options
context:
space:
mode:
authorMichael Hudson <michael.hudson@linaro.org>2010-12-17 12:49:40 +1300
committerMichael Hudson <michael.hudson@linaro.org>2010-12-17 12:49:40 +1300
commit20f61949bdfdedd5aabb2137ecc004de3c76d466 (patch)
treea456dd5ef43028ea2add0eb355d0c37ead371438 /hwpack
parent2f69a87c2b7b5b20beb99dcb8dd3e1d41844de81 (diff)
include local debs in the hwpack even if the config file does not include them
Diffstat (limited to 'hwpack')
-rw-r--r--hwpack/builder.py10
-rw-r--r--hwpack/tests/test_builder.py32
2 files changed, 38 insertions, 4 deletions
diff --git a/hwpack/builder.py b/hwpack/builder.py
index 33f7dc8..f146570 100644
--- a/hwpack/builder.py
+++ b/hwpack/builder.py
@@ -48,13 +48,16 @@ class HardwarePackBuilder(object):
with LocalArchiveMaker() as local_archive_maker:
hwpack.add_apt_sources(sources)
sources = sources.values()
+ packages = self.config.packages[:]
if self.local_debs:
- packages = [
+ fetched_packages = [
FetchedPackage.from_deb(deb)
for deb in self.local_debs]
sources.append(
local_archive_maker.sources_entry_for_debs(
- packages, LOCAL_ARCHIVE_LABEL))
+ fetched_packages, LOCAL_ARCHIVE_LABEL))
+ packages.extend(
+ [fp.name for fp in fetched_packages])
logger.info("Fetching packages")
fetcher = PackageFetcher(
sources, architecture=architecture,
@@ -62,8 +65,7 @@ class HardwarePackBuilder(object):
with fetcher:
fetcher.ignore_packages(self.config.assume_installed)
packages = fetcher.fetch_packages(
- self.config.packages,
- download_content=self.config.include_debs)
+ packages, download_content=self.config.include_debs)
logger.debug("Adding packages to hwpack")
hwpack.add_packages(packages)
hwpack.add_dependency_package(self.config.packages)
diff --git a/hwpack/tests/test_builder.py b/hwpack/tests/test_builder.py
index a393614..7e52edd 100644
--- a/hwpack/tests/test_builder.py
+++ b/hwpack/tests/test_builder.py
@@ -244,3 +244,35 @@ class HardwarePackBuilderTests(TestCaseWithFixtures):
metadata, [local_package],
{source_id: source.sources_entry},
package_spec=package_name))
+
+ def test_includes_local_debs_even_if_not_in_config(self):
+ hwpack_name = "ahwpack"
+ hwpack_version = "1.0"
+ architecture = "armel"
+ package_name = "foo"
+ local_name = "bar"
+ source_id = "ubuntu"
+ maker = PackageMaker()
+ self.useFixture(ContextManagerFixture(maker))
+ remote_package = DummyFetchedPackage(
+ package_name, "1.1", architecture=architecture)
+ local_path = maker.make_package(
+ local_name, "1.0", {}, architecture=architecture)
+ local_package = FetchedPackage.from_deb(local_path)
+ source = self.useFixture(AptSourceFixture([remote_package]))
+ config = self.useFixture(ConfigFileFixture(
+ '[hwpack]\nname=%s\npackages=%s\narchitectures=%s\n'
+ '\n[%s]\nsources-entry=%s\n'
+ % (hwpack_name, package_name, architecture,
+ source_id, source.sources_entry)))
+ builder = HardwarePackBuilder(
+ config.filename, hwpack_version, [local_path])
+ builder.build()
+ metadata = Metadata(hwpack_name, hwpack_version, architecture)
+ self.assertThat(
+ "hwpack_%s_%s_%s.tar.gz" % (hwpack_name, hwpack_version,
+ architecture),
+ IsHardwarePack(
+ metadata, [remote_package, local_package],
+ {source_id: source.sources_entry},
+ package_spec=package_name))