ansible/test/sanity/code-smell/future-import-boilerplate.py
Matt Clay f274cefa59
Consolidate sanity test ignore entries. (#59665)
* Update empty-init test.
* Update future-import-boilerplate test.
* Update line-endings test.
* Update metaclass-boilerplate test.
* Update no-assert test.
* Update no-basestring test.
* Update no-dict-iteritems test.
* Update no-dict-iterkeys test.
* Update no-dict-itervalues test.
* Update no-get-exception test.
* Update no-main-display test.
* Update no-smart-quotes test.
* Update no-unicode-literals test.
* Update no-unwanted-files test.
* Update replace-urlopen test.
* Update required-and-default-attributes test.
* Update shebang test.
* Update test-constraints test.
* Update use-argspec-type-path test.
* Update use-compat-six test.
2019-07-26 15:26:39 -07:00

43 lines
1.2 KiB
Python
Executable file

#!/usr/bin/env python
from __future__ import (absolute_import, division, print_function)
__metaclass__ = type
import sys
def main():
# We classify files in these directories as ones we don't care about fixing (at least for now)
prune = (
'contrib/inventory/',
'contrib/vault/',
'docs/',
'examples/',
'test/integration/',
'test/legacy/',
'test/units/',
)
for path in sys.argv[1:] or sys.stdin.read().splitlines():
if any(path.startswith(p) for p in prune):
continue
with open(path, 'rb') as path_fd:
lines = path_fd.read().splitlines()
missing = True
if not lines:
# Files are allowed to be empty of everything including boilerplate
missing = False
for text in lines:
if text in (b'from __future__ import (absolute_import, division, print_function)',
b'from __future__ import absolute_import, division, print_function'):
missing = False
break
if missing:
print('%s: missing: from __future__ import (absolute_import, division, print_function)' % path)
if __name__ == '__main__':
main()