diff options
author | Michael Hudson <michael.hudson@linaro.org> | 2010-12-17 12:49:40 +1300 |
---|---|---|
committer | Michael Hudson <michael.hudson@linaro.org> | 2010-12-17 12:49:40 +1300 |
commit | 20f61949bdfdedd5aabb2137ecc004de3c76d466 (patch) | |
tree | a456dd5ef43028ea2add0eb355d0c37ead371438 /hwpack | |
parent | 2f69a87c2b7b5b20beb99dcb8dd3e1d41844de81 (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.py | 10 | ||||
-rw-r--r-- | hwpack/tests/test_builder.py | 32 |
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)) |