mirror of
https://github.com/pre-commit/pre-commit-hooks.git
synced 2026-03-30 02:16:52 +00:00
80 lines
1.3 KiB
Python
80 lines
1.3 KiB
Python
from __future__ import absolute_import
|
|
from __future__ import print_function
|
|
from __future__ import unicode_literals
|
|
|
|
import pytest
|
|
|
|
from pre_commit_hooks.string_fixer import main
|
|
|
|
TESTS = (
|
|
# Base cases
|
|
(
|
|
"''",
|
|
"''",
|
|
0
|
|
),
|
|
(
|
|
'""',
|
|
"''",
|
|
1
|
|
),
|
|
(
|
|
r'"\'"',
|
|
r'"\'"',
|
|
0
|
|
),
|
|
(
|
|
r'"\""',
|
|
r'"\""',
|
|
0
|
|
),
|
|
(
|
|
r"'\"\"'",
|
|
r"'\"\"'",
|
|
0
|
|
),
|
|
# String somewhere in the line
|
|
(
|
|
'x = "foo"',
|
|
"x = 'foo'",
|
|
1
|
|
),
|
|
# Test escaped characters
|
|
(
|
|
r'"\'"',
|
|
r'"\'"',
|
|
0
|
|
),
|
|
# Docstring
|
|
(
|
|
'""" Foo """',
|
|
'""" Foo """',
|
|
0
|
|
),
|
|
# Fuck it, won't even try to fix
|
|
(
|
|
"""
|
|
x = " \\n
|
|
foo \\n
|
|
"\n
|
|
""",
|
|
"""
|
|
x = " \\n
|
|
foo \\n
|
|
"\n
|
|
""",
|
|
0
|
|
),
|
|
)
|
|
|
|
|
|
@pytest.mark.parametrize(('input_s', 'expected_output', 'expected_retval'), TESTS)
|
|
def test_rewrite(input_s, expected_output, expected_retval, tmpdir):
|
|
tmpfile = tmpdir.join('file.txt')
|
|
|
|
with open(tmpfile.strpath, 'w') as f:
|
|
f.write(input_s)
|
|
|
|
retval = main([tmpfile.strpath])
|
|
assert tmpfile.read() == expected_output
|
|
assert retval == expected_retval
|