X-Git-Url: http://git.scottworley.com/pinch/blobdiff_plain/d5abffb3c868e3cf98e565a1e158eeaa333292d1..b573564a47adba410749d11f28efd2a84d564bbf:/pinch.py diff --git a/pinch.py b/pinch.py index bc9ba3b..33fd9bf 100644 --- a/pinch.py +++ b/pinch.py @@ -417,15 +417,28 @@ def compare_tarball_and_git( 'nixpkgs', 'programs.sqlite', 'svn-revision'] - benign_errors = [] + permitted_errors = [ + 'pkgs/test/nixpkgs-check-by-name/tests/symlink-invalid/pkgs/by-name/fo/foo/foo.nix', + ] + benign_expected_errors = [] + benign_permitted_errors = [] for ee in expected_errors: if ee in errors: errors.remove(ee) - benign_errors.append(ee) - v.check(f'{len(errors)} unexpected incomparable files', len(errors) == 0) + benign_expected_errors.append(ee) + for pe in permitted_errors: + if pe in errors: + errors.remove(pe) + benign_permitted_errors.append(ee) v.check( - f'({len(benign_errors)} of {len(expected_errors)} expected incomparable files)', - len(benign_errors) == len(expected_errors)) + f'{len(errors)} unexpected incomparable files: {errors}', + len(errors) == 0) + v.check( + f'({len(benign_expected_errors)} of {len(expected_errors)} expected incomparable files)', + len(benign_expected_errors) == len(expected_errors)) + v.check( + f'({len(benign_permitted_errors)} of {len(permitted_errors)} permitted incomparable files)', + len(benign_permitted_errors) <= len(permitted_errors)) def extract_tarball( @@ -585,7 +598,7 @@ def read_pinned_config_section( section: str, conf: configparser.SectionProxy) -> Tuple[SearchPath, Pin]: sp, pin = read_config_section(conf) if pin is None: - raise Exception( + raise RuntimeError( f'Cannot update unpinned channel "{section}" (Run "pin" before "update")') return sp, pin @@ -604,7 +617,7 @@ def read_config_files( config = read_config(file) for section in config.sections(): if section in merged_config: - raise Exception('Duplicate channel "{section}"') + raise RuntimeError('Duplicate channel "{section}"') merged_config[section] = config[section] return merged_config