From 178292d2cd9fd66fbbd44cab3c3c5883c1281d2e Mon Sep 17 00:00:00 2001 From: Matt Clay Date: Thu, 25 Aug 2016 07:44:31 -0700 Subject: [PATCH] Fix file and copy modules on py3 and enable tests. (#17239) - Fix octal formatting of file mode in module response on py3. - Convert file path to unicode in copy action. - Enable file and copy module tests for py3 now that they pass. --- lib/ansible/module_utils/basic.py | 2 +- lib/ansible/plugins/action/copy.py | 2 +- test/utils/shippable/python3-test-tag-blacklist.txt | 2 -- 3 files changed, 2 insertions(+), 4 deletions(-) diff --git a/lib/ansible/module_utils/basic.py b/lib/ansible/module_utils/basic.py index cb969b9ceed..f7a9bbf4141 100644 --- a/lib/ansible/module_utils/basic.py +++ b/lib/ansible/module_utils/basic.py @@ -1197,7 +1197,7 @@ class AnsibleModule(object): kwargs['owner'] = user kwargs['group'] = group st = os.lstat(path) - kwargs['mode'] = oct(stat.S_IMODE(st[stat.ST_MODE])) + kwargs['mode'] = '0%03o' % stat.S_IMODE(st[stat.ST_MODE]) # secontext not yet supported if os.path.islink(path): kwargs['state'] = 'link' diff --git a/lib/ansible/plugins/action/copy.py b/lib/ansible/plugins/action/copy.py index c5c266bf5d2..68b60d35da0 100644 --- a/lib/ansible/plugins/action/copy.py +++ b/lib/ansible/plugins/action/copy.py @@ -113,7 +113,7 @@ class ActionModule(ActionBase): # Walk the directory and append the file tuples to source_files. for base_path, sub_folders, files in os.walk(to_bytes(source)): for file in files: - full_path = os.path.join(base_path, file) + full_path = to_unicode(os.path.join(base_path, file), errors='strict') rel_path = full_path[sz:] if rel_path.startswith('/'): rel_path = rel_path[1:] diff --git a/test/utils/shippable/python3-test-tag-blacklist.txt b/test/utils/shippable/python3-test-tag-blacklist.txt index 3da1b221cc6..198b49a0f05 100644 --- a/test/utils/shippable/python3-test-tag-blacklist.txt +++ b/test/utils/shippable/python3-test-tag-blacklist.txt @@ -3,8 +3,6 @@ test_apt test_assemble test_async test_authorized_key -test_copy -test_file test_filters test_gem test_get_url