def test_autoupdate_local_hooks(in_git_dir, store): config = sample_local_config() add_config_to_repo('.', config) assert autoupdate(C.CONFIG_FILE, store, freeze=False, tags_only=False) == 0 new_config_writen = read_config('.') assert len(new_config_writen['repos']) == 1 assert new_config_writen['repos'][0] == config
def test_autoupdate_local_hooks(in_git_dir, store): config = sample_local_config() add_config_to_repo('.', config) assert autoupdate(C.CONFIG_FILE, store, tags_only=False) == 0 new_config_writen = read_config('.') assert len(new_config_writen['repos']) == 1 assert new_config_writen['repos'][0] == config
def test_autoupdate_out_of_date_repo_with_correct_repo_name( out_of_date, in_tmpdir, store, ): stale_config = make_config_from_repo( out_of_date.path, rev=out_of_date.original_rev, check=False, ) local_config = sample_local_config() config = {'repos': [stale_config, local_config]} write_config('.', config) with open(C.CONFIG_FILE) as f: before = f.read() repo_name = f'file://{out_of_date.path}' ret = autoupdate( C.CONFIG_FILE, store, freeze=False, tags_only=False, repos=(repo_name, ), ) with open(C.CONFIG_FILE) as f: after = f.read() assert ret == 0 assert before != after assert out_of_date.head_rev in after assert 'local' in after
def test_autoupdate_local_hooks_with_out_of_date_repo( out_of_date_repo, in_tmpdir, store, ): stale_config = make_config_from_repo( out_of_date_repo.path, rev=out_of_date_repo.original_rev, check=False, ) local_config = sample_local_config() config = {'repos': [local_config, stale_config]} write_config('.', config) assert autoupdate(C.CONFIG_FILE, store, tags_only=False) == 0 new_config_writen = read_config('.') assert len(new_config_writen['repos']) == 2 assert new_config_writen['repos'][0] == local_config
def test_autoupdate_local_hooks_with_out_of_date_repo( out_of_date_repo, in_tmpdir, store, ): stale_config = make_config_from_repo( out_of_date_repo.path, rev=out_of_date_repo.original_rev, check=False, ) local_config = sample_local_config() config = {'repos': [local_config, stale_config]} write_config('.', config) assert autoupdate(C.CONFIG_FILE, store, tags_only=False) == 0 new_config_writen = read_config('.') assert len(new_config_writen['repos']) == 2 assert new_config_writen['repos'][0] == local_config
def test_hook_impl_main_runs_hooks(cap_out, tempdir_factory, store): with cwd(git_dir(tempdir_factory)): write_config('.', sample_local_config()) ret = hook_impl.hook_impl( store, config=C.CONFIG_FILE, color=False, hook_type='pre-commit', hook_dir='.git/hooks', skip_on_missing_config=False, args=(), ) assert ret == 0 expected = '''\ Block if "DO NOT COMMIT" is found....................(no files to check)Skipped ''' assert cap_out.get() == expected
def test_hook_impl_main_noop_pre_push(cap_out, store, push_example): src, src_head, clone, _ = push_example stdin = f'(delete) {hook_impl.Z40} refs/heads/b {src_head}'.encode() with mock.patch.object(sys.stdin.buffer, 'read', return_value=stdin): with cwd(clone): write_config('.', sample_local_config()) ret = hook_impl.hook_impl( store, config=C.CONFIG_FILE, color=False, hook_type='pre-push', hook_dir='.git/hooks', skip_on_missing_config=False, args=('origin', src), ) assert ret == 0 assert cap_out.get() == ''
def test_autoupdate_out_of_date_repo_with_correct_repo_name( out_of_date_repo, in_tmpdir, store, ): stale_config = make_config_from_repo( out_of_date_repo.path, rev=out_of_date_repo.original_rev, check=False, ) local_config = sample_local_config() config = {'repos': [stale_config, local_config]} # Write out the config write_config('.', config) with open(C.CONFIG_FILE) as f: before = f.read() repo_name = 'file://{}'.format(out_of_date_repo.path) ret = autoupdate(C.CONFIG_FILE, store, tags_only=False, repos=(repo_name,)) with open(C.CONFIG_FILE) as f: after = f.read() assert ret == 0 assert before != after assert out_of_date_repo.head_rev in after assert 'local' in after
def test_config_with_local_hooks_definition_passes(): config_obj = {'repos': [sample_local_config()]} cfgv.validate(config_obj, CONFIG_SCHEMA)
def test_local_hooks_with_rev_fails(): config_obj = {'repos': [dict(sample_local_config(), rev='foo')]} with pytest.raises(cfgv.ValidationError): cfgv.validate(config_obj, CONFIG_SCHEMA)
def test_gc_local_repo_does_not_crash(store, in_git_dir, cap_out): write_config('.', sample_local_config()) store.mark_config_used(C.CONFIG_FILE) assert not gc(store) assert cap_out.get().splitlines()[-1] == '0 repo(s) removed.'
def test_config_with_local_hooks_definition_passes(): config_obj = {'repos': [sample_local_config()]} cfgv.validate(config_obj, CONFIG_SCHEMA)
def test_local_hooks_with_rev_fails(): config_obj = {'repos': [dict(sample_local_config(), rev='foo')]} with pytest.raises(cfgv.ValidationError): cfgv.validate(config_obj, CONFIG_SCHEMA)
def test_gc_local_repo_does_not_crash(store, in_git_dir, cap_out): write_config('.', sample_local_config()) store.mark_config_used(C.CONFIG_FILE) assert not gc(store) assert cap_out.get().splitlines()[-1] == '0 repo(s) removed.'