summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorZuul <zuul@review.opendev.org>2020-07-16 21:25:14 +0000
committerGerrit Code Review <review@openstack.org>2020-07-16 21:25:14 +0000
commitdca62b4de1a366a869ff9feb88dbb830e1055b7b (patch)
tree25ce7069e62ffc23ff73ccc34406db6ad9203f17
parent3cd06f763fdb2c2ee233cb8167aadb5f29000d97 (diff)
parent928935e5c0b8b43827fdf08b212d59d92b660924 (diff)
downloadpython-glanceclient-dca62b4de1a366a869ff9feb88dbb830e1055b7b.tar.gz
Merge "Do not use the six library in the tests."
-rw-r--r--glanceclient/tests/unit/test_http.py16
-rw-r--r--glanceclient/tests/unit/test_progressbar.py6
-rw-r--r--glanceclient/tests/unit/test_shell.py52
-rw-r--r--glanceclient/tests/unit/test_ssl.py10
-rw-r--r--glanceclient/tests/unit/test_utils.py29
-rw-r--r--glanceclient/tests/unit/v1/test_images.py14
-rw-r--r--glanceclient/tests/unit/v1/test_shell.py16
-rw-r--r--glanceclient/tests/unit/v2/test_shell_v2.py14
-rw-r--r--glanceclient/tests/utils.py24
9 files changed, 76 insertions, 105 deletions
diff --git a/glanceclient/tests/unit/test_http.py b/glanceclient/tests/unit/test_http.py
index 0c93a84..5759ccd 100644
--- a/glanceclient/tests/unit/test_http.py
+++ b/glanceclient/tests/unit/test_http.py
@@ -19,13 +19,13 @@ from unittest import mock
import uuid
import fixtures
+import io
from keystoneauth1 import session
from keystoneauth1 import token_endpoint
from oslo_utils import encodeutils
import requests
from requests_mock.contrib import fixture
-import six
-from six.moves.urllib import parse
+from urllib import parse
from testscenarios import load_tests_apply_scenarios as load_tests # noqa
import testtools
from testtools import matchers
@@ -310,14 +310,14 @@ class TestClient(testtools.TestCase):
def test__chunk_body_exact_size_chunk(self):
test_client = http._BaseHTTPClient()
bytestring = b'x' * http.CHUNKSIZE
- data = six.BytesIO(bytestring)
+ data = io.BytesIO(bytestring)
chunk = list(test_client._chunk_body(data))
self.assertEqual(1, len(chunk))
self.assertEqual([bytestring], chunk)
def test_http_chunked_request(self):
text = "Ok"
- data = six.StringIO(text)
+ data = io.StringIO(text)
path = '/v1/images/'
self.mock.post(self.endpoint + path, text=text)
@@ -336,13 +336,13 @@ class TestClient(testtools.TestCase):
resp, body = self.client.post(path, headers=headers, data=data)
self.assertEqual(text, resp.text)
- self.assertIsInstance(self.mock.last_request.body, six.string_types)
+ self.assertIsInstance(self.mock.last_request.body, str)
self.assertEqual(data, json.loads(self.mock.last_request.body))
def test_http_chunked_response(self):
data = "TEST"
path = '/v1/images/'
- self.mock.get(self.endpoint + path, body=six.StringIO(data),
+ self.mock.get(self.endpoint + path, body=io.StringIO(data),
headers={"Content-Type": "application/octet-stream"})
resp, body = self.client.get(path)
@@ -355,7 +355,7 @@ class TestClient(testtools.TestCase):
response = 'Ok'
headers = {"Content-Type": "text/plain",
"test": "value1\xa5\xa6"}
- fake = utils.FakeResponse(headers, six.StringIO(response))
+ fake = utils.FakeResponse(headers, io.StringIO(response))
self.client.log_http_response(fake)
except UnicodeDecodeError as e:
self.fail("Unexpected UnicodeDecodeError exception '%s'" % e)
@@ -458,7 +458,7 @@ class TestClient(testtools.TestCase):
logger = self.useFixture(fixtures.FakeLogger(level=logging.DEBUG))
data = "TEST"
path = '/v1/images/'
- self.mock.get(self.endpoint + path, body=six.StringIO(data),
+ self.mock.get(self.endpoint + path, body=io.StringIO(data),
headers={"Content-Type": "application/octet-stream",
'x-openstack-request-id': "1234"})
diff --git a/glanceclient/tests/unit/test_progressbar.py b/glanceclient/tests/unit/test_progressbar.py
index 76f96fb..d0596d5 100644
--- a/glanceclient/tests/unit/test_progressbar.py
+++ b/glanceclient/tests/unit/test_progressbar.py
@@ -13,10 +13,10 @@
# License for the specific language governing permissions and limitations
# under the License.
+import io
import sys
import requests
-import six
import testtools
from glanceclient.common import progressbar
@@ -49,7 +49,7 @@ class TestProgressBarWrapper(testtools.TestCase):
def test_iter_file_display_progress_bar(self):
size = 98304
- file_obj = six.StringIO('X' * size)
+ file_obj = io.StringIO('X' * size)
saved_stdout = sys.stdout
try:
sys.stdout = output = test_utils.FakeTTYStdout()
@@ -67,7 +67,7 @@ class TestProgressBarWrapper(testtools.TestCase):
def test_iter_file_no_tty(self):
size = 98304
- file_obj = six.StringIO('X' * size)
+ file_obj = io.StringIO('X' * size)
saved_stdout = sys.stdout
try:
sys.stdout = output = test_utils.FakeNoTTYStdout()
diff --git a/glanceclient/tests/unit/test_shell.py b/glanceclient/tests/unit/test_shell.py
index b23591f..4823224 100644
--- a/glanceclient/tests/unit/test_shell.py
+++ b/glanceclient/tests/unit/test_shell.py
@@ -17,6 +17,7 @@
import argparse
from collections import OrderedDict
import hashlib
+import io
import logging
import os
import sys
@@ -28,7 +29,6 @@ import fixtures
from keystoneauth1 import exceptions as ks_exc
from keystoneauth1 import fixture as ks_fixture
from requests_mock.contrib import fixture as rm_fixture
-import six
from glanceclient.common import utils
from glanceclient import exc
@@ -144,8 +144,8 @@ class ShellTest(testutils.TestCase):
orig = sys.stdout
orig_stderr = sys.stderr
try:
- sys.stdout = six.StringIO()
- sys.stderr = six.StringIO()
+ sys.stdout = io.StringIO()
+ sys.stderr = io.StringIO()
_shell = openstack_shell.OpenStackImagesShell()
_shell.main(argstr.split())
except SystemExit:
@@ -162,10 +162,7 @@ class ShellTest(testutils.TestCase):
def test_fixup_subcommand(self):
arglist = [u'image-list', u'--help']
- if six.PY2:
- expected_arglist = [b'image-list', u'--help']
- elif six.PY3:
- expected_arglist = [u'image-list', u'--help']
+ expected_arglist = [u'image-list', u'--help']
openstack_shell.OpenStackImagesShell._fixup_subcommand(
arglist, arglist
@@ -175,14 +172,9 @@ class ShellTest(testutils.TestCase):
def test_fixup_subcommand_with_options_preceding(self):
arglist = [u'--os-auth-token', u'abcdef', u'image-list', u'--help']
unknown = arglist[2:]
- if six.PY2:
- expected_arglist = [
- u'--os-auth-token', u'abcdef', b'image-list', u'--help'
- ]
- elif six.PY3:
- expected_arglist = [
- u'--os-auth-token', u'abcdef', u'image-list', u'--help'
- ]
+ expected_arglist = [
+ u'--os-auth-token', u'abcdef', u'image-list', u'--help'
+ ]
openstack_shell.OpenStackImagesShell._fixup_subcommand(
unknown, arglist
@@ -194,8 +186,8 @@ class ShellTest(testutils.TestCase):
argstr = '--os-image-api-version 2 help foofoo'
self.assertRaises(exc.CommandError, shell.main, argstr.split())
- @mock.patch('sys.stdout', six.StringIO())
- @mock.patch('sys.stderr', six.StringIO())
+ @mock.patch('sys.stdout', io.StringIO())
+ @mock.patch('sys.stderr', io.StringIO())
@mock.patch('sys.argv', ['glance', 'help', 'foofoo'])
def test_no_stacktrace_when_debug_disabled(self):
with mock.patch.object(traceback, 'print_exc') as mock_print_exc:
@@ -205,8 +197,8 @@ class ShellTest(testutils.TestCase):
pass
self.assertFalse(mock_print_exc.called)
- @mock.patch('sys.stdout', six.StringIO())
- @mock.patch('sys.stderr', six.StringIO())
+ @mock.patch('sys.stdout', io.StringIO())
+ @mock.patch('sys.stderr', io.StringIO())
@mock.patch('sys.argv', ['glance', 'help', 'foofoo'])
def test_stacktrace_when_debug_enabled_by_env(self):
old_environment = os.environ.copy()
@@ -221,8 +213,8 @@ class ShellTest(testutils.TestCase):
finally:
os.environ = old_environment
- @mock.patch('sys.stdout', six.StringIO())
- @mock.patch('sys.stderr', six.StringIO())
+ @mock.patch('sys.stdout', io.StringIO())
+ @mock.patch('sys.stderr', io.StringIO())
@mock.patch('sys.argv', ['glance', '--debug', 'help', 'foofoo'])
def test_stacktrace_when_debug_enabled(self):
with mock.patch.object(traceback, 'print_exc') as mock_print_exc:
@@ -589,8 +581,8 @@ class ShellTest(testutils.TestCase):
self.assertRaises(exc.CommandError, glance_shell.main, args.split())
@mock.patch('sys.argv', ['glance'])
- @mock.patch('sys.stdout', six.StringIO())
- @mock.patch('sys.stderr', six.StringIO())
+ @mock.patch('sys.stdout', io.StringIO())
+ @mock.patch('sys.stderr', io.StringIO())
def test_main_noargs(self):
# Ensure that main works with no command-line arguments
try:
@@ -781,7 +773,7 @@ class ShellCacheSchemaTest(testutils.TestCase):
return Args(args)
- @mock.patch('six.moves.builtins.open', new=mock.mock_open(), create=True)
+ @mock.patch('builtins.open', new=mock.mock_open(), create=True)
@mock.patch('os.path.exists', return_value=True)
def test_cache_schemas_gets_when_forced(self, exists_mock):
options = {
@@ -804,7 +796,7 @@ class ShellCacheSchemaTest(testutils.TestCase):
actual = json.loads(open.mock_calls[6][1][0])
self.assertEqual(schema_odict, actual)
- @mock.patch('six.moves.builtins.open', new=mock.mock_open(), create=True)
+ @mock.patch('builtins.open', new=mock.mock_open(), create=True)
@mock.patch('os.path.exists', side_effect=[True, False, False, False])
def test_cache_schemas_gets_when_not_exists(self, exists_mock):
options = {
@@ -827,7 +819,7 @@ class ShellCacheSchemaTest(testutils.TestCase):
actual = json.loads(open.mock_calls[6][1][0])
self.assertEqual(schema_odict, actual)
- @mock.patch('six.moves.builtins.open', new=mock.mock_open(), create=True)
+ @mock.patch('builtins.open', new=mock.mock_open(), create=True)
@mock.patch('os.path.exists', return_value=True)
def test_cache_schemas_leaves_when_present_not_forced(self, exists_mock):
options = {
@@ -848,7 +840,7 @@ class ShellCacheSchemaTest(testutils.TestCase):
self.assertEqual(4, exists_mock.call_count)
self.assertEqual(0, open.mock_calls.__len__())
- @mock.patch('six.moves.builtins.open', new=mock.mock_open(), create=True)
+ @mock.patch('builtins.open', new=mock.mock_open(), create=True)
@mock.patch('os.path.exists', return_value=True)
def test_cache_schemas_leaves_auto_switch(self, exists_mock):
options = {
@@ -899,7 +891,7 @@ class ShellTestRequests(testutils.TestCase):
headers = {'Content-Length': '4',
'Content-type': 'application/octet-stream'}
- fake = testutils.FakeResponse(headers, six.StringIO('DATA'))
+ fake = testutils.FakeResponse(headers, io.StringIO('DATA'))
self.requests.get('http://example.com/v1/images/%s' % id,
raw=fake)
@@ -938,7 +930,7 @@ class ShellTestRequests(testutils.TestCase):
headers = {'Content-Length': '4',
'Content-type': 'application/octet-stream'}
- fake = testutils.FakeResponse(headers, six.StringIO('DATA'))
+ fake = testutils.FakeResponse(headers, io.StringIO('DATA'))
self.requests.get('http://example.com/v1/images/%s' % id,
headers=headers, raw=fake)
@@ -960,7 +952,7 @@ class ShellTestRequests(testutils.TestCase):
id = image_show_fixture['id']
headers = {'Content-Length': '4',
'Content-type': 'application/octet-stream'}
- fake = testutils.FakeResponse(headers, six.StringIO('DATA'))
+ fake = testutils.FakeResponse(headers, io.StringIO('DATA'))
self.requests = self.useFixture(rm_fixture.Fixture())
self.requests.get('http://example.com/v2/images/%s/file' % id,
diff --git a/glanceclient/tests/unit/test_ssl.py b/glanceclient/tests/unit/test_ssl.py
index 320dfde..f95e777 100644
--- a/glanceclient/tests/unit/test_ssl.py
+++ b/glanceclient/tests/unit/test_ssl.py
@@ -16,7 +16,6 @@
import os
from unittest import mock
-import six
import ssl
import testtools
import threading
@@ -26,10 +25,7 @@ from glanceclient import exc
from glanceclient import v1
from glanceclient import v2
-if six.PY3 is True:
- import socketserver
-else:
- import SocketServer as socketserver
+import socketserver
TEST_VAR_DIR = os.path.abspath(os.path.join(os.path.dirname(__file__),
@@ -217,9 +213,7 @@ class TestHTTPSVerifyCert(testtools.TestCase):
# starting from python 2.7.8 the way to handle loading private
# keys into the SSL_CTX was changed and error message become
# similar to the one in 3.X
- if (six.PY2 and 'PrivateKey' not in e.message and
- 'PEM lib' not in e.message or
- six.PY3 and 'PEM lib' not in e.message):
+ if 'PEM lib' not in e.message:
self.fail('No appropriate failure message is received')
@mock.patch('sys.stderr')
diff --git a/glanceclient/tests/unit/test_utils.py b/glanceclient/tests/unit/test_utils.py
index 6128d6c..46cefbf 100644
--- a/glanceclient/tests/unit/test_utils.py
+++ b/glanceclient/tests/unit/test_utils.py
@@ -13,14 +13,13 @@
# License for the specific language governing permissions and limitations
# under the License.
+import io
import sys
from unittest import mock
from oslo_utils import encodeutils
from requests import Response
-import six
# NOTE(jokke): simplified transition to py3, behaves like py2 xrange
-from six.moves import range
import testtools
from glanceclient.common import utils
@@ -47,7 +46,7 @@ class TestUtils(testtools.TestCase):
def test_get_new_file_size(self):
size = 98304
- file_obj = six.StringIO('X' * size)
+ file_obj = io.StringIO('X' * size)
try:
self.assertEqual(size, utils.get_file_size(file_obj))
# Check that get_file_size didn't change original file position.
@@ -57,7 +56,7 @@ class TestUtils(testtools.TestCase):
def test_get_consumed_file_size(self):
size, consumed = 98304, 304
- file_obj = six.StringIO('X' * size)
+ file_obj = io.StringIO('X' * size)
file_obj.seek(consumed)
try:
self.assertEqual(size, utils.get_file_size(file_obj))
@@ -79,10 +78,10 @@ class TestUtils(testtools.TestCase):
saved_stdout = sys.stdout
try:
- sys.stdout = output_list = six.StringIO()
+ sys.stdout = output_list = io.StringIO()
utils.print_list(images, columns)
- sys.stdout = output_dict = six.StringIO()
+ sys.stdout = output_dict = io.StringIO()
utils.print_dict({'K': 'k', 'Key': 'veeeeeeeeeeeeeeeeeeeeeeee'
'eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee'
'eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee'
@@ -126,7 +125,7 @@ class TestUtils(testtools.TestCase):
'tags': [u'Name1', u'Tag_123', u'veeeery long']})]
saved_stdout = sys.stdout
try:
- sys.stdout = output_list = six.StringIO()
+ sys.stdout = output_list = io.StringIO()
utils.print_list(images, columns)
finally:
@@ -145,7 +144,7 @@ class TestUtils(testtools.TestCase):
image = {'id': '42', 'virtual_size': 1337}
saved_stdout = sys.stdout
try:
- sys.stdout = output_list = six.StringIO()
+ sys.stdout = output_list = io.StringIO()
utils.print_image(image)
finally:
sys.stdout = saved_stdout
@@ -164,7 +163,7 @@ class TestUtils(testtools.TestCase):
image = {'id': '42', 'virtual_size': None}
saved_stdout = sys.stdout
try:
- sys.stdout = output_list = six.StringIO()
+ sys.stdout = output_list = io.StringIO()
utils.print_image(image)
finally:
sys.stdout = saved_stdout
@@ -181,13 +180,9 @@ class TestUtils(testtools.TestCase):
def test_unicode_key_value_to_string(self):
src = {u'key': u'\u70fd\u7231\u5a77'}
- expected = {'key': '\xe7\x83\xbd\xe7\x88\xb1\xe5\xa9\xb7'}
- if six.PY2:
- self.assertEqual(expected, utils.unicode_key_value_to_string(src))
- else:
- # u'xxxx' in PY3 is str, we will not get extra 'u' from cli
- # output in PY3
- self.assertEqual(src, utils.unicode_key_value_to_string(src))
+ # u'xxxx' in PY3 is str, we will not get extra 'u' from cli
+ # output in PY3
+ self.assertEqual(src, utils.unicode_key_value_to_string(src))
def test_schema_args_with_list_types(self):
# NOTE(flaper87): Regression for bug
@@ -240,7 +235,7 @@ class TestUtils(testtools.TestCase):
for chunk in i:
raise(IOError)
- data = six.moves.StringIO('somestring')
+ data = io.StringIO('somestring')
data.close = mock.Mock()
i = utils.IterableWithLength(data, 10)
self.assertRaises(IOError, _iterate, i)
diff --git a/glanceclient/tests/unit/v1/test_images.py b/glanceclient/tests/unit/v1/test_images.py
index 1f43b83..1af7412 100644
--- a/glanceclient/tests/unit/v1/test_images.py
+++ b/glanceclient/tests/unit/v1/test_images.py
@@ -14,11 +14,10 @@
# under the License.
import errno
+import io
import json
import testtools
-
-import six
-from six.moves.urllib import parse
+from urllib import parse
from glanceclient.tests import utils
from glanceclient.v1 import client
@@ -634,7 +633,7 @@ class ImageManagerTest(testtools.TestCase):
self.assertEqual({'a': 'b', 'c': 'd'}, image.properties)
def test_create_with_data(self):
- image_data = six.StringIO('XXX')
+ image_data = io.StringIO('XXX')
self.mgr.create(data=image_data)
expect_headers = {'x-image-meta-size': '3'}
expect = [('POST', '/v1/images', expect_headers, image_data)]
@@ -711,7 +710,7 @@ class ImageManagerTest(testtools.TestCase):
self.assertEqual(10, image.min_disk)
def test_update_with_data(self):
- image_data = six.StringIO('XXX')
+ image_data = io.StringIO('XXX')
self.mgr.update('1', data=image_data)
expect_headers = {'x-image-meta-size': '3',
'x-glance-registry-purge-props': 'false'}
@@ -744,10 +743,7 @@ class ImageManagerTest(testtools.TestCase):
def test_image_meta_from_headers_encoding(self):
value = u"ni\xf1o"
- if six.PY2:
- fields = {"x-image-meta-name": "ni\xc3\xb1o"}
- else:
- fields = {"x-image-meta-name": value}
+ fields = {"x-image-meta-name": value}
headers = self.mgr._image_meta_from_headers(fields)
self.assertEqual(value, headers["name"])
diff --git a/glanceclient/tests/unit/v1/test_shell.py b/glanceclient/tests/unit/v1/test_shell.py
index 5476a2f..46c6f68 100644
--- a/glanceclient/tests/unit/v1/test_shell.py
+++ b/glanceclient/tests/unit/v1/test_shell.py
@@ -15,11 +15,11 @@
# under the License.
import argparse
+import io
import json
import os
from unittest import mock
-import six
import subprocess
import tempfile
import testtools
@@ -34,12 +34,6 @@ import glanceclient.v1.shell as v1shell
from glanceclient.tests import utils
-if six.PY3:
- import io
- file_type = io.IOBase
-else:
- file_type = file
-
fixtures = {
'/v1/images/96d2c7e1-de4e-4612-8aa2-ba26610c804e': {
'PUT': (
@@ -351,7 +345,7 @@ class ShellInvalidEndpointandParameterTest(utils.TestCase):
@mock.patch('sys.stderr')
def test_image_create_missing_container_format_stdin_data(self, __):
# Fake that get_data_file method returns data
- self.mock_get_data_file.return_value = six.StringIO()
+ self.mock_get_data_file.return_value = io.StringIO()
e = self.assertRaises(exc.CommandError, self.run_command,
'--os-image-api-version 1 image-create'
' --disk-format qcow2')
@@ -361,7 +355,7 @@ class ShellInvalidEndpointandParameterTest(utils.TestCase):
@mock.patch('sys.stderr')
def test_image_create_missing_disk_format_stdin_data(self, __):
# Fake that get_data_file method returns data
- self.mock_get_data_file.return_value = six.StringIO()
+ self.mock_get_data_file.return_value = io.StringIO()
e = self.assertRaises(exc.CommandError, self.run_command,
'--os-image-api-version 1 image-create'
' --container-format bare')
@@ -574,7 +568,7 @@ class ShellStdinHandlingTests(testtools.TestCase):
self._do_update('44d2c7e1-de4e-4612-8aa2-ba26610c444f')
self.assertIn('data', self.collected_args[1])
- self.assertIsInstance(self.collected_args[1]['data'], file_type)
+ self.assertIsInstance(self.collected_args[1]['data'], io.IOBase)
self.assertEqual(b'Some Data',
self.collected_args[1]['data'].read())
@@ -599,7 +593,7 @@ class ShellStdinHandlingTests(testtools.TestCase):
self._do_update('44d2c7e1-de4e-4612-8aa2-ba26610c444f')
self.assertIn('data', self.collected_args[1])
- self.assertIsInstance(self.collected_args[1]['data'], file_type)
+ self.assertIsInstance(self.collected_args[1]['data'], io.IOBase)
self.assertEqual(b'Some Data\n',
self.collected_args[1]['data'].read())
diff --git a/glanceclient/tests/unit/v2/test_shell_v2.py b/glanceclient/tests/unit/v2/test_shell_v2.py
index 9c19551..4cf4d25 100644
--- a/glanceclient/tests/unit/v2/test_shell_v2.py
+++ b/glanceclient/tests/unit/v2/test_shell_v2.py
@@ -15,11 +15,11 @@
# under the License.
import argparse
from copy import deepcopy
+import io
import json
import os
from unittest import mock
-import six
import sys
import tempfile
import testtools
@@ -196,7 +196,7 @@ class ShellV2Test(testtools.TestCase):
@mock.patch('sys.stderr')
def test_image_create_missing_container_format_stdin_data(self, __):
# Fake that get_data_file method returns data
- self.mock_get_data_file.return_value = six.StringIO()
+ self.mock_get_data_file.return_value = io.StringIO()
e = self.assertRaises(exc.CommandError, self._run_command,
'--os-image-api-version 2 image-create'
' --disk-format qcow2')
@@ -206,7 +206,7 @@ class ShellV2Test(testtools.TestCase):
@mock.patch('sys.stderr')
def test_image_create_missing_disk_format_stdin_data(self, __):
# Fake that get_data_file method returns data
- self.mock_get_data_file.return_value = six.StringIO()
+ self.mock_get_data_file.return_value = io.StringIO()
e = self.assertRaises(exc.CommandError, self._run_command,
'--os-image-api-version 2 image-create'
' --container-format bare')
@@ -618,7 +618,7 @@ class ShellV2Test(testtools.TestCase):
'os_hash_value': None})
def test_do_image_create_with_multihash(self):
- self.mock_get_data_file.return_value = six.StringIO()
+ self.mock_get_data_file.return_value = io.StringIO()
try:
with open(tempfile.mktemp(), 'w+') as f:
f.write('Some data here')
@@ -694,7 +694,7 @@ class ShellV2Test(testtools.TestCase):
'container_format': 'bare', 'os_hidden': True})
def test_do_image_create_with_file(self):
- self.mock_get_data_file.return_value = six.StringIO()
+ self.mock_get_data_file.return_value = io.StringIO()
try:
file_name = None
with open(tempfile.mktemp(), 'w+') as f:
@@ -1412,7 +1412,7 @@ class ShellV2Test(testtools.TestCase):
self, mock_stdin, mock_do_stage, mock_do_import):
"""Backward compat -> handle this like a glance-direct"""
mock_stdin.isatty = lambda: False
- self.mock_get_data_file.return_value = six.StringIO()
+ self.mock_get_data_file.return_value = io.StringIO()
args = self._make_args(self.base_args)
with mock.patch.object(self.gc.images, 'create') as mocked_create:
with mock.patch.object(self.gc.images, 'get') as mocked_get:
@@ -1447,7 +1447,7 @@ class ShellV2Test(testtools.TestCase):
self, mock_stdin, mock_access, mock_do_stage, mock_do_import):
"""Backward compat -> handle this like a glance-direct"""
mock_stdin.isatty = lambda: True
- self.mock_get_data_file.return_value = six.StringIO()
+ self.mock_get_data_file.return_value = io.StringIO()
mock_access.return_value = True
my_args = self.base_args.copy()
my_args['file'] = 'fake-image-file.browncow'
diff --git a/glanceclient/tests/utils.py b/glanceclient/tests/utils.py
index 3deddb1..730b928 100644
--- a/glanceclient/tests/utils.py
+++ b/glanceclient/tests/utils.py
@@ -14,10 +14,10 @@
# under the License.
import copy
+import io
import json
-import six
-import six.moves.urllib.parse as urlparse
import testtools
+from urllib import parse
from glanceclient.v2 import schemas
@@ -38,11 +38,11 @@ class FakeAPI(object):
fixture = self.fixtures[sort_url_by_query_keys(url)][method]
data = fixture[1]
- if isinstance(fixture[1], six.string_types):
+ if isinstance(fixture[1], str):
try:
data = json.loads(fixture[1])
except ValueError:
- data = six.StringIO(fixture[1])
+ data = io.StringIO(fixture[1])
return FakeResponse(fixture[0], fixture[1]), data
@@ -141,7 +141,7 @@ class FakeResponse(object):
@property
def text(self):
- if isinstance(self.content, six.binary_type):
+ if isinstance(self.content, bytes):
return self.content.decode('utf-8')
return self.content
@@ -166,7 +166,7 @@ class TestCase(testtools.TestCase):
'verify': True}
-class FakeTTYStdout(six.StringIO):
+class FakeTTYStdout(io.StringIO):
"""A Fake stdout that try to emulate a TTY device as much as possible."""
def isatty(self):
@@ -177,7 +177,7 @@ class FakeTTYStdout(six.StringIO):
if data.startswith('\r'):
self.seek(0)
data = data[1:]
- return six.StringIO.write(self, data)
+ return io.StringIO.write(self, data)
class FakeNoTTYStdout(FakeTTYStdout):
@@ -197,24 +197,24 @@ def sort_url_by_query_keys(url):
:param url: url which will be ordered by query keys
:returns url: url with ordered query keys
"""
- parsed = urlparse.urlparse(url)
- queries = urlparse.parse_qsl(parsed.query, True)
+ parsed = parse.urlparse(url)
+ queries = parse.parse_qsl(parsed.query, True)
sorted_query = sorted(queries, key=lambda x: x[0])
- encoded_sorted_query = urlparse.urlencode(sorted_query, True)
+ encoded_sorted_query = parse.urlencode(sorted_query, True)
url_parts = (parsed.scheme, parsed.netloc, parsed.path,
parsed.params, encoded_sorted_query,
parsed.fragment)
- return urlparse.urlunparse(url_parts)
+ return parse.urlunparse(url_parts)
def build_call_record(method, url, headers, data):
"""Key the request body be ordered if it's a dict type."""
if isinstance(data, dict):
data = sorted(data.items())
- if isinstance(data, six.string_types):
+ if isinstance(data, str):
# NOTE(flwang): For image update, the data will be a 'list' which
# contains operation dict, such as: [{"op": "remove", "path": "/a"}]
try: