# HG changeset patch # User Anton Shestakov <av6@dwimlabs.net> # Date 1467722644 -28800 # Node ID 4fced0617745ec8e689752c04bfafe00030f4e1e # Parent 699663b276acef9aa6f2a37acac5659f2d537c84 incoming: extract link start/end from linter output diff -r 699663b276ac -r 4fced0617745 incoming.py --- a/incoming.py Tue Jul 05 20:42:35 2016 +0800 +++ b/incoming.py Tue Jul 05 20:44:04 2016 +0800 @@ -40,10 +40,12 @@ warnings = 0 item = {} - m = re.match(r'^(?P<filename>.+):(?P<fileline>\d+):\d+: ', line) + m = re.match(r'^(?P<filename>.+):(?P<line_number>\d+):\d+: ', line) if m is not None: item['filename'] = m.group('filename') - item['fileline'] = int(m.group('fileline')) + item['line_number'] = int(m.group('line_number')) + item['link_start'] = m.start('filename') + item['link_end'] = m.end('line_number') rest = line[m.end():] patterns = ( diff -r 699663b276ac -r 4fced0617745 tests/test_incoming.py --- a/tests/test_incoming.py Tue Jul 05 20:42:35 2016 +0800 +++ b/tests/test_incoming.py Tue Jul 05 20:44:04 2016 +0800 @@ -3,7 +3,7 @@ def test_match_linter_output(): mlo = match_linter_output - usual_keys = ['cls', 'fileline', 'filename'] + usual_keys = ['cls', 'filename', 'line_number', 'link_end', 'link_start'] errors, warnings, extra = mlo('hello.py:42:1: W123 clowntown ahoy') assert errors == 0 @@ -11,7 +11,9 @@ assert sorted(extra.keys()) == usual_keys assert extra['cls'] == 'warning' assert extra['filename'] == 'hello.py' - assert extra['fileline'] == 42 + assert extra['line_number'] == 42 + assert extra['link_start'] == 0 + assert extra['link_end'] == 11 errors, warnings, extra = mlo('file with spaces:007:001: [error] oops!') assert errors == 1 @@ -19,7 +21,9 @@ assert sorted(extra.keys()) == usual_keys assert extra['cls'] == 'error' assert extra['filename'] == 'file with spaces' - assert extra['fileline'] == 7 + assert extra['line_number'] == 7 + assert extra['link_start'] == 0 + assert extra['link_end'] == 20 errors, warnings, extra = mlo('requirements.txt:1:1: PIL is obsolete.') assert errors == 0 @@ -27,7 +31,9 @@ assert sorted(extra.keys()) == usual_keys assert extra['cls'] == 'warning' assert extra['filename'] == 'requirements.txt' - assert extra['fileline'] == 1 + assert extra['line_number'] == 1 + assert extra['link_start'] == 0 + assert extra['link_end'] == 18 errors, warnings, extra = mlo('ham.lua:414:90: (E101) foo is not good') assert errors == 1 @@ -35,7 +41,19 @@ assert sorted(extra.keys()) == usual_keys assert extra['cls'] == 'error' assert extra['filename'] == 'ham.lua' - assert extra['fileline'] == 414 + assert extra['line_number'] == 414 + assert extra['link_start'] == 0 + assert extra['link_end'] == 11 + + errors, warnings, extra = mlo('backwards.js:9091:1: not perfect (W201)') + assert errors == 0 + assert warnings == 1 + assert sorted(extra.keys()) == usual_keys + assert extra['cls'] == 'warning' + assert extra['filename'] == 'backwards.js' + assert extra['line_number'] == 9091 + assert extra['link_start'] == 0 + assert extra['link_end'] == 17 def test_parse_project_url():