Anton Shestakov <av6@dwimlabs.net>, Tue, 30 Jan 2018 12:21:40 +0800
viewer: d3 4.13.0
tests/test_incoming.py
Permissions: -rw-r--r--
from incoming import match_linter_output, parse_project_url def test_match_linter_output(): mlo = match_linter_output usual_keys = {'cls', 'filename', 'line_number', 'link_end', 'link_start'} errors, warnings, extra = mlo('hello.py:42:1: W123 clowntown ahoy') assert set(extra) == usual_keys | {'code'} assert extra['cls'] == 'warning' assert extra['code'] == 'W123' assert extra['filename'] == 'hello.py' assert extra['line_number'] == 42 assert extra['link_start'] == 0 assert extra['link_end'] == 11 errors, warnings, extra = mlo('s p a c e.yml:07:01: [error] oops! (uh-oh)') assert set(extra) == usual_keys | {'code'} assert extra['cls'] == 'error' assert extra['code'] == 'uh-oh' assert extra['filename'] == 's p a c e.yml' assert extra['line_number'] == 7 assert extra['link_start'] == 0 assert extra['link_end'] == 16 errors, warnings, extra = mlo('ham.lua:414:90: (E101) ham is stale') assert set(extra) == usual_keys | {'code'} assert extra['cls'] == 'error' assert extra['code'] == 'E101' assert extra['filename'] == 'ham.lua' 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 set(extra) == usual_keys | {'code'} assert extra['cls'] == 'warning' assert extra['code'] == 'W201' assert extra['filename'] == 'backwards.js' assert extra['line_number'] == 9091 assert extra['link_start'] == 0 assert extra['link_end'] == 17 errors, warnings, extra = mlo('helper.sh:121:5: note: hello. [SC1234]') assert set(extra) == usual_keys | {'code'} assert extra['cls'] == 'warning' assert extra['code'] == 'SC1234' assert extra['filename'] == 'helper.sh' assert extra['line_number'] == 121 assert extra['link_start'] == 0 assert extra['link_end'] == 13 errors, warnings, extra = mlo('requirements.txt:5:1: PIL is obsolete.') assert set(extra) == usual_keys assert extra['cls'] == 'warning' assert extra['filename'] == 'requirements.txt' assert extra['line_number'] == 5 assert extra['link_start'] == 0 assert extra['link_end'] == 18 def test_parse_project_url(): result = parse_project_url('https://example.com/alice/hello-world') assert result == ('example.com', 'alice', 'hello-world') result = parse_project_url('https://example.com/bob/a/b/c/') assert result == ('example.com', 'bob', 'a/b/c') result = parse_project_url('~alice/hello-world') assert result == ('self', '~alice', 'hello-world') result = parse_project_url('https://code.example.com/hello-world') assert result == ('code.example.com', None, 'hello-world') result = parse_project_url('https://example.com///hello-world//') assert result == ('example.com', None, 'hello-world')