Django 1.10: Add tool to check urls.

Checking urls through linter was proving to be difficult as
the urls can span multiple lines.
This commit is contained in:
Umair Khan 2016-11-10 16:05:16 +05:00
parent 86b75aade2
commit 07d73996d4
2 changed files with 36 additions and 0 deletions

30
tools/check-urls Executable file
View File

@ -0,0 +1,30 @@
#!/usr/bin/env python
from __future__ import absolute_import
from __future__ import print_function
import re
import sys
def check_urls():
# type: () -> bool
url_files = ['zproject/urls.py',
'zproject/dev_urls.py',
'zproject/legacy_urls.py',
'analytics/urls.py',
'zilencer/urls.py']
pattern_1 = "\s+\[?url\(.+,\s*'.+'\s*,\s*.*\)"
pattern_2 = '\s+\[?url\(.+,\s*".+"\s*,\s*.*\)'
for url_file in url_files:
with open(url_file) as f:
data = f.read()
for pattern in (pattern_1, pattern_2):
r = re.search(pattern, data)
if r:
print('View should not be a string: {}'.format(r.group()))
sys.exit(1)
if __name__ == '__main__':
check_urls()

View File

@ -456,6 +456,12 @@ def run():
return func return func
with bright_red_output(): with bright_red_output():
@lint
def check_urls():
# type: () -> int
result = subprocess.call(['tools/check-urls'])
return result
@lint @lint
def templates(): def templates():
# type: () -> int # type: () -> int