From ba7760b705f9f0d31215aceab5c3c7bde1ee6447 Mon Sep 17 00:00:00 2001 From: Yoav Caspi Date: Sun, 12 May 2019 15:09:15 +0300 Subject: [PATCH] Add a test to validate that cfgv.WarnAdditionalKeys working as expected in the relevant config schemas --- pre_commit/clientlib.py | 11 ++++++++++- tests/clientlib_test.py | 9 +++++++++ 2 files changed, 19 insertions(+), 1 deletion(-) diff --git a/pre_commit/clientlib.py b/pre_commit/clientlib.py index 3285a48b..3ceefb1b 100644 --- a/pre_commit/clientlib.py +++ b/pre_commit/clientlib.py @@ -109,6 +109,8 @@ META = 'meta' class MigrateShaToRev(object): + key = 'rev' + @staticmethod def _cond(key): return cfgv.Conditional( @@ -263,7 +265,14 @@ CONFIG_SCHEMA = cfgv.Map( '0', ), cfgv.WarnAdditionalKeys( - ('repos',), + ( + 'repos', + 'default_language_version', + 'default_stages', + 'exclude', + 'fail_fast', + 'minimum_pre_commit_version', + ), warn_on_unknown_keys_at_top_level, ), ) diff --git a/tests/clientlib_test.py b/tests/clientlib_test.py index cace0f32..13b42a59 100644 --- a/tests/clientlib_test.py +++ b/tests/clientlib_test.py @@ -305,3 +305,12 @@ def test_minimum_pre_commit_version_failing(): def test_minimum_pre_commit_version_passing(): cfg = {'repos': [], 'minimum_pre_commit_version': '0'} cfgv.validate(cfg, CONFIG_SCHEMA) + + +@pytest.mark.parametrize('schema', (CONFIG_SCHEMA, CONFIG_REPO_DICT)) +def test_warn_additional(schema): + allowed_keys = {item.key for item in schema.items if hasattr(item, 'key')} + warn_additional, = [ + x for x in schema.items if isinstance(x, cfgv.WarnAdditionalKeys) + ] + assert allowed_keys == set(warn_additional.keys)