Merge branch 'add-test-format'

This commit is contained in:
Regen
2020-02-29 19:53:28 +09:00
2 changed files with 75 additions and 16 deletions

View File

@@ -91,11 +91,12 @@ def main(args: List[str] = None):
parser = ArgumentParser() parser = ArgumentParser()
parser.add_argument('lists', type=Path, nargs='*', help='CMake list files') parser.add_argument('lists', type=Path, nargs='*', help='CMake list files')
parser.add_argument('-i', group = parser.add_mutually_exclusive_group()
group.add_argument('-i',
'--inplace', '--inplace',
action='store_true', action='store_true',
help='inplace edit') help='inplace edit')
parser.add_argument('-d', '--diff', action='store_true', help='show diff') group.add_argument('-d', '--diff', action='store_true', help='show diff')
parser.add_argument('--version', parser.add_argument('--version',
action='version', action='version',
version=f'%(prog)s {__version__}') version=f'%(prog)s {__version__}')
@@ -114,14 +115,12 @@ def main(args: List[str] = None):
if not remain: if not remain:
with listpath.open('w') as fp: with listpath.open('w') as fp:
fp.write(formatted) fp.write(formatted)
else: elif args.diff:
if args.diff:
diff = unified_diff(content.splitlines(True), diff = unified_diff(content.splitlines(True),
formatted.splitlines(True), str(listpath), formatted.splitlines(True), str(listpath),
str(listpath), '(before formatting)', str(listpath), '(before formatting)',
'(after formatting)') '(after formatting)')
diffstr = ''.join(diff) diffstr = ''.join(diff)
if diffstr:
print(diffstr, end='') print(diffstr, end='')
else: else:
print(formatted, end='') print(formatted, end='')

View File

@@ -1,4 +1,4 @@
from cmake_language_server.formatter import Formatter from cmake_language_server.formatter import Formatter, main
from cmake_language_server.parser import ListParser from cmake_language_server.parser import ListParser
@@ -72,3 +72,63 @@ if()
) # h ) # h
endif() endif()
''') ''')
def test_main_noinput(capsys):
main([])
captured = capsys.readouterr()
assert captured.out == ''
assert captured.err == ''
def test_main_file_1(capsys, tmp_path):
testfile1 = tmp_path / 'list1.cmake'
with testfile1.open('w') as fp:
fp.write(' a()')
main([str(testfile1)])
captured = capsys.readouterr()
assert captured.out == 'a()\n'
assert captured.err == ''
def test_main_file_2(capsys, tmp_path):
testfile1 = tmp_path / 'list1.cmake'
with testfile1.open('w') as fp:
fp.write(' a()')
testfile2 = tmp_path / 'list2.cmake'
with testfile2.open('w') as fp:
fp.write(' b()')
main([str(testfile1), str(testfile2)])
captured = capsys.readouterr()
assert captured.out == 'a()\nb()\n'
assert captured.err == ''
def test_main_inplace(capsys, tmp_path):
testfile1 = tmp_path / 'list1.cmake'
with testfile1.open('w') as fp:
fp.write(' a()')
main(['-i', str(testfile1)])
captured = capsys.readouterr()
assert captured.out == ''
assert captured.err == ''
with testfile1.open() as fp:
content = fp.read()
assert content == 'a()\n'
def test_main_diff(capsys, tmp_path):
testfile1 = tmp_path / 'list1.cmake'
with testfile1.open('w') as fp:
fp.write(' a()')
main(['-d', str(testfile1)])
captured = capsys.readouterr()
assert str(testfile1) in captured.out
assert '- a()' in captured.out
assert '+a()' in captured.out
assert captured.err == ''