def test_custom_charset_change(tmpdir): # strip spaces only, no tabs path = tmpdir.join('file.txt') path.write('\ta \t \n') ret = main([path.strpath, '--chars', ' ']) assert ret == 1 assert path.read() == '\ta \t\n'
def test_preserve_non_utf8_file(tmpdir): non_utf8_bytes_content = b'<a>\xe9 \n</a>\n' path = tmpdir.join('file.txt') path.write_binary(non_utf8_bytes_content) ret = main([path.strpath]) assert ret == 1 assert path.size() == (len(non_utf8_bytes_content) - 1)
def test_preserve_non_utf8_file(tmpdir): non_utf8_bytes_content = b'<a>\xe9 \n</a>\n' path = tmpdir.join('file.txt') path.write_binary(non_utf8_bytes_content) ret = main([path.strpath]) assert ret == 1 assert path.size() == (len(non_utf8_bytes_content) - 1)
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
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((str(path), f'--markdown-linebreak-ext={ext}')) assert ret == 1 assert path.read() == ('foo \n' 'bar\n' 'baz \n' '\n' '\n')
def test_markdown_with_custom_charset(tmpdir): path = tmpdir.join('file.md') path.write('\ta \t \n') ret = main([path.strpath, '--chars', ' ', '--markdown-linebreak-ext', '*']) assert ret == 1 assert path.read() == '\ta \t \n'
def test_fixes_trailing_whitespace(input_s, expected, tmpdir): path = tmpdir.join('file.txt') path.write(input_s) assert main((path.strpath,)) == 1 assert path.read() == expected
def test_custom_charset_no_change(tmpdir): path = tmpdir.join('file.txt') path.write('\ta \t\n') ret = main([path.strpath, '--chars', ' ']) assert ret == 0
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_ok_no_newline_end_of_file(tmpdir): filename = tmpdir.join('f') filename.write_binary(b'foo\nbar') ret = main((filename.strpath,)) assert filename.read_binary() == b'foo\nbar' assert ret == 0
def test_ok_with_dos_line_endings(tmpdir): filename = tmpdir.join('f') filename.write_binary(b'foo\r\nbar\r\nbaz\r\n') ret = main((filename.strpath,)) assert filename.read_binary() == b'foo\r\nbar\r\nbaz\r\n' assert ret == 0
def test_markdown_linebreak_ext_badopt(arg): with pytest.raises(SystemExit) as excinfo: main(['--markdown-linebreak-ext', arg]) assert excinfo.value.code == 2
def test_fixes_trailing_whitespace(input_s, expected, tmpdir): path = tmpdir.join('file.md') path.write(input_s) assert main((path.strpath,)) == 1 assert path.read() == expected
def test_ok_no_newline_end_of_file(tmpdir): filename = tmpdir.join('f') filename.write_binary(b'foo\nbar') ret = main((filename.strpath,)) assert filename.read_binary() == b'foo\nbar' assert ret == 0
def test_markdown_linebreak_ext_badopt(arg): with pytest.raises(SystemExit) as excinfo: main(['--markdown-linebreak-ext', arg]) assert excinfo.value.code == 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
def test_fixes_trailing_markdown_whitespace(filename, input_s, output, tmpdir): path = tmpdir.join(filename) path.write(input_s) ret = main([path.strpath]) assert ret == 1 assert path.read() == output
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
def test_ok_with_dos_line_endings(tmpdir): filename = tmpdir.join('f') filename.write_binary(b'foo\r\nbar\r\nbaz\r\n') ret = main((filename.strpath,)) assert filename.read_binary() == b'foo\r\nbar\r\nbaz\r\n' assert ret == 0