aboutsummaryrefslogtreecommitdiff
path: root/hwpack
diff options
context:
space:
mode:
authorMichael Hudson <michael.hudson@linaro.org>2010-12-14 11:45:11 +1300
committerMichael Hudson <michael.hudson@linaro.org>2010-12-14 11:45:11 +1300
commit603899d28a4db15d35c846399f2dc3ad6be60362 (patch)
tree850632c7e31efbcd88643cb7b0e147f686bbebf7 /hwpack
parent5e4c7348d9c7d4ab791e2d4f9fbaf3921f841b3c (diff)
mostly revert r199
Diffstat (limited to 'hwpack')
-rw-r--r--hwpack/builder.py2
-rw-r--r--hwpack/hardwarepack.py38
-rw-r--r--hwpack/testing.py25
-rw-r--r--hwpack/tests/test_hardwarepack.py131
4 files changed, 56 insertions, 140 deletions
diff --git a/hwpack/builder.py b/hwpack/builder.py
index 774afee..f37a83c 100644
--- a/hwpack/builder.py
+++ b/hwpack/builder.py
@@ -41,6 +41,6 @@ class HardwarePackBuilder(object):
self.config.packages,
download_content=self.config.include_debs)
hwpack.add_packages(packages)
- hwpack.add_dependency_packages(self.config.packages)
+ hwpack.add_dependency_package(self.config.packages)
with open(hwpack.filename(), 'w') as f:
hwpack.to_file(f)
diff --git a/hwpack/hardwarepack.py b/hwpack/hardwarepack.py
index 64f559e..2891eba 100644
--- a/hwpack/hardwarepack.py
+++ b/hwpack/hardwarepack.py
@@ -163,46 +163,20 @@ class HardwarePack(object):
"""
self.packages += packages
- def add_dependency_packages(self, packages_spec):
- """Add package that depends on those already present to the pack.
-
- This method will add two packages. One will be called 'hwpack-' + the
- name of the pack and will depend on the exact versions of every
- package in the hwpack. The other will have -latest appended to the
- name and will depend on `package_spec`, which is assumed to be the
- package specification the hardware pack was built with.
-
- The added packages will share version and architecture of the hardware
- pack itself and will Replace/Break each other.
+ def add_dependency_package(self, packages_spec):
+ """Add a packge that depends on packages_spec to the hardware pack.
:param packages_spec: A list of apt package specifications,
e.g. ``['foo', 'bar (>= 1.2)']``.
"""
with PackageMaker() as maker:
dep_package_name = 'hwpack-' + self.metadata.name
- latest_dep_package_name = dep_package_name + '-latest'
-
- dep_relationships = {
- 'Replaces': latest_dep_package_name,
- 'Breaks': latest_dep_package_name
- }
- deps = ['%s (= %s)'%(p.name, p.version) for p in self.packages]
- if deps:
- dep_relationships['Depends'] = ', '.join(deps)
- deb_file_path = maker.make_package(
- dep_package_name, self.metadata.version,
- dep_relationships, self.metadata.architecture)
- self.packages.append(FetchedPackage.from_deb(deb_file_path))
-
- latest_dep_relationships = {
- 'Replaces': dep_package_name,
- 'Breaks': dep_package_name
- }
+ relationships = {}
if packages_spec:
- latest_dep_relationships['Depends'] = ', '.join(packages_spec)
+ relationships = {'Depends': ', '.join(packages_spec)}
deb_file_path = maker.make_package(
- latest_dep_package_name, self.metadata.version,
- latest_dep_relationships, self.metadata.architecture)
+ dep_package_name, self.metadata.version,
+ relationships, self.metadata.architecture)
self.packages.append(FetchedPackage.from_deb(deb_file_path))
def to_file(self, fileobj):
diff --git a/hwpack/testing.py b/hwpack/testing.py
index 1c1e782..70bd659 100644
--- a/hwpack/testing.py
+++ b/hwpack/testing.py
@@ -356,10 +356,6 @@ class IsHardwarePack(Matcher):
manifest_lines.append(
"%s=%s" % (
'hwpack-' + self.metadata.name, self.metadata.version))
- manifest_lines.append(
- "%s=%s" % (
- 'hwpack-' + self.metadata.name + '-latest',
- self.metadata.version))
matchers.append(
HardwarePackHasFile(
"manifest",
@@ -375,22 +371,15 @@ class IsHardwarePack(Matcher):
content=package.content.read()))
package_matchers = [
MatchesPackage(p) for p in packages_with_content]
- dep_package_depedencies_matchers = [
- Equals('%s (= %s)' % (p.name, p.version)) for p in self.packages]
dep_package_matcher = MatchesStructure(
- name=Equals('hwpack-' + self.metadata.name),
- version=Equals(self.metadata.version),
- architecture=Equals(self.metadata.architecture),
- depends=MatchesPackageRelationshipList(
- dep_package_depedencies_matchers))
- package_matchers.append(dep_package_matcher)
- latest_dep_package_matcher = MatchesStructure(
- name=Equals('hwpack-' + self.metadata.name + '-latest'),
- version=Equals(self.metadata.version),
- architecture=Equals(self.metadata.architecture))
+ name=Equals('hwpack-' + self.metadata.name),
+ version=Equals(self.metadata.version),
+ architecture=Equals(self.metadata.architecture))
if self.package_spec:
- latest_dep_package_matcher.update(depends=self.package_spec)
- package_matchers.append(latest_dep_package_matcher)
+ dep_package_matcher = dep_package_matcher.update(
+ depends=MatchesPackageRelationshipList(
+ [Equals(p.strip()) for p in self.package_spec.split(',')]))
+ package_matchers.append(dep_package_matcher)
matchers.append(HardwarePackHasFile(
"pkgs/Packages",
content_matcher=MatchesAsPackagesFile(
diff --git a/hwpack/tests/test_hardwarepack.py b/hwpack/tests/test_hardwarepack.py
index ddca484..786d985 100644
--- a/hwpack/tests/test_hardwarepack.py
+++ b/hwpack/tests/test_hardwarepack.py
@@ -10,10 +10,8 @@ from hwpack.packages import get_packages_file
from hwpack.testing import (
DummyFetchedPackage,
HardwarePackHasFile,
- MatchesAll,
MatchesAsPackagesFile,
MatchesAsPackageContent,
- MatchesPackage,
MatchesPackageRelationshipList,
MatchesStructure,
Not,
@@ -229,101 +227,56 @@ class HardwarePackTests(TestCase):
tf,
Not(HardwarePackHasFile("pkgs/%s" % package1.filename)))
- def matcher_for_dependency_package(self, metadata, packages):
- dep_package_name = 'hwpack-%s' % metadata.name
- latest_dep_package_name = 'hwpack-%s-latest' % metadata.name
- if packages == []:
- dep_matcher = Equals(None)
- else:
- dep_matcher = MatchesPackageRelationshipList(
- [Equals('%s (= %s)' % (p.name, p.version)) for p in packages])
- return MatchesStructure(
- name=Equals(dep_package_name),
- architecture=Equals(self.metadata.architecture),
- breaks=Equals(latest_dep_package_name),
- replaces=Equals(latest_dep_package_name),
- depends=dep_matcher,
- version=Equals(self.metadata.version))
-
- def matcher_for_latest_dependency_package(self, metadata, package_spec):
- dep_package_name = 'hwpack-%s' % metadata.name
- latest_dep_package_name = 'hwpack-%s-latest' % metadata.name
- if package_spec == []:
- dep_matcher = Equals(None)
- else:
- dep_matcher = MatchesPackageRelationshipList(
- [Equals(p) for p in package_spec])
- return MatchesStructure(
- name=Equals(latest_dep_package_name),
- architecture=Equals(metadata.architecture),
- depends=dep_matcher,
- breaks=Equals(dep_package_name),
- replaces=Equals(dep_package_name),
- version=Equals(metadata.version))
-
- def test_add_dependency_package_adds_packages(self):
+ def test_add_dependency_package_adds_package(self):
hwpack = HardwarePack(self.metadata)
- hwpack.add_dependency_packages([])
+ hwpack.add_dependency_package([])
tf = self.get_tarfile(hwpack)
- dep_package_matcher = self.matcher_for_dependency_package(
- self.metadata, [])
- latest_dep_package_matcher = self.matcher_for_latest_dependency_package(
- self.metadata, [])
self.assertThat(
tf,
- MatchesAll(
- HardwarePackHasFile(
- "pkgs/%s_%s_%s.deb" % (
- 'hwpack-' + self.metadata.name, self.metadata.version,
- self.metadata.architecture),
- content_matcher=MatchesAsPackageContent(
- dep_package_matcher)),
- HardwarePackHasFile(
- "pkgs/%s_%s_%s.deb" % (
- 'hwpack-' + self.metadata.name + '-latest',
- self.metadata.version, self.metadata.architecture),
- content_matcher=MatchesAsPackageContent(
- latest_dep_package_matcher)),
- HardwarePackHasFile(
- "pkgs/Packages",
- content_matcher=MatchesAsPackagesFile(
- dep_package_matcher,
- latest_dep_package_matcher))))
-
-
- def test_add_dependency_package_adds_packages_with_dependency(self):
+ HardwarePackHasFile(
+ "pkgs/%s_%s_%s.deb" % (
+ 'hwpack-' + self.metadata.name, self.metadata.version,
+ self.metadata.architecture),
+ content_matcher=MatchesAsPackageContent(
+ MatchesStructure(
+ name=Equals('hwpack-' + self.metadata.name),
+ architecture=Equals(self.metadata.architecture),
+ depends=Equals(None),
+ version=Equals(self.metadata.version)))))
+
+ def test_add_dependency_package_adds_package_with_dependency(self):
+ hwpack = HardwarePack(self.metadata)
+ hwpack.add_dependency_package(["foo", "bar (= 1.0)"])
+ tf = self.get_tarfile(hwpack)
+ self.assertThat(
+ tf,
+ HardwarePackHasFile(
+ "pkgs/%s_%s_%s.deb" % (
+ 'hwpack-' + self.metadata.name, self.metadata.version,
+ self.metadata.architecture),
+ content_matcher=MatchesAsPackageContent(
+ MatchesStructure(
+ name=Equals('hwpack-' + self.metadata.name),
+ architecture=Equals(self.metadata.architecture),
+ depends=MatchesPackageRelationshipList(
+ [Equals("foo"), Equals("bar (= 1.0)")]),
+ version=Equals(self.metadata.version)))))
+
+ def test_add_dependency_package_adds_package_to_Packages(self):
hwpack = HardwarePack(self.metadata)
- packages = [DummyFetchedPackage("foo", '2.0'),
- DummyFetchedPackage("bar", '1.0')]
- hwpack.add_packages(packages)
- hwpack.add_dependency_packages(["foo", "bar (= 1.0)"])
+ hwpack.add_dependency_package(["foo", "bar (= 1.0)"])
tf = self.get_tarfile(hwpack)
- dep_package_matcher = self.matcher_for_dependency_package(
- self.metadata, packages)
- latest_dep_package_matcher = self.matcher_for_latest_dependency_package(
- self.metadata, ["foo", "bar (= 1.0)"])
self.assertThat(
tf,
- MatchesAll(
- HardwarePackHasFile(
- "pkgs/%s_%s_%s.deb" % (
- 'hwpack-' + self.metadata.name, self.metadata.version,
- self.metadata.architecture),
- content_matcher=MatchesAsPackageContent(
- dep_package_matcher)),
- HardwarePackHasFile(
- "pkgs/%s_%s_%s.deb" % (
- 'hwpack-' + self.metadata.name + '-latest',
- self.metadata.version, self.metadata.architecture),
- content_matcher=MatchesAsPackageContent(
- latest_dep_package_matcher)),
- HardwarePackHasFile(
- "pkgs/Packages",
- content_matcher=MatchesAsPackagesFile(
- dep_package_matcher,
- latest_dep_package_matcher,
- *map(MatchesPackage, packages))),
- ))
+ HardwarePackHasFile(
+ "pkgs/Packages",
+ content_matcher=MatchesAsPackagesFile(
+ MatchesStructure(
+ name=Equals('hwpack-' + self.metadata.name),
+ architecture=Equals(self.metadata.architecture),
+ depends=MatchesPackageRelationshipList(
+ [Equals("foo"), Equals("bar (= 1.0)")]),
+ version=Equals(self.metadata.version)))))
def test_creates_Packages_file(self):
hwpack = HardwarePack(self.metadata)