diff --git a/v2/ansible/parsing/__init__.py b/v2/ansible/parsing/__init__.py
index 229be2622f1..39cfb2ac98c 100644
--- a/v2/ansible/parsing/__init__.py
+++ b/v2/ansible/parsing/__init__.py
@@ -219,5 +219,5 @@ def load_data_from_file(path, vault_password=None):
try:
return load_data(data)
- except YAMLError, exc:
+ except YAMLError as exc:
process_yaml_error(exc, data, path, show_content)
diff --git a/v2/ansible/parsing/vault/__init__.py b/v2/ansible/parsing/vault/__init__.py
index 3b83d2989e9..c1c5b65404a 100644
--- a/v2/ansible/parsing/vault/__init__.py
+++ b/v2/ansible/parsing/vault/__init__.py
@@ -191,7 +191,7 @@ class VaultEditor(object):
raise errors.AnsibleError("%s exists, please use 'edit' instead" % self.filename)
# drop the user into vim on file
- old_umask = os.umask(0077)
+ old_umask = os.umask(0o077)
call(self._editor_shell_command(self.filename))
tmpdata = self.read_data(self.filename)
this_vault = VaultLib(self.password)
@@ -225,7 +225,7 @@ class VaultEditor(object):
raise errors.AnsibleError(CRYPTO_UPGRADE)
# make sure the umask is set to a sane value
- old_mask = os.umask(0077)
+ old_mask = os.umask(0o077)
# decrypt to tmpfile
tmpdata = self.read_data(self.filename)
diff --git a/v2/ansible/playbook/base.py b/v2/ansible/playbook/base.py
index a992e19a5d0..e61e1f65453 100644
--- a/v2/ansible/playbook/base.py
+++ b/v2/ansible/playbook/base.py
@@ -37,7 +37,7 @@ class Base:
# each class knows attributes set upon it, see Task.py for example
self._attributes = dict()
- for (name, value) in self._get_base_attributes().iteritems():
+ for (name, value) in iteritems(self._get_base_attributes()):
self._attributes[name] = value.default
def _get_base_attributes(self):
@@ -72,7 +72,7 @@ class Base:
ds = self.munge(ds)
# walk all attributes in the class
- for (name, attribute) in self._get_base_attributes().iteritems():
+ for (name, attribute) in iteritems(self._get_base_attributes()):
# copy the value over unless a _load_field method is defined
if name in ds:
@@ -91,7 +91,7 @@ class Base:
''' validation that is done at parse time, not load time '''
# walk all fields in the object
- for (name, attribute) in self._get_base_attributes().iteritems():
+ for (name, attribute) in iteritems(self._get_base_attributes()):
# run validator only if present
method = getattr(self, '_validate_%s' % name, None)
diff --git a/v2/test/errors/test_errors.py b/v2/test/errors/test_errors.py
index 6088f3bd5ee..5d1868a5a4a 100644
--- a/v2/test/errors/test_errors.py
+++ b/v2/test/errors/test_errors.py
@@ -57,7 +57,7 @@ class TestErrors(unittest.TestCase):
m = mock_open()
m.return_value.readlines.return_value = ['this is line 1\n']
- with patch('__builtin__.open', m):
+ with patch('{0}.open'.format(BUILTINS), m):
# this line will be found in the file
self.obj._data_source = 'foo.yml'
self.obj._line_number = 1
diff --git a/v2/test/plugins/__init__.py b/v2/test/plugins/__init__.py
index 1f84012e014..785fc459921 100644
--- a/v2/test/plugins/__init__.py
+++ b/v2/test/plugins/__init__.py
@@ -14,3 +14,8 @@
#
# You should have received a copy of the GNU General Public License
# along with Ansible. If not, see .
+
+# Make coding more python3-ish
+from __future__ import (absolute_import, division, print_function)
+__metaclass__ = type
+
diff --git a/v2/test/plugins/test_plugins.py b/v2/test/plugins/test_plugins.py
index 62d8ee4dfbc..e6bef809e6a 100644
--- a/v2/test/plugins/test_plugins.py
+++ b/v2/test/plugins/test_plugins.py
@@ -15,10 +15,16 @@
# You should have received a copy of the GNU General Public License
# along with Ansible. If not, see .
+
+# Make coding more python3-ish
+from __future__ import (absolute_import, division, print_function)
+__metaclass__ = type
+
import os
-import unittest
+from ansible.compat.tests import unittest
+from ansible.compat.tests import BUILTINS
-from mock import mock_open, patch, MagicMock
+from ansible.compat.tests.mock import mock_open, patch, MagicMock
from ansible.plugins import MODULE_CACHE, PATH_CACHE, PLUGIN_PATH_CACHE, _basedirs, push_basedir, PluginLoader
@@ -54,7 +60,7 @@ class TestErrors(unittest.TestCase):
m = MagicMock()
m.return_value.__file__ = '/path/to/my/test.py'
pl = PluginLoader('test', 'foo.bar.bam', 'test', 'test_plugin')
- with patch('__builtin__.__import__', m):
+ with patch('{0}.__import__'.format(BUILTINS), m):
self.assertEqual(pl._get_package_paths(), ['/path/to/my/bar/bam'])
def test_plugins__get_paths(self):