diff --git a/test/sanity/code-smell/no-illegal-filenames.py b/test/sanity/code-smell/no-illegal-filenames.py index 182527d6b10..0e339cdd8b5 100755 --- a/test/sanity/code-smell/no-illegal-filenames.py +++ b/test/sanity/code-smell/no-illegal-filenames.py @@ -5,8 +5,11 @@ # https://msdn.microsoft.com/en-us/library/aa365247#naming_conventions import os +import re import struct +from ansible.module_utils.basic import to_bytes + ILLEGAL_CHARS = [ b'<', b'>', @@ -62,16 +65,23 @@ def check_path(path, dir=False): if file_name[-1] in ILLEGAL_END_CHARS: errors.append("Illegal %s name end-char '%s': %s" % (type_name, file_name[-1], path)) - bfile = file_name.encode('utf-8') + bfile = to_bytes(file_name, encoding='utf-8') for char in ILLEGAL_CHARS: if char in bfile: - errors.append("Illegal char %s in %s name: %s" % (char, type_name, path.encode('utf-8'))) + bpath = to_bytes(path, encoding='utf-8') + errors.append("Illegal char %s in %s name: %s" % (char, type_name, bpath)) return errors def main(): errors = [] + pattern = re.compile("^./test/integration/targets/.*/backup") + for root, dirs, files in os.walk('.'): + # ignore test/integration/targets/*/backup + if pattern.match(root): + continue + for dir_name in dirs: errors += check_path(os.path.abspath(os.path.join(root, dir_name)), dir=True)