1414 ),
1515)
1616def test_fixes_trailing_whitespace (input_s , expected , tmpdir ):
17- path = tmpdir .join ('file.txt ' )
17+ path = tmpdir .join ('file.md ' )
1818 path .write (input_s )
1919 assert main ((path .strpath ,)) == 1
2020 assert path .read () == expected
@@ -36,89 +36,39 @@ def test_ok_with_dos_line_endings(tmpdir):
3636 assert ret == 0
3737
3838
39- def test_markdown_ok (tmpdir ):
40- filename = tmpdir .join ('foo.md' )
41- filename .write_binary (b'foo \n ' )
42- ret = main ((filename .strpath ,))
43- assert filename .read_binary () == b'foo \n '
44- assert ret == 0
45-
46-
47- # filename, expected input, expected output
48- MD_TESTS_1 = (
49- ('foo.md' , 'foo \n bar \n ' , 'foo \n bar\n ' ),
50- ('bar.Markdown' , 'bar \n baz\t \n \t \n ' , 'bar \n baz\n \n ' ),
51- ('.md' , 'baz \n quux \t \n \t \n ' , 'baz\n quux\n \n ' ),
52- ('txt' , 'foo \n baz \n \t \n ' , 'foo\n baz\n \n ' ),
53- )
54-
55-
56- @pytest .mark .parametrize (('filename' , 'input_s' , 'output' ), MD_TESTS_1 )
57- def test_fixes_trailing_markdown_whitespace (filename , input_s , output , tmpdir ):
58- path = tmpdir .join (filename )
59- path .write (input_s )
60- ret = main ([path .strpath ])
39+ @pytest .mark .parametrize ('ext' , ('md' , 'Md' , '.md' , '*' ))
40+ def test_fixes_markdown_files (tmpdir , ext ):
41+ path = tmpdir .join ('test.md' )
42+ path .write (
43+ 'foo \n ' # leaves alone
44+ 'bar \n ' # less than two so it is removed
45+ 'baz \n ' # more than two so it becomes two spaces
46+ '\t \n ' # trailing tabs are stripped anyway
47+ '\n ' , # whitespace at the end of the file is removed
48+ )
49+ ret = main ((path .strpath , '--markdown-linebreak-ext={}' .format (ext )))
6150 assert ret == 1
62- assert path .read () == output
51+ assert path .read () == (
52+ 'foo \n '
53+ 'bar\n '
54+ 'baz \n '
55+ '\n '
56+ '\n '
57+ )
6358
6459
65- # filename, expected input, expected output
66- MD_TESTS_2 = (
67- ('foo.txt' , 'foo \n bar \n \n ' , 'foo \n bar\n \n ' ),
68- ('bar.Markdown' , 'bar \n baz\t \n \t \n ' , 'bar \n baz\n \n ' ),
69- ('bar.MD' , 'bar \n baz\t \n \t \n ' , 'bar \n baz \n \n ' ),
70- ('.txt' , 'baz \n quux \t \n \t \n ' , 'baz\n quux\n \n ' ),
71- ('txt' , 'foo \n baz \n \t \n ' , 'foo\n baz\n \n ' ),
72- )
73-
74-
75- @pytest .mark .parametrize (('filename' , 'input_s' , 'output' ), MD_TESTS_2 )
76- def test_markdown_linebreak_ext_opt (filename , input_s , output , tmpdir ):
77- path = tmpdir .join (filename )
78- path .write (input_s )
79- ret = main (('--markdown-linebreak-ext=TxT' , path .strpath ))
80- assert ret == 1
81- assert path .read () == output
82-
83-
84- # filename, expected input, expected output
85- MD_TESTS_3 = (
86- ('foo.baz' , 'foo \n bar \n ' , 'foo \n bar\n ' ),
87- ('bar' , 'bar \n baz\t \n \t \n ' , 'bar \n baz\n \n ' ),
88- )
89-
90-
91- @pytest .mark .parametrize (('filename' , 'input_s' , 'output' ), MD_TESTS_3 )
92- def test_markdown_linebreak_ext_opt_all (filename , input_s , output , tmpdir ):
93- path = tmpdir .join (filename )
94- path .write (input_s )
95- # need to make sure filename is not treated as argument to option
96- ret = main (('--markdown-linebreak-ext=*' , path .strpath ))
97- assert ret == 1
98- assert path .read () == output
99-
100-
101- @pytest .mark .parametrize (('arg' ), ('--' , 'a.b' , 'a/b' ))
60+ @pytest .mark .parametrize ('arg' , ('--' , 'a.b' , 'a/b' , '' ))
10261def test_markdown_linebreak_ext_badopt (arg ):
10362 with pytest .raises (SystemExit ) as excinfo :
10463 main (['--markdown-linebreak-ext' , arg ])
10564 assert excinfo .value .code == 2
10665
10766
108- # filename, expected input, expected output
109- MD_TESTS_4 = (
110- ('bar.md' , 'bar \n baz\t \n \t \n ' , 'bar\n baz\n \n ' ),
111- ('bar.markdown' , 'baz \n quux \n ' , 'baz\n quux\n ' ),
112- )
113-
114-
115- @pytest .mark .parametrize (('filename' , 'input_s' , 'output' ), MD_TESTS_4 )
116- def test_no_markdown_linebreak_ext_opt (filename , input_s , output , tmpdir ):
117- path = tmpdir .join (filename )
118- path .write (input_s )
119- ret = main (['--no-markdown-linebreak-ext' , path .strpath ])
120- assert ret == 1
121- assert path .read () == output
67+ def test_prints_warning_with_no_markdown_ext (capsys , tmpdir ):
68+ f = tmpdir .join ('f' ).ensure ()
69+ assert main ((f .strpath , '--no-markdown-linebreak-ext' )) == 0
70+ out , _ = capsys .readouterr ()
71+ assert out == '--no-markdown-linebreak-ext now does nothing!\n '
12272
12373
12474def test_preserve_non_utf8_file (tmpdir ):
0 commit comments