validate_modules: fails with .id attribute not found (#73322)
* validate_modules: fails with .id attribute not found This patch addresses a problem in the `found_try_except_import` test. This module tries to identify lines like: `HAS_FOO = True` In this case, the target (`HAS_FOO`) is of type `ast.Name` and has a `id` attribute which provide the name. In my case, I've a line that set a module attribute`. In this case, the target (`module.var`) has the type `ast.Attribute` and no `id` attribute. The code trigger an `AttributeError` exception. This patch ensures we compare a `ast.Name`. * Update test/lib/ansible_test/_data/sanity/validate-modules/validate_modules/main.py
This commit is contained in:
parent
a78a416e85
commit
7cf80f50d1
2 changed files with 5 additions and 0 deletions
|
@ -0,0 +1,3 @@
|
||||||
|
---
|
||||||
|
bugfixes:
|
||||||
|
- validate-modules - do not raise an ``AttributeError`` if a value is assigned to a module attribute in a try/except block.
|
|
@ -666,6 +666,8 @@ class ModuleValidator(Validator):
|
||||||
found_try_except_import = True
|
found_try_except_import = True
|
||||||
if isinstance(grandchild, ast.Assign):
|
if isinstance(grandchild, ast.Assign):
|
||||||
for target in grandchild.targets:
|
for target in grandchild.targets:
|
||||||
|
if not isinstance(target, ast.Name):
|
||||||
|
continue
|
||||||
if target.id.lower().startswith('has_'):
|
if target.id.lower().startswith('has_'):
|
||||||
found_has = True
|
found_has = True
|
||||||
if found_try_except_import and not found_has:
|
if found_try_except_import and not found_has:
|
||||||
|
|
Loading…
Reference in a new issue