290df027e3
This library is a backport (to 2.x versions of Python) of the code that is found in the mainline versions of Python 3.x. It is being included so that networking vendors, and others, can make use of it without needing to add a python module dependency to their own modules. A separate dependency would add to user burden of satisfying those dependencies before using some Ansible modules. In a previous core meeting, this was approved. Naming of the directory it is found in was up for debate, but "compat" was the first directory to have some sort of concensus.
32 lines
849 B
Python
Executable file
32 lines
849 B
Python
Executable file
#!/usr/bin/env python
|
|
from __future__ import print_function
|
|
|
|
import os
|
|
import re
|
|
import sys
|
|
|
|
ASSERT_RE = re.compile(r'.*(?<![-:a-zA-Z#][ -])\bassert\b(?!:).*')
|
|
|
|
|
|
def main():
|
|
skip = set([
|
|
'test/sanity/code-smell/%s' % os.path.basename(__file__),
|
|
'lib/ansible/module_utils/compat/ipaddress.py',
|
|
])
|
|
|
|
for path in sys.argv[1:] or sys.stdin.read().splitlines():
|
|
if path in skip:
|
|
continue
|
|
|
|
with open(path, 'r') as f:
|
|
for i, line in enumerate(f.readlines()):
|
|
matches = ASSERT_RE.findall(line)
|
|
|
|
if matches:
|
|
lineno = i + 1
|
|
colno = line.index('assert') + 1
|
|
print('%s:%d:%d: raise AssertionError instead of: %s' % (path, lineno, colno, matches[0][colno - 1:]))
|
|
|
|
|
|
if __name__ == '__main__':
|
|
main()
|