Default --no-markdown-linebreak-ext for trailing-whitespace
diff --git a/tests/trailing_whitespace_fixer_test.py b/tests/trailing_whitespace_fixer_test.py
index 7ee9e63..82c9b6d 100644
--- a/tests/trailing_whitespace_fixer_test.py
+++ b/tests/trailing_whitespace_fixer_test.py
@@ -14,7 +14,7 @@
),
)
def test_fixes_trailing_whitespace(input_s, expected, tmpdir):
- path = tmpdir.join('file.txt')
+ path = tmpdir.join('file.md')
path.write(input_s)
assert main((path.strpath,)) == 1
assert path.read() == expected
@@ -36,89 +36,39 @@
assert ret == 0
-def test_markdown_ok(tmpdir):
- filename = tmpdir.join('foo.md')
- filename.write_binary(b'foo \n')
- ret = main((filename.strpath,))
- assert filename.read_binary() == b'foo \n'
- assert ret == 0
-
-
-# filename, expected input, expected output
-MD_TESTS_1 = (
- ('foo.md', 'foo \nbar \n ', 'foo \nbar\n'),
- ('bar.Markdown', 'bar \nbaz\t\n\t\n', 'bar \nbaz\n\n'),
- ('.md', 'baz \nquux \t\n\t\n', 'baz\nquux\n\n'),
- ('txt', 'foo \nbaz \n\t\n', 'foo\nbaz\n\n'),
-)
-
-
-@pytest.mark.parametrize(('filename', 'input_s', 'output'), MD_TESTS_1)
-def test_fixes_trailing_markdown_whitespace(filename, input_s, output, tmpdir):
- path = tmpdir.join(filename)
- path.write(input_s)
- ret = main([path.strpath])
+@pytest.mark.parametrize('ext', ('md', 'Md', '.md', '*'))
+def test_fixes_markdown_files(tmpdir, ext):
+ path = tmpdir.join('test.md')
+ path.write(
+ 'foo \n' # leaves alone
+ 'bar \n' # less than two so it is removed
+ 'baz \n' # more than two so it becomes two spaces
+ '\t\n' # trailing tabs are stripped anyway
+ '\n ', # whitespace at the end of the file is removed
+ )
+ ret = main((path.strpath, '--markdown-linebreak-ext={}'.format(ext)))
assert ret == 1
- assert path.read() == output
+ assert path.read() == (
+ 'foo \n'
+ 'bar\n'
+ 'baz \n'
+ '\n'
+ '\n'
+ )
-# filename, expected input, expected output
-MD_TESTS_2 = (
- ('foo.txt', 'foo \nbar \n \n', 'foo \nbar\n\n'),
- ('bar.Markdown', 'bar \nbaz\t\n\t\n', 'bar \nbaz\n\n'),
- ('bar.MD', 'bar \nbaz\t \n\t\n', 'bar \nbaz \n\n'),
- ('.txt', 'baz \nquux \t\n\t\n', 'baz\nquux\n\n'),
- ('txt', 'foo \nbaz \n\t\n', 'foo\nbaz\n\n'),
-)
-
-
-@pytest.mark.parametrize(('filename', 'input_s', 'output'), MD_TESTS_2)
-def test_markdown_linebreak_ext_opt(filename, input_s, output, tmpdir):
- path = tmpdir.join(filename)
- path.write(input_s)
- ret = main(('--markdown-linebreak-ext=TxT', path.strpath))
- assert ret == 1
- assert path.read() == output
-
-
-# filename, expected input, expected output
-MD_TESTS_3 = (
- ('foo.baz', 'foo \nbar \n ', 'foo \nbar\n'),
- ('bar', 'bar \nbaz\t\n\t\n', 'bar \nbaz\n\n'),
-)
-
-
-@pytest.mark.parametrize(('filename', 'input_s', 'output'), MD_TESTS_3)
-def test_markdown_linebreak_ext_opt_all(filename, input_s, output, tmpdir):
- path = tmpdir.join(filename)
- path.write(input_s)
- # need to make sure filename is not treated as argument to option
- ret = main(('--markdown-linebreak-ext=*', path.strpath))
- assert ret == 1
- assert path.read() == output
-
-
-@pytest.mark.parametrize(('arg'), ('--', 'a.b', 'a/b'))
+@pytest.mark.parametrize('arg', ('--', 'a.b', 'a/b', ''))
def test_markdown_linebreak_ext_badopt(arg):
with pytest.raises(SystemExit) as excinfo:
main(['--markdown-linebreak-ext', arg])
assert excinfo.value.code == 2
-# filename, expected input, expected output
-MD_TESTS_4 = (
- ('bar.md', 'bar \nbaz\t \n\t\n', 'bar\nbaz\n\n'),
- ('bar.markdown', 'baz \nquux \n', 'baz\nquux\n'),
-)
-
-
-@pytest.mark.parametrize(('filename', 'input_s', 'output'), MD_TESTS_4)
-def test_no_markdown_linebreak_ext_opt(filename, input_s, output, tmpdir):
- path = tmpdir.join(filename)
- path.write(input_s)
- ret = main(['--no-markdown-linebreak-ext', path.strpath])
- assert ret == 1
- assert path.read() == output
+def test_prints_warning_with_no_markdown_ext(capsys, tmpdir):
+ f = tmpdir.join('f').ensure()
+ assert main((f.strpath, '--no-markdown-linebreak-ext')) == 0
+ out, _ = capsys.readouterr()
+ assert out == '--no-markdown-linebreak-ext now does nothing!\n'
def test_preserve_non_utf8_file(tmpdir):