Anton Shestakov <av6@dwimlabs.net>, Thu, 23 Jun 2016 22:23:39 +0800
incoming: use named groups in start-of-the-string regex
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 errors, warnings, extra = mlo('hello.py:42:1: W123 clowntown ahoy') assert sorted(extra.keys()) == ['cls', 'fileline', 'filename'] assert extra['cls'] == 'warning' assert extra['filename'] == 'hello.py' assert extra['fileline'] == 42 errors, warnings, extra = mlo('file with spaces:007:001: [error] oops!') assert sorted(extra.keys()) == ['cls', 'fileline', 'filename'] assert extra['cls'] == 'error' assert extra['filename'] == 'file with spaces' assert extra['fileline'] == 7 errors, warnings, extra = mlo('requirements.txt:1:1: PIL is obsolete.') assert sorted(extra.keys()) == ['cls', 'fileline', 'filename'] assert extra['cls'] == 'warning' assert extra['filename'] == 'requirements.txt' assert extra['fileline'] == 1 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('~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/scm/projects/hello-world') assert result == ('example.com', 'scm', 'projects/hello-world') result = parse_project_url('https://example.com///hello-world//') assert result == ('example.com', None, 'hello-world')