pFad - Phone/Frame/Anonymizer/Declutterfier! Saves Data!


--- a PPN by Garber Painting Akron. With Image Size Reduction included!

URL: http://github.com/pre-commit/pre-commit/commit/247d45af0595c88b8880324a0757a17004a3f403

igin="anonymous" media="all" rel="stylesheet" href="https://github.githubassets.com/assets/global-9c8f61f9f58ad7b2.css" /> fixed #1141 · pre-commit/pre-commit@247d45a · GitHub
Skip to content

Commit 247d45a

Browse files
committed
fixed #1141
1 parent 0245a67 commit 247d45a

3 files changed

Lines changed: 34 additions & 14 deletions

File tree

pre_commit/error_handler.py

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,12 +4,14 @@
44

55
import contextlib
66
import os.path
7+
import sys
78
import traceback
89

910
import six
1011

1112
from pre_commit import five
1213
from pre_commit import output
14+
from pre_commit.constants import VERSION as pre_commit_version
1315
from pre_commit.store import Store
1416

1517

@@ -29,6 +31,9 @@ def _log_and_exit(msg, exc, formatted):
2931
five.to_bytes(msg), b': ',
3032
five.to_bytes(type(exc).__name__), b': ',
3133
_to_bytes(exc), b'\n',
34+
_to_bytes('pre-commit.version={}\n'.format(pre_commit_version)),
35+
_to_bytes('sys.version={}\n'.format(sys.version.replace('\n', ' '))),
36+
_to_bytes('sys.executable={}\n'.format(sys.executable)),
3237
))
3338
output.write(error_msg)
3439
store = Store()

tests/error_handler_test.py

Lines changed: 23 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -104,17 +104,29 @@ def test_log_and_exit(cap_out, mock_store_dir):
104104

105105
printed = cap_out.get()
106106
log_file = os.path.join(mock_store_dir, 'pre-commit.log')
107-
assert printed == (
108-
'msg: FatalError: hai\n'
109-
'Check the log at {}\n'.format(log_file)
110-
)
107+
printed_lines = printed.split('\n')
108+
assert len(printed_lines) == 6, printed_lines
109+
assert printed_lines[0] == 'msg: FatalError: hai'
110+
assert re.match(r'^pre-commit.version=\d+\.\d+\.\d+$', printed_lines[1])
111+
assert printed_lines[2].startswith('sys.version=')
112+
assert printed_lines[3].startswith('sys.executable=')
113+
assert printed_lines[4] == 'Check the log at {}'.format(log_file)
114+
assert printed_lines[5] == '' # checks for \n at the end of last line
111115

112116
assert os.path.exists(log_file)
113117
with io.open(log_file) as f:
114-
assert f.read() == (
115-
'msg: FatalError: hai\n'
116-
"I'm a stacktrace\n"
118+
logged_lines = f.read().split('\n')
119+
assert len(logged_lines) == 6, logged_lines
120+
assert logged_lines[0] == 'msg: FatalError: hai'
121+
assert re.match(
122+
r'^pre-commit.version=\d+\.\d+\.\d+$',
123+
printed_lines[1],
117124
)
125+
assert logged_lines[2].startswith('sys.version=')
126+
assert logged_lines[3].startswith('sys.executable=')
127+
assert logged_lines[4] == "I'm a stacktrace"
128+
# checks for \n at the end of stack trace
129+
assert printed_lines[5] == ''
118130

119131

120132
def test_error_handler_non_ascii_exception(mock_store_dir):
@@ -136,7 +148,7 @@ def test_error_handler_no_tty(tempdir_factory):
136148
pre_commit_home=pre_commit_home,
137149
)
138150
log_file = os.path.join(pre_commit_home, 'pre-commit.log')
139-
assert output[1].replace('\r', '') == (
140-
'An unexpected error has occurred: ValueError: ☃\n'
141-
'Check the log at {}\n'.format(log_file)
142-
)
151+
output_lines = output[1].replace('\r', '').split('\n')
152+
assert output_lines[0] == 'An unexpected error has occurred: ValueError: ☃'
153+
assert output_lines[-2] == 'Check the log at {}'.format(log_file)
154+
assert output_lines[-1] == '' # checks for \n at the end of stack trace

tests/main_test.py

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -164,11 +164,14 @@ def test_expected_fatal_error_no_git_repo(in_tmpdir, cap_out, mock_store_dir):
164164
with pytest.raises(SystemExit):
165165
main.main([])
166166
log_file = os.path.join(mock_store_dir, 'pre-commit.log')
167-
assert cap_out.get() == (
167+
cap_out_lines = cap_out.get().split('\n')
168+
assert (
169+
cap_out_lines[0] ==
168170
'An error has occurred: FatalError: git failed. '
169-
'Is it installed, and are you in a Git repository directory?\n'
170-
'Check the log at {}\n'.format(log_file)
171+
'Is it installed, and are you in a Git repository directory?'
171172
)
173+
assert cap_out_lines[-2] == 'Check the log at {}'.format(log_file)
174+
assert cap_out_lines[-1] == '' # checks for \n at the end of error message
172175

173176

174177
def test_warning_on_tags_only(mock_commands, cap_out, mock_store_dir):

0 commit comments

Comments
 (0)
pFad - Phonifier reborn

Pfad - The Proxy pFad © 2024 Your Company Name. All rights reserved.





Check this box to remove all script contents from the fetched content.



Check this box to remove all images from the fetched content.


Check this box to remove all CSS styles from the fetched content.


Check this box to keep images inefficiently compressed and original size.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy