summaryrefslogtreecommitdiffstats
path: root/tests/string_fixer_test.py
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2022-01-30 11:02:58 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2022-01-30 11:02:58 +0000
commit307d578d739eb254ef3000fdde94271af9b8923e (patch)
treecf256ef8bea7b1cad51d3a662dd4d6885156e98b /tests/string_fixer_test.py
parentInitial commit. (diff)
downloadpre-commit-hooks-307d578d739eb254ef3000fdde94271af9b8923e.tar.xz
pre-commit-hooks-307d578d739eb254ef3000fdde94271af9b8923e.zip
Adding upstream version 4.1.0.upstream/4.1.0
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'tests/string_fixer_test.py')
-rw-r--r--tests/string_fixer_test.py54
1 files changed, 54 insertions, 0 deletions
diff --git a/tests/string_fixer_test.py b/tests/string_fixer_test.py
new file mode 100644
index 0000000..6ddb0ac
--- /dev/null
+++ b/tests/string_fixer_test.py
@@ -0,0 +1,54 @@
+import textwrap
+
+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),
+ (
+ textwrap.dedent(
+ """
+ x = " \\
+ foo \\
+ "\n
+ """,
+ ),
+ textwrap.dedent(
+ """
+ x = ' \\
+ foo \\
+ '\n
+ """,
+ ),
+ 1,
+ ),
+ ('"foo""bar"', "'foo''bar'", 1),
+)
+
+
+@pytest.mark.parametrize(('input_s', 'output', 'expected_retval'), TESTS)
+def test_rewrite(input_s, output, expected_retval, tmpdir):
+ path = tmpdir.join('file.py')
+ path.write(input_s)
+ retval = main([str(path)])
+ assert path.read() == output
+ assert retval == expected_retval
+
+
+def test_rewrite_crlf(tmpdir):
+ f = tmpdir.join('f.py')
+ f.write_binary(b'"foo"\r\n"bar"\r\n')
+ assert main((str(f),))
+ assert f.read_binary() == b"'foo'\r\n'bar'\r\n"