summaryrefslogtreecommitdiff
path: root/test/sanity/code-smell/required-and-default-attributes.py
diff options
context:
space:
mode:
authorMatt Clay <matt@mystile.com>2018-02-21 20:09:13 -0800
committerGitHub <noreply@github.com>2018-02-21 20:09:13 -0800
commit891f4f3b2d1b2fcab1b64e0ea942d186f98b7406 (patch)
tree46c34272bb37e8e1427919c0759e149a683fcc90 /test/sanity/code-smell/required-and-default-attributes.py
parenta4df4d33ac72e048694f662a358d96b7f487bf83 (diff)
downloadansible-891f4f3b2d1b2fcab1b64e0ea942d186f98b7406.tar.gz
Upgrade more code-smell tests. (#36560)
* Enhance no-dict-* code-smell tests. * Enhance no-basestring code-smell test. * Enhance no-get-exception code-smell test. * Enhance empty-init code-smell test. * Enhance required-and-default-attribute test. * Remove unused code-smell test.
Diffstat (limited to 'test/sanity/code-smell/required-and-default-attributes.py')
-rwxr-xr-xtest/sanity/code-smell/required-and-default-attributes.py27
1 files changed, 27 insertions, 0 deletions
diff --git a/test/sanity/code-smell/required-and-default-attributes.py b/test/sanity/code-smell/required-and-default-attributes.py
new file mode 100755
index 0000000000..5c6f86c5b9
--- /dev/null
+++ b/test/sanity/code-smell/required-and-default-attributes.py
@@ -0,0 +1,27 @@
+#!/usr/bin/env python
+
+import os
+import re
+import sys
+
+
+def main():
+ skip = set([
+ 'test/sanity/code-smell/%s' % os.path.basename(__file__),
+ ])
+
+ for path in sys.argv[1:]:
+ if path in skip:
+ continue
+
+ with open(path, 'r') as path_fd:
+ for line, text in enumerate(path_fd.readlines()):
+ match = re.search(r'(FieldAttribute.*(default|required).*(default|required))', text)
+
+ if match:
+ print('%s:%d:%d: use only one of `default` or `required` with `FieldAttribute`' % (
+ path, line + 1, match.start(1) + 1))
+
+
+if __name__ == '__main__':
+ main()