import os import os.path import pkg_resources import stat from pre_commit.commands import install from pre_commit.commands import uninstall from pre_commit.runner import Runner def test_install_pre_commit(empty_git_dir): runner = Runner(empty_git_dir) ret = install(runner) assert ret == 0 assert os.path.exists(runner.pre_commit_path) pre_commit_contents = open(runner.pre_commit_path).read() pre_commit_sh = pkg_resources.resource_filename('pre_commit', 'resources/pre-commit.sh') expected_contents = open(pre_commit_sh).read() assert pre_commit_contents == expected_contents stat_result = os.stat(runner.pre_commit_path) assert stat_result.st_mode & (stat.S_IXUSR | stat.S_IXGRP | stat.S_IXOTH) def test_uninstall_pre_commit_does_not_blow_up_when_not_there(empty_git_dir): runner = Runner(empty_git_dir) ret = uninstall(runner) assert ret == 0 def test_uninstall(empty_git_dir): runner = Runner(empty_git_dir) assert not os.path.exists(runner.pre_commit_path) install(runner) assert os.path.exists(runner.pre_commit_path) uninstall(runner) assert not os.path.exists(runner.pre_commit_path)