]> git.donarmstrong.com Git - dak.git/blobdiff - daklib/upload.py
daklib/utils.py: Fix crash on rdep test
[dak.git] / daklib / upload.py
index a6f1e4b819072c228e4c1a17b89cad944a7a81ea..cabec15116ad898e78a8d48f7ab2743fd2735b07 100644 (file)
@@ -173,7 +173,7 @@ def parse_file_list(control, has_priority_and_section):
     """
     entries = {}
 
-    for line in control["Files"].split('\n'):
+    for line in control.get("Files", "").split('\n'):
         if len(line) == 0:
             continue
 
@@ -186,23 +186,25 @@ def parse_file_list(control, has_priority_and_section):
 
         entries[filename] = entry
 
-    for line in control["Checksums-Sha1"].split('\n'):
+    for line in control.get("Checksums-Sha1", "").split('\n'):
         if len(line) == 0:
             continue
         (sha1sum, size, filename) = line.split()
         entry = entries.get(filename, None)
-        if entry.get('size', None) != long(size):
+        if entry is None:
+            raise InvalidChangesException('{0} is listed in Checksums-Sha1, but not in Files.'.format(filename))
+        if entry is not None and entry.get('size', None) != long(size):
             raise InvalidChangesException('Size for {0} in Files and Checksum-Sha1 fields differ.'.format(filename))
         entry['sha1sum'] = sha1sum
 
-    for line in control["Checksums-Sha256"].split('\n'):
+    for line in control.get("Checksums-Sha256", "").split('\n'):
         if len(line) == 0:
             continue
         (sha256sum, size, filename) = line.split()
         entry = entries.get(filename, None)
         if entry is None:
-            raise InvalidChangesException('No sha256sum for {0}.'.format(filename))
-        if entry.get('size', None) != long(size):
+            raise InvalidChangesException('{0} is listed in Checksums-Sha256, but not in Files.'.format(filename))
+        if entry is not None and entry.get('size', None) != long(size):
             raise InvalidChangesException('Size for {0} in Files and Checksum-Sha256 fields differ.'.format(filename))
         entry['sha256sum'] = sha256sum
 
@@ -279,7 +281,7 @@ class Changes(object):
         """list of architectures included in the upload
         @type: list of str
         """
-        return self.changes['Architecture'].split()
+        return self.changes.get('Architecture', '').split()
 
     @property
     def distributions(self):