Make language check more strict.

This commit is contained in:
Anthony Sottile
2014-06-02 06:47:59 -07:00
parent fdd6989ece
commit 914a74f80b
2 changed files with 17 additions and 6 deletions

View File

@@ -31,9 +31,9 @@ def additional_manifest_check(obj):
for hook_config in obj:
language = hook_config['language']
if not any(language.startswith(lang) for lang in all_languages):
if language not in all_languages:
raise InvalidManifestError(
'Expected language {0} for {1} to start with one of {2!r}'.format(
'Expected language {0} for {1} to be one of {2!r}'.format(
hook_config['id'],
hook_config['language'],
all_languages,

View File

@@ -27,14 +27,25 @@ def test_additional_manifest_check_raises_for_bad_language():
additional_manifest_check([{'id': 'foo', 'language': 'not valid'}])
@pytest.mark.parametrize(('obj'), (
[{'language': 'python'}],
[{'language': 'ruby'}],
))
@pytest.mark.parametrize(
'obj', ([{'language': 'python'}], [{'language': 'ruby'}]),
)
def test_additional_manifest_check_languages(obj):
additional_manifest_check(obj)
@pytest.mark.parametrize(
'obj',
(
[{'id': 'a', 'language': 'not a language'}],
[{'id': 'a', 'language': 'python3'}],
),
)
def test_additional_manifest_check_languages_failing(obj):
with pytest.raises(InvalidManifestError):
additional_manifest_check(obj)
@pytest.mark.parametrize(('manifest_obj', 'expected'), (
([], False),
([{'id': 'a', 'name': 'b', 'entry': 'c', 'language': 'python'}], True),