diff options
author | Michael Hudson <michael.hudson@linaro.org> | 2010-12-16 14:33:56 +1300 |
---|---|---|
committer | Michael Hudson <michael.hudson@linaro.org> | 2010-12-16 14:33:56 +1300 |
commit | 820fb752c1f059a8879a7bbb524e5fee4165208c (patch) | |
tree | 42cbb2c2cc543e78b60ec41eb1be6eb32cbb70b0 /hwpack | |
parent | aa6e3adcced534613c837401286ea87a2416e29b (diff) |
make sources_entry_for_debs label support less hacky & tested
Diffstat (limited to 'hwpack')
-rw-r--r-- | hwpack/packages.py | 9 | ||||
-rw-r--r-- | hwpack/tests/test_packages.py | 13 |
2 files changed, 19 insertions, 3 deletions
diff --git a/hwpack/packages.py b/hwpack/packages.py index 629e631..5186c02 100644 --- a/hwpack/packages.py +++ b/hwpack/packages.py @@ -167,9 +167,12 @@ class LocalArchiveMaker(TemporaryDirectoryManager): with open(os.path.join(tmpdir, 'Packages'), 'w') as packages_file: packages_file.write(get_packages_file(local_debs, rel_to=tmpdir)) if label: - os.system( - 'apt-ftparchive -o"APT::FTPArchive::Release::Label=%s" ' - 'release %s > %s/Release' % (label, tmpdir, tmpdir)) + subprocess.check_call( + ['apt-ftparchive', + '-oAPT::FTPArchive::Release::Label=%s' % label, + 'release', + tmpdir], + stdout=open(os.path.join(tmpdir, 'Release'), 'w')) return 'file://%s ./' % (tmpdir, ) diff --git a/hwpack/tests/test_packages.py b/hwpack/tests/test_packages.py index e67dfb7..df55dc6 100644 --- a/hwpack/tests/test_packages.py +++ b/hwpack/tests/test_packages.py @@ -1,4 +1,5 @@ import os +import re import shutil from StringIO import StringIO import subprocess @@ -7,6 +8,7 @@ import textwrap import apt_pkg from debian.debfile import DebFile +from debian import deb822 from testtools import TestCase from testtools.matchers import Equals @@ -273,6 +275,17 @@ class LocalArchiveMakerTests(TestCaseWithFixtures): acq.run() self.assertThat(acqfile.status, Equals(acqfile.STAT_DONE)) + def test_sources_entry_for_debs_creates_release_with_label(self): + package = DummyFetchedPackage("foo", "1.0") + local_archive_maker = LocalArchiveMaker() + self.useFixture(ContextManagerFixture(local_archive_maker)) + label_text = 'random-label' + entry = local_archive_maker.sources_entry_for_debs( + [package], label=label_text) + loc = re.match('file://([^ ]*).*', entry).group(1) + release = deb822.Release(open(os.path.join(loc, 'Release'))) + self.assertThat(release['Label'], Equals(label_text)) + class PackageMakerTests(TestCaseWithFixtures): |