From: Ansgar Burchardt Date: Sat, 7 Jul 2012 17:59:44 +0000 (-0600) Subject: daklib/checks.py, daklib/utils.py: check for source files X-Git-Url: https://git.decadent.org.uk/gitweb/?a=commitdiff_plain;h=390691357b1b785378624a8587c176592e5370f8;hp=1419ec698cca31a39e2ed8fe7177b986d99ada00;p=dak.git daklib/checks.py, daklib/utils.py: check for source files Reintroduce the check that all source files for the used format are actually included. --- diff --git a/daklib/checks.py b/daklib/checks.py index 06626fd1..6091bc73 100644 --- a/daklib/checks.py +++ b/daklib/checks.py @@ -338,7 +338,11 @@ class SourceCheck(Check): except Exception as e: raise Reject('{0}: APT could not parse {1} field: {2}'.format(dsc_fn, field, e)) - # TODO: check all expected files for given source format are included + rejects = utils.check_dsc_files(dsc_fn, control, source.files.keys()) + if len(rejects) > 0: + raise Reject("\n".join(rejects)) + + return True class SingleDistributionCheck(Check): """Check that the .changes targets only a single distribution.""" diff --git a/daklib/utils.py b/daklib/utils.py index 25549f04..7b73df13 100644 --- a/daklib/utils.py +++ b/daklib/utils.py @@ -368,7 +368,7 @@ def check_size(where, files): ################################################################################ -def check_dsc_files(dsc_filename, dsc=None, dsc_files=None): +def check_dsc_files(dsc_filename, dsc, dsc_files): """ Verify that the files listed in the Files field of the .dsc are those expected given the announced Format. @@ -387,13 +387,6 @@ def check_dsc_files(dsc_filename, dsc=None, dsc_files=None): """ rejmsg = [] - # Parse the file if needed - if dsc is None: - dsc = parse_changes(dsc_filename, signing_rules=1, dsc_file=1); - - if dsc_files is None: - dsc_files = build_file_list(dsc, is_a_dsc=1) - # Ensure .dsc lists proper set of source files according to the format # announced has = defaultdict(lambda: 0) @@ -408,7 +401,7 @@ def check_dsc_files(dsc_filename, dsc=None, dsc_files=None): (r'orig-.+\.tar\.(gz|bz2|xz)', ('more_orig_tar',)), ) - for f in dsc_files.keys(): + for f in dsc_files: m = re_issource.match(f) if not m: rejmsg.append("%s: %s in Files field not recognised as source."