aboutsummaryrefslogtreecommitdiff
path: root/hwpack
diff options
context:
space:
mode:
authorMichael Hudson <michael.hudson@linaro.org>2010-12-16 14:33:56 +1300
committerMichael Hudson <michael.hudson@linaro.org>2010-12-16 14:33:56 +1300
commit820fb752c1f059a8879a7bbb524e5fee4165208c (patch)
tree42cbb2c2cc543e78b60ec41eb1be6eb32cbb70b0 /hwpack
parentaa6e3adcced534613c837401286ea87a2416e29b (diff)
make sources_entry_for_debs label support less hacky & tested
Diffstat (limited to 'hwpack')
-rw-r--r--hwpack/packages.py9
-rw-r--r--hwpack/tests/test_packages.py13
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):