summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--lib/ansible/module_utils/facts.py7
-rw-r--r--lib/ansible/module_utils/shell.py6
-rw-r--r--lib/ansible/plugins/lookup/ini.py6
-rw-r--r--lib/ansible/template/__init__.py3
-rw-r--r--test/units/module_utils/basic/test_exit_json.py8
-rw-r--r--test/units/module_utils/basic/test_run_command.py8
-rw-r--r--test/units/parsing/yaml/test_loader.py25
-rw-r--r--test/units/plugins/connections/test_connection.py2
8 files changed, 38 insertions, 27 deletions
diff --git a/lib/ansible/module_utils/facts.py b/lib/ansible/module_utils/facts.py
index e698d780ff..23007e1689 100644
--- a/lib/ansible/module_utils/facts.py
+++ b/lib/ansible/module_utils/facts.py
@@ -34,7 +34,12 @@ import datetime
import getpass
import pwd
import ConfigParser
-import StringIO
+
+# py2 vs py3; replace with six via ziploader
+try:
+ from StringIO import StringIO
+except ImportError:
+ from io import StringIO
from string import maketrans
diff --git a/lib/ansible/module_utils/shell.py b/lib/ansible/module_utils/shell.py
index b9e798603c..bcb88fa790 100644
--- a/lib/ansible/module_utils/shell.py
+++ b/lib/ansible/module_utils/shell.py
@@ -19,7 +19,11 @@
import re
import socket
-from StringIO import StringIO
+# py2 vs py3; replace with six via ziploader
+try:
+ from StringIO import StringIO
+except ImportError:
+ from io import StringIO
try:
import paramiko
diff --git a/lib/ansible/plugins/lookup/ini.py b/lib/ansible/plugins/lookup/ini.py
index 3adbd2c7d6..0e68816dc3 100644
--- a/lib/ansible/plugins/lookup/ini.py
+++ b/lib/ansible/plugins/lookup/ini.py
@@ -17,7 +17,7 @@
from __future__ import (absolute_import, division, print_function)
__metaclass__ = type
-import StringIO
+from io import StringIO
import os
import ConfigParser
import re
@@ -28,8 +28,8 @@ from ansible.plugins.lookup import LookupBase
class LookupModule(LookupBase):
def read_properties(self, filename, key, dflt, is_regexp):
- config = StringIO.StringIO()
- config.write('[java_properties]\n' + open(filename).read())
+ config = StringIO()
+ config.write(u'[java_properties]\n' + open(filename).read())
config.seek(0, os.SEEK_SET)
self.cp.readfp(config)
return self.get_value(key, 'java_properties', dflt, is_regexp)
diff --git a/lib/ansible/template/__init__.py b/lib/ansible/template/__init__.py
index edb34bb4be..a7a8ac4a37 100644
--- a/lib/ansible/template/__init__.py
+++ b/lib/ansible/template/__init__.py
@@ -23,8 +23,9 @@ import ast
import contextlib
import os
import re
+from io import StringIO
-from ansible.compat.six import string_types, text_type, binary_type, StringIO
+from ansible.compat.six import string_types, text_type, binary_type
from jinja2 import Environment
from jinja2.loaders import FileSystemLoader
from jinja2.exceptions import TemplateSyntaxError, UndefinedError
diff --git a/test/units/module_utils/basic/test_exit_json.py b/test/units/module_utils/basic/test_exit_json.py
index 27bbb0f9e5..7d32c8082f 100644
--- a/test/units/module_utils/basic/test_exit_json.py
+++ b/test/units/module_utils/basic/test_exit_json.py
@@ -23,9 +23,9 @@ __metaclass__ = type
import copy
import json
import sys
+from io import BytesIO
from ansible.compat.tests import unittest
-from ansible.compat.six import StringIO
from ansible.module_utils import basic
from ansible.module_utils.basic import heuristic_log_sanitize
@@ -41,7 +41,7 @@ class TestAnsibleModuleExitJson(unittest.TestCase):
basic.MODULE_COMPLEX_ARGS = '{}'
self.old_stdout = sys.stdout
- self.fake_stream = StringIO()
+ self.fake_stream = BytesIO()
sys.stdout = self.fake_stream
self.module = basic.AnsibleModule(argument_spec=dict())
@@ -127,7 +127,7 @@ class TestAnsibleModuleExitValuesRemoved(unittest.TestCase):
def test_exit_json_removes_values(self):
self.maxDiff = None
for args, return_val, expected in self.dataset:
- sys.stdout = StringIO()
+ sys.stdout = BytesIO()
basic.MODULE_COMPLEX_ARGS = json.dumps(args)
module = basic.AnsibleModule(
argument_spec = dict(
@@ -146,7 +146,7 @@ class TestAnsibleModuleExitValuesRemoved(unittest.TestCase):
expected = copy.deepcopy(expected)
del expected['changed']
expected['failed'] = True
- sys.stdout = StringIO()
+ sys.stdout = BytesIO()
basic.MODULE_COMPLEX_ARGS = json.dumps(args)
module = basic.AnsibleModule(
argument_spec = dict(
diff --git a/test/units/module_utils/basic/test_run_command.py b/test/units/module_utils/basic/test_run_command.py
index 0db6fbe7b9..191560e961 100644
--- a/test/units/module_utils/basic/test_run_command.py
+++ b/test/units/module_utils/basic/test_run_command.py
@@ -22,16 +22,16 @@ __metaclass__ = type
import errno
import sys
import time
+from io import BytesIO
from ansible.compat.tests import unittest
-from ansible.compat.six import StringIO, BytesIO
from ansible.compat.tests.mock import call, MagicMock, Mock, patch, sentinel
from ansible.module_utils import basic
from ansible.module_utils.basic import AnsibleModule
-class OpenStringIO(StringIO):
- """StringIO with dummy close() method
+class OpenBytesIO(BytesIO):
+ """BytesIO with dummy close() method
So that you can inspect the content after close() was called.
"""
@@ -77,7 +77,7 @@ class TestAnsibleModuleRunCommand(unittest.TestCase):
self.subprocess = patch('ansible.module_utils.basic.subprocess').start()
self.cmd = Mock()
self.cmd.returncode = 0
- self.cmd.stdin = OpenStringIO()
+ self.cmd.stdin = OpenBytesIO()
self.cmd.stdout.fileno.return_value = sentinel.stdout
self.cmd.stderr.fileno.return_value = sentinel.stderr
self.subprocess.Popen.return_value = self.cmd
diff --git a/test/units/parsing/yaml/test_loader.py b/test/units/parsing/yaml/test_loader.py
index 8fd617eea1..48a60b6c53 100644
--- a/test/units/parsing/yaml/test_loader.py
+++ b/test/units/parsing/yaml/test_loader.py
@@ -20,8 +20,9 @@
from __future__ import (absolute_import, division, print_function)
__metaclass__ = type
+from io import StringIO
+
from six import text_type, binary_type
-from six.moves import StringIO
from collections import Sequence, Set, Mapping
from ansible.compat.tests import unittest
@@ -44,7 +45,7 @@ class TestAnsibleLoaderBasic(unittest.TestCase):
pass
def test_parse_number(self):
- stream = StringIO("""
+ stream = StringIO(u"""
1
""")
loader = AnsibleLoader(stream, 'myfile.yml')
@@ -53,7 +54,7 @@ class TestAnsibleLoaderBasic(unittest.TestCase):
# No line/column info saved yet
def test_parse_string(self):
- stream = StringIO("""
+ stream = StringIO(u"""
Ansible
""")
loader = AnsibleLoader(stream, 'myfile.yml')
@@ -64,7 +65,7 @@ class TestAnsibleLoaderBasic(unittest.TestCase):
self.assertEqual(data.ansible_pos, ('myfile.yml', 2, 17))
def test_parse_utf8_string(self):
- stream = StringIO("""
+ stream = StringIO(u"""
Cafè Eñyei
""")
loader = AnsibleLoader(stream, 'myfile.yml')
@@ -75,7 +76,7 @@ class TestAnsibleLoaderBasic(unittest.TestCase):
self.assertEqual(data.ansible_pos, ('myfile.yml', 2, 17))
def test_parse_dict(self):
- stream = StringIO("""
+ stream = StringIO(u"""
webster: daniel
oed: oxford
""")
@@ -93,7 +94,7 @@ class TestAnsibleLoaderBasic(unittest.TestCase):
self.assertEqual(data[u'oed'].ansible_pos, ('myfile.yml', 3, 22))
def test_parse_list(self):
- stream = StringIO("""
+ stream = StringIO(u"""
- a
- b
""")
@@ -109,7 +110,7 @@ class TestAnsibleLoaderBasic(unittest.TestCase):
self.assertEqual(data[1].ansible_pos, ('myfile.yml', 3, 19))
def test_parse_short_dict(self):
- stream = StringIO("""{"foo": "bar"}""")
+ stream = StringIO(u"""{"foo": "bar"}""")
loader = AnsibleLoader(stream, 'myfile.yml')
data = loader.get_single_data()
self.assertEqual(data, dict(foo=u'bar'))
@@ -117,7 +118,7 @@ class TestAnsibleLoaderBasic(unittest.TestCase):
self.assertEqual(data.ansible_pos, ('myfile.yml', 1, 1))
self.assertEqual(data[u'foo'].ansible_pos, ('myfile.yml', 1, 9))
- stream = StringIO("""foo: bar""")
+ stream = StringIO(u"""foo: bar""")
loader = AnsibleLoader(stream, 'myfile.yml')
data = loader.get_single_data()
self.assertEqual(data, dict(foo=u'bar'))
@@ -126,12 +127,12 @@ class TestAnsibleLoaderBasic(unittest.TestCase):
self.assertEqual(data[u'foo'].ansible_pos, ('myfile.yml', 1, 6))
def test_error_conditions(self):
- stream = StringIO("""{""")
+ stream = StringIO(u"""{""")
loader = AnsibleLoader(stream, 'myfile.yml')
self.assertRaises(ParserError, loader.get_single_data)
def test_front_matter(self):
- stream = StringIO("""---\nfoo: bar""")
+ stream = StringIO(u"""---\nfoo: bar""")
loader = AnsibleLoader(stream, 'myfile.yml')
data = loader.get_single_data()
self.assertEqual(data, dict(foo=u'bar'))
@@ -140,7 +141,7 @@ class TestAnsibleLoaderBasic(unittest.TestCase):
self.assertEqual(data[u'foo'].ansible_pos, ('myfile.yml', 2, 6))
# Initial indent (See: #6348)
- stream = StringIO(""" - foo: bar\n baz: qux""")
+ stream = StringIO(u""" - foo: bar\n baz: qux""")
loader = AnsibleLoader(stream, 'myfile.yml')
data = loader.get_single_data()
self.assertEqual(data, [{u'foo': u'bar', u'baz': u'qux'}])
@@ -154,7 +155,7 @@ class TestAnsibleLoaderBasic(unittest.TestCase):
class TestAnsibleLoaderPlay(unittest.TestCase):
def setUp(self):
- stream = StringIO("""
+ stream = StringIO(u"""
- hosts: localhost
vars:
number: 1
diff --git a/test/units/plugins/connections/test_connection.py b/test/units/plugins/connections/test_connection.py
index 10fa44216d..370768891d 100644
--- a/test/units/plugins/connections/test_connection.py
+++ b/test/units/plugins/connections/test_connection.py
@@ -19,7 +19,7 @@
from __future__ import (absolute_import, division, print_function)
__metaclass__ = type
-from six import StringIO
+from io import StringIO
from ansible.compat.tests import unittest
from ansible.playbook.play_context import PlayContext