From 4e0f73bbf31b5086b62b5fd4f52a05f755fb5676 Mon Sep 17 00:00:00 2001 From: Anthony Sottile Date: Sat, 26 Nov 2016 15:16:40 -0800 Subject: [PATCH] Add cygwin check after initialization. Resolves #437 --- pre_commit/main.py | 2 +- tests/main_test.py | 14 ++++++++++++++ 2 files changed, 15 insertions(+), 1 deletion(-) diff --git a/pre_commit/main.py b/pre_commit/main.py index 4bcd153b..9d9329a2 100644 --- a/pre_commit/main.py +++ b/pre_commit/main.py @@ -152,8 +152,8 @@ def main(argv=None): with error_handler(): add_logging_handler(args.color) - git.check_for_cygwin_mismatch() runner = Runner.create() + git.check_for_cygwin_mismatch() if args.command == 'install': return install( diff --git a/tests/main_test.py b/tests/main_test.py index 537ff23c..86b6dcdd 100644 --- a/tests/main_test.py +++ b/tests/main_test.py @@ -7,6 +7,7 @@ import mock import pytest from pre_commit import main +from pre_commit.error_handler import PreCommitSystemExit from pre_commit.util import cwd from testing.auto_namedtuple import auto_namedtuple @@ -142,3 +143,16 @@ def test_help_cmd_in_empty_directory( mock.call(['help', 'run']), mock.call(['run', '--help']), ]) + + +def test_expected_fatal_error_no_git_repo( + tempdir_factory, cap_out, mock_out_store_directory, +): + with cwd(tempdir_factory.get()): + with pytest.raises(PreCommitSystemExit): + main.main([]) + assert cap_out.get() == ( + 'An error has occurred: FatalError: git failed. ' + 'Is it installed, and are you in a Git repository directory?\n' + 'Check the log at ~/.pre-commit/pre-commit.log\n' + )