[dak/master] The Binary field of source packages is comma-seperated.
---
daklib/packagelist.py | 24 +++++++++++++-----------
tests/test_packagelist.py | 2 +-
2 files changed, 14 insertions(+), 12 deletions(-)
diff --git a/daklib/packagelist.py b/daklib/packagelist.py
index f98a0c4..ddb5c81 100644
--- a/daklib/packagelist.py
+++ b/daklib/packagelist.py
@@ -62,23 +62,25 @@ class PackageListEntry(object):
class PackageList(object):
def __init__(self, source):
- self._source = source
- if 'Package-List' in self._source:
- self._parse()
- elif 'Binary' in self._source:
- self._parse_fallback()
+ if 'Package-List' in source:
+ self._parse(source)
+ elif 'Binary' in source:
+ self._parse_fallback(source)
else:
raise InvalidSource('Source package has neither Package-List nor Binary field.')
self.fallback = any(entry.architectures is None for entry in self.package_list)
- def _parse(self):
+ def _binaries(self, source):
+ return set(name.strip() for name in source['Binary'].split(","))
+
+ def _parse(self, source):
self.package_list = []
- binaries_binary = set(self._source['Binary'].split())
+ binaries_binary = self._binaries(source)
binaries_package_list = set()
- for line in self._source['Package-List'].split("\n"):
+ for line in source['Package-List'].split("\n"):
if not line:
continue
fields = line.split()
@@ -95,7 +97,7 @@ class PackageList(object):
if name in binaries_package_list:
raise InvalidSource("Package-List has two entries for '{0}'.".format(name))
if name not in binaries_binary:
- raise InvalidSource("Package-List lists {0} which is not listed in Binaries.".format(name))
+ raise InvalidSource("Package-List lists {0} which is not listed in Binary.".format(name))
binaries_package_list.add(name)
entry = PackageListEntry(name, package_type, section, component, priority, **other)
@@ -104,10 +106,10 @@ class PackageList(object):
if len(binaries_binary) != len(binaries_package_list):
raise InvalidSource("Package-List and Binaries fields have a different number of entries.")
- def _parse_fallback(self):
+ def _parse_fallback(self, source):
self.package_list = []
- for binary in self._source['Binary'].split():
+ for binary in self._binaries(source):
name = binary
package_type = None
component = None
diff --git a/tests/test_packagelist.py b/tests/test_packagelist.py
index 7f3629a..9259e73 100644
--- a/tests/test_packagelist.py
+++ b/tests/test_packagelist.py
@@ -40,7 +40,7 @@ source_any = {
source_all_any = {
'Package-List': '\n libdune-common-dev deb libdevel optional arch=any\nlibdune-common-doc deb doc optional arch=all\n',
- 'Binary': 'libdune-common-dev libdune-common-doc\n',
+ 'Binary': 'libdune-common-dev, libdune-common-doc\n',
}
source_amd64 = {
--
1.7.10.4
Reply to: