Skip to content

Commit

Permalink
Add message for policy pep600 compliance failure
Browse files Browse the repository at this point in the history
  • Loading branch information
mayeut committed Feb 28, 2021
1 parent eb3a12d commit 5aee132
Show file tree
Hide file tree
Showing 2 changed files with 17 additions and 4 deletions.
17 changes: 15 additions & 2 deletions auditwheel/policy/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -31,14 +31,27 @@ def _validate_pep600_compliance(policies) -> None:
if policy['name'] == 'linux':
continue
if not lib_whitelist.issubset(set(policy['lib_whitelist'])):
diff = lib_whitelist - set(policy["lib_whitelist"])
raise ValueError(
'Invalid "policy.json" file. Missing whitelist libraries in '
f'"{policy["name"]}" compared to previous policies: {diff}'
)
raise ValueError('Invalid "policy.json" file')
lib_whitelist.update(policy['lib_whitelist'])
for arch in policy['symbol_versions'].keys():
symbol_versions_arch = symbol_versions.get(arch, defaultdict(set))
for prefix in policy['symbol_versions'][arch].keys():
policy_symbol_versions = set(
policy['symbol_versions'][arch][prefix])
if not symbol_versions_arch[prefix].issubset(
set(policy['symbol_versions'][arch][prefix])):
raise ValueError('Invalid "policy.json" file')
policy_symbol_versions):
diff = symbol_versions_arch[prefix] - \
policy_symbol_versions
raise ValueError(
'Invalid "policy.json" file. Symbol versions missing '
f'in "{policy["name"]}_{arch}" for "{prefix}" '
f'compared to previous policies: {diff}'
)
symbol_versions_arch[prefix].update(
policy['symbol_versions'][arch][prefix])
symbol_versions[arch] = symbol_versions_arch
Expand Down
4 changes: 2 additions & 2 deletions tests/unit/test_policy.py
Original file line number Diff line number Diff line change
Expand Up @@ -69,7 +69,7 @@ def test_pep600_compliance():
"lib_whitelist": ["libgcc_s.so.1", "libstdc++.so.6"],
}])

with pytest.raises(ValueError):
with pytest.raises(ValueError, match="nanylinux2010_i686.*CXXABI.*1.3.2"):
_validate_pep600_compliance([{
"name": "manylinux1", "priority": 100, "symbol_versions": {
"i686": {"CXXABI": ["1.3", "1.3.2"]},
Expand All @@ -82,7 +82,7 @@ def test_pep600_compliance():
"lib_whitelist": ["libgcc_s.so.1", "libstdc++.so.6"],
}])

with pytest.raises(ValueError):
with pytest.raises(ValueError, match="manylinux2010.*libstdc\+\+\.so\.6"):
_validate_pep600_compliance([{
"name": "manylinux1", "priority": 100, "symbol_versions": {
"i686": {"CXXABI": ["1.3"]},
Expand Down

0 comments on commit 5aee132

Please sign in to comment.