Skip to content

Commit 1238368

Browse files
committed
Fix python 2.6
1 parent 18249be commit 1238368

File tree

3 files changed

+27
-5
lines changed

3 files changed

+27
-5
lines changed

pre_commit/languages/node.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
import contextlib
2-
import subprocess
32

43
from pre_commit.languages import helpers
54
from pre_commit.languages import python
5+
from pre_commit.prefixed_command_runner import CalledProcessError
66

77

88
NODE_ENV = 'node_env'
@@ -38,7 +38,7 @@ def install_environment(repo_cmd_runner):
3838
# Try and use the system level node executable first
3939
try:
4040
python_env.run('nodeenv -n system {{prefix}}{0}'.format(NODE_ENV))
41-
except subprocess.CalledProcessError:
41+
except CalledProcessError:
4242
# TODO: log failure here
4343
# cleanup
4444
# TODO: local.path(NODE_ENV).delete()

pre_commit/prefixed_command_runner.py

Lines changed: 23 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,27 @@
44
import subprocess
55

66

7+
class CalledProcessError(RuntimeError):
8+
def __init__(self, returncode, cmd, expected_returncode, output=None):
9+
self.returncode = returncode
10+
self.cmd = cmd
11+
self.expected_returncode = expected_returncode
12+
self.output = output
13+
14+
def __str__(self):
15+
return (
16+
'Command: {0!r}\n'
17+
'Return code: {1}\n'
18+
'Expected return code {2}\n',
19+
'Output: {3!r}\n'.format(
20+
self.cmd,
21+
self.returncode,
22+
self.expected_returncode,
23+
self.output,
24+
),
25+
)
26+
27+
728
def _replace_cmd(cmd, **kwargs):
829
return [part.format(**kwargs) for part in cmd]
930

@@ -40,8 +61,8 @@ def run(self, cmd, retcode=0, stdin=None, **kwargs):
4061
returncode = proc.returncode
4162

4263
if retcode is not None and retcode != returncode:
43-
raise subprocess.CalledProcessError(
44-
returncode, replaced_cmd, output=(stdout, stderr),
64+
raise CalledProcessError(
65+
returncode, replaced_cmd, retcode, output=(stdout, stderr),
4566
)
4667

4768
return proc.returncode, stdout, stderr

tests/prefixed_command_runner_test.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66
from plumbum import local
77

88
from pre_commit.prefixed_command_runner import _replace_cmd
9+
from pre_commit.prefixed_command_runner import CalledProcessError
910
from pre_commit.prefixed_command_runner import PrefixedCommandRunner
1011

1112

@@ -129,7 +130,7 @@ def test_exists_does_exist(tmpdir):
129130

130131
def test_raises_on_error(popen_mock, makedirs_mock):
131132
popen_mock.return_value.returncode = 1
132-
with pytest.raises(subprocess.CalledProcessError):
133+
with pytest.raises(CalledProcessError):
133134
instance = PrefixedCommandRunner(
134135
'.', popen=popen_mock, makedirs=makedirs_mock,
135136
)

0 commit comments

Comments
 (0)