From 1d0a0e8c2068c01366575bb989f15c2fd8962154 Mon Sep 17 00:00:00 2001 From: Takashi Natsume Date: Tue, 12 May 2020 14:52:10 +0000 Subject: [PATCH] Remove six.moves Replace the following items with Python 3 style code. - six.moves.configparser - six.moves.StringIO - six.moves.cStringIO - six.moves.urllib - six.moves.builtins - six.moves.range - six.moves.xmlrpc_client - six.moves.http_client - six.moves.http_cookies - six.moves.queue - six.moves.zip - six.moves.reload_module - six.StringIO - six.BytesIO Subsequent patches will replace other six usages. Change-Id: Ib2c406327fef2fb4868d8050fc476a7d17706e23 Implements: blueprint six-removal Signed-off-by: Takashi Natsume --- doc/ext/feature_matrix.py | 3 +-- nova/api/metadata/password.py | 1 - nova/api/openstack/common.py | 2 +- nova/api/openstack/compute/quota_sets.py | 4 +-- .../openstack/compute/simple_tenant_usage.py | 2 +- nova/cmd/manage.py | 2 +- nova/compute/api.py | 1 - nova/compute/manager.py | 1 - nova/conductor/manager.py | 9 +++---- nova/console/serial.py | 3 +-- nova/console/websocketproxy.py | 4 +-- nova/db/sqlalchemy/api.py | 1 - nova/image/glance.py | 1 - nova/network/security_group_api.py | 3 ++- nova/objects/cell_mapping.py | 3 ++- nova/objects/console_auth_token.py | 3 ++- nova/scheduler/filter_scheduler.py | 1 - nova/scheduler/utils.py | 2 +- nova/storage/rbd_utils.py | 3 ++- nova/test.py | 6 ++--- nova/tests/functional/api/client.py | 3 ++- .../test_instance_usage_audit_log.py | 3 +-- .../test_simple_tenant_usage.py | 2 +- nova/tests/functional/test_nova_manage.py | 2 +- .../api/openstack/compute/test_flavors.py | 3 ++- .../unit/api/openstack/compute/test_images.py | 2 +- .../unit/api/openstack/compute/test_limits.py | 5 ++-- .../api/openstack/compute/test_servers.py | 3 +-- .../compute/test_simple_tenant_usage.py | 1 - .../api/openstack/compute/test_volumes.py | 2 +- nova/tests/unit/api/openstack/fakes.py | 1 - nova/tests/unit/cmd/test_baseproxy.py | 3 ++- nova/tests/unit/cmd/test_common.py | 2 +- nova/tests/unit/cmd/test_manage.py | 2 +- nova/tests/unit/cmd/test_policy.py | 3 ++- nova/tests/unit/cmd/test_status.py | 7 ++--- nova/tests/unit/console/test_serial.py | 5 ++-- nova/tests/unit/db/test_db_api.py | 1 - nova/tests/unit/fake_ldap.py | 1 - nova/tests/unit/image/test_glance.py | 27 +++++++++---------- nova/tests/unit/matchers.py | 3 ++- nova/tests/unit/network/test_neutron.py | 1 - .../tests/unit/network/test_security_group.py | 1 - .../unit/objects/test_console_auth_token.py | 2 +- nova/tests/unit/pci/test_utils.py | 10 +++---- nova/tests/unit/privsep/test_idmapshift.py | 3 ++- nova/tests/unit/privsep/test_libvirt.py | 10 +++---- nova/tests/unit/privsep/test_path.py | 7 ++--- .../unit/scheduler/client/test_report.py | 2 +- nova/tests/unit/scheduler/test_filters.py | 1 - nova/tests/unit/test_crypto.py | 4 +-- nova/tests/unit/test_json_ref.py | 10 +++---- nova/tests/unit/test_profiler.py | 6 ++--- nova/tests/unit/test_quota.py | 1 - nova/tests/unit/test_test_utils.py | 3 +-- nova/tests/unit/test_utils.py | 2 +- nova/tests/unit/utils.py | 1 - nova/tests/unit/virt/hyperv/test_base.py | 5 ++-- nova/tests/unit/virt/hyperv/test_pathutils.py | 5 ++-- .../unit/virt/hyperv/test_serialconsoleops.py | 3 +-- nova/tests/unit/virt/libvirt/test_driver.py | 9 +++---- nova/tests/unit/virt/libvirt/test_host.py | 24 +++++++---------- .../unit/virt/libvirt/test_imagecache.py | 4 +-- nova/tests/unit/virt/libvirt/test_utils.py | 7 +++-- nova/tests/unit/virt/powervm/test_image.py | 4 +-- nova/tests/unit/virt/test_virt.py | 6 ++--- nova/tests/unit/virt/zvm/test_driver.py | 5 ++-- nova/utils.py | 1 - nova/version.py | 2 +- nova/virt/ironic/driver.py | 2 +- nova/virt/libvirt/driver.py | 7 +++-- nova/virt/zvm/utils.py | 3 ++- nova/volume/cinder.py | 2 +- 73 files changed, 126 insertions(+), 163 deletions(-) diff --git a/doc/ext/feature_matrix.py b/doc/ext/feature_matrix.py index 4934e5894f10..f0e9f92292e1 100644 --- a/doc/ext/feature_matrix.py +++ b/doc/ext/feature_matrix.py @@ -20,11 +20,10 @@ It is used via a single directive in the .rst file """ +import configparser import re import sys -from six.moves import configparser - from docutils import nodes from docutils.parsers import rst diff --git a/nova/api/metadata/password.py b/nova/api/metadata/password.py index 4fdfd7b3ee9a..a91e70a3a131 100644 --- a/nova/api/metadata/password.py +++ b/nova/api/metadata/password.py @@ -13,7 +13,6 @@ # License for the specific language governing permissions and limitations # under the License. -from six.moves import range from webob import exc import nova.conf diff --git a/nova/api/openstack/common.py b/nova/api/openstack/common.py index 90615351043c..d8ff623d5d8e 100644 --- a/nova/api/openstack/common.py +++ b/nova/api/openstack/common.py @@ -16,11 +16,11 @@ import collections import itertools import re +from urllib import parse as urlparse from oslo_log import log as logging from oslo_utils import strutils import six -import six.moves.urllib.parse as urlparse import webob from webob import exc diff --git a/nova/api/openstack/compute/quota_sets.py b/nova/api/openstack/compute/quota_sets.py index 220224cbd551..d955e1b15601 100644 --- a/nova/api/openstack/compute/quota_sets.py +++ b/nova/api/openstack/compute/quota_sets.py @@ -13,9 +13,9 @@ # License for the specific language governing permissions and limitations # under the License. -from oslo_utils import strutils +from urllib import parse as urlparse -import six.moves.urllib.parse as urlparse +from oslo_utils import strutils import webob from nova.api.openstack.api_version_request \ diff --git a/nova/api/openstack/compute/simple_tenant_usage.py b/nova/api/openstack/compute/simple_tenant_usage.py index 55f319dc212f..f9277396b36c 100644 --- a/nova/api/openstack/compute/simple_tenant_usage.py +++ b/nova/api/openstack/compute/simple_tenant_usage.py @@ -15,11 +15,11 @@ import collections import datetime +from urllib import parse as urlparse import iso8601 from oslo_utils import timeutils import six -import six.moves.urllib.parse as urlparse from webob import exc from nova.api.openstack import common diff --git a/nova/cmd/manage.py b/nova/cmd/manage.py index 92c48c71e68d..2b42b9091eca 100644 --- a/nova/cmd/manage.py +++ b/nova/cmd/manage.py @@ -26,6 +26,7 @@ import functools import re import sys import traceback +from urllib import parse as urlparse from dateutil import parser as dateutil_parser from keystoneauth1 import exceptions as ks_exc @@ -40,7 +41,6 @@ from oslo_utils import encodeutils from oslo_utils import uuidutils import prettytable import six -import six.moves.urllib.parse as urlparse from sqlalchemy.engine import url as sqla_url from nova.cmd import common as cmd_common diff --git a/nova/compute/api.py b/nova/compute/api.py index 59d2186c2c71..72d2ccec1b7d 100644 --- a/nova/compute/api.py +++ b/nova/compute/api.py @@ -35,7 +35,6 @@ from oslo_utils import timeutils from oslo_utils import units from oslo_utils import uuidutils import six -from six.moves import range from nova.accelerator import cyborg from nova import availability_zones diff --git a/nova/compute/manager.py b/nova/compute/manager.py index bff5e27270b1..0869da7ce17b 100644 --- a/nova/compute/manager.py +++ b/nova/compute/manager.py @@ -55,7 +55,6 @@ from oslo_utils import strutils from oslo_utils import timeutils from oslo_utils import units import six -from six.moves import range from nova.accelerator import cyborg from nova import block_device diff --git a/nova/conductor/manager.py b/nova/conductor/manager.py index aa79f8324e03..cb5d2caa687f 100644 --- a/nova/conductor/manager.py +++ b/nova/conductor/manager.py @@ -702,7 +702,7 @@ class ComputeTaskManager(base.Base): return elevated = context.elevated() - for (instance, host_list) in six.moves.zip(instances, host_lists): + for (instance, host_list) in zip(instances, host_lists): host = host_list.pop(0) if is_reschedule: # If this runs in the superconductor, the first instance will @@ -1523,7 +1523,7 @@ class ComputeTaskManager(base.Base): instances = [] host_az = {} # host=az cache to optimize multi-create - for (build_request, request_spec, host_list) in six.moves.zip( + for (build_request, request_spec, host_list) in zip( build_requests, request_specs, host_lists): instance = build_request.get_new_instance(context) # host_list is a list of one or more Selection objects, the first @@ -1605,8 +1605,7 @@ class ComputeTaskManager(base.Base): block_device_mapping, tags, cell_mapping_cache) - zipped = six.moves.zip(build_requests, request_specs, host_lists, - instances) + zipped = zip(build_requests, request_specs, host_lists, instances) for (build_request, request_spec, host_list, instance) in zipped: if instance is None: # Skip placeholders that were buried in cell0 or had their @@ -1758,7 +1757,7 @@ class ComputeTaskManager(base.Base): def _cleanup_build_artifacts(self, context, exc, instances, build_requests, request_specs, block_device_mappings, tags, cell_mapping_cache): - for (instance, build_request, request_spec) in six.moves.zip( + for (instance, build_request, request_spec) in zip( instances, build_requests, request_specs): # Skip placeholders that were buried in cell0 or had their # build requests deleted by the user before instance create. diff --git a/nova/console/serial.py b/nova/console/serial.py index 9a4028e3dd60..6b28cbbb1228 100644 --- a/nova/console/serial.py +++ b/nova/console/serial.py @@ -17,7 +17,6 @@ import socket from oslo_log import log as logging -import six.moves import nova.conf from nova import exception @@ -45,7 +44,7 @@ def acquire_port(host): start, stop = _get_port_range() - for port in six.moves.range(start, stop): + for port in range(start, stop): if (host, port) in ALLOCATED_PORTS: continue try: diff --git a/nova/console/websocketproxy.py b/nova/console/websocketproxy.py index 5f2985dfbbc2..77331a87732f 100644 --- a/nova/console/websocketproxy.py +++ b/nova/console/websocketproxy.py @@ -19,15 +19,15 @@ Leverages websockify.py by Joel Martin ''' import copy +from http import cookies as Cookie import socket import sys +from urllib import parse as urlparse from oslo_log import log as logging from oslo_utils import encodeutils from oslo_utils import importutils import six -from six.moves import http_cookies as Cookie -import six.moves.urllib.parse as urlparse import websockify from nova.compute import rpcapi as compute_rpcapi diff --git a/nova/db/sqlalchemy/api.py b/nova/db/sqlalchemy/api.py index 1cf18ff292f6..94a071c9aadd 100644 --- a/nova/db/sqlalchemy/api.py +++ b/nova/db/sqlalchemy/api.py @@ -35,7 +35,6 @@ from oslo_utils import importutils from oslo_utils import timeutils from oslo_utils import uuidutils import six -from six.moves import range import sqlalchemy as sa from sqlalchemy import and_ from sqlalchemy import Boolean diff --git a/nova/image/glance.py b/nova/image/glance.py index 11398abc0011..03ef780a9e9b 100644 --- a/nova/image/glance.py +++ b/nova/image/glance.py @@ -40,7 +40,6 @@ from oslo_serialization import jsonutils from oslo_utils import excutils from oslo_utils import timeutils import six -from six.moves import range import nova.conf from nova import exception diff --git a/nova/network/security_group_api.py b/nova/network/security_group_api.py index 3b09993b58ee..49567960d0bb 100644 --- a/nova/network/security_group_api.py +++ b/nova/network/security_group_api.py @@ -17,6 +17,8 @@ # License for the specific language governing permissions and limitations # under the License. +import urllib + import netaddr from neutronclient.common import exceptions as n_exc from neutronclient.neutron import v2_0 as neutronv20 @@ -26,7 +28,6 @@ from oslo_utils import excutils from oslo_utils import netutils from oslo_utils import uuidutils import six -from six.moves import urllib from webob import exc from nova import context as nova_context diff --git a/nova/objects/cell_mapping.py b/nova/objects/cell_mapping.py index 9fb777b96cfc..63e3648d5fbf 100644 --- a/nova/objects/cell_mapping.py +++ b/nova/objects/cell_mapping.py @@ -10,9 +10,10 @@ # License for the specific language governing permissions and limitations # under the License. +from urllib import parse as urlparse + from oslo_log import log as logging from oslo_utils import versionutils -import six.moves.urllib.parse as urlparse from sqlalchemy.sql.expression import asc from sqlalchemy.sql import false from sqlalchemy.sql import true diff --git a/nova/objects/console_auth_token.py b/nova/objects/console_auth_token.py index bef5bb4c53f3..cb2e1c6aaaf6 100644 --- a/nova/objects/console_auth_token.py +++ b/nova/objects/console_auth_token.py @@ -13,12 +13,13 @@ # License for the specific language governing permissions and limitations # under the License. +from urllib import parse as urlparse + from oslo_db.exception import DBDuplicateEntry from oslo_log import log as logging from oslo_utils import strutils from oslo_utils import timeutils from oslo_utils import uuidutils -import six.moves.urllib.parse as urlparse from nova.db import api as db from nova import exception diff --git a/nova/scheduler/filter_scheduler.py b/nova/scheduler/filter_scheduler.py index 801ae5899966..692ea504676b 100644 --- a/nova/scheduler/filter_scheduler.py +++ b/nova/scheduler/filter_scheduler.py @@ -22,7 +22,6 @@ Weighing Functions. import random from oslo_log import log as logging -from six.moves import range from nova.compute import utils as compute_utils import nova.conf diff --git a/nova/scheduler/utils.py b/nova/scheduler/utils.py index e035f8185730..f7d483f8b3d3 100644 --- a/nova/scheduler/utils.py +++ b/nova/scheduler/utils.py @@ -17,12 +17,12 @@ import collections import re import sys +from urllib import parse import os_resource_classes as orc import os_traits from oslo_log import log as logging from oslo_serialization import jsonutils -from six.moves.urllib import parse from nova.compute import flavors from nova.compute import utils as compute_utils diff --git a/nova/storage/rbd_utils.py b/nova/storage/rbd_utils.py index b22d9ac4e248..d4197271e937 100644 --- a/nova/storage/rbd_utils.py +++ b/nova/storage/rbd_utils.py @@ -14,8 +14,9 @@ # License for the specific language governing permissions and limitations # under the License. +import urllib + from eventlet import tpool -from six.moves import urllib from oslo_concurrency import processutils from oslo_log import log as logging diff --git a/nova/test.py b/nova/test.py index dd0fc4daa595..9cf5a7fbbe71 100644 --- a/nova/test.py +++ b/nova/test.py @@ -24,6 +24,7 @@ inline callbacks. import nova.monkey_patch # noqa import abc +import builtins import collections import contextlib import copy @@ -50,7 +51,6 @@ from oslo_versionedobjects import fixture as ovo_fixture from oslotest import base from oslotest import mock_fixture import six -from six.moves import builtins import testtools from nova.compute import rpcapi as compute_rpcapi @@ -903,7 +903,7 @@ def patch_open(patched_path, read_data): selective patching based on the path. In this case something like like this may be more appropriate: - @mock.patch(six.moves.builtins, 'open') + @mock.patch('builtins.open') def test_my_code(self, mock_open): ... mock_open.assert_called_once_with(path) @@ -916,6 +916,6 @@ def patch_open(patched_path, read_data): return m(patched_path) return real_open(path, *args, **kwargs) - with mock.patch.object(builtins, 'open') as mock_open: + with mock.patch('builtins.open') as mock_open: mock_open.side_effect = selective_fake_open yield m diff --git a/nova/tests/functional/api/client.py b/nova/tests/functional/api/client.py index e8adc8fde202..21028d56017b 100644 --- a/nova/tests/functional/api/client.py +++ b/nova/tests/functional/api/client.py @@ -12,10 +12,11 @@ # License for the specific language governing permissions and limitations # under the License. +from urllib import parse + from oslo_log import log as logging from oslo_serialization import jsonutils import requests -from six.moves.urllib import parse LOG = logging.getLogger(__name__) diff --git a/nova/tests/functional/api_sample_tests/test_instance_usage_audit_log.py b/nova/tests/functional/api_sample_tests/test_instance_usage_audit_log.py index ba22ecdb9241..03b1e9231da5 100644 --- a/nova/tests/functional/api_sample_tests/test_instance_usage_audit_log.py +++ b/nova/tests/functional/api_sample_tests/test_instance_usage_audit_log.py @@ -14,8 +14,7 @@ # under the License. from datetime import datetime - -from six.moves import urllib +import urllib from nova import context from nova import objects diff --git a/nova/tests/functional/api_sample_tests/test_simple_tenant_usage.py b/nova/tests/functional/api_sample_tests/test_simple_tenant_usage.py index ca718294eb53..5ee3ba71634c 100644 --- a/nova/tests/functional/api_sample_tests/test_simple_tenant_usage.py +++ b/nova/tests/functional/api_sample_tests/test_simple_tenant_usage.py @@ -13,10 +13,10 @@ # under the License. import datetime +from urllib import parse import mock from oslo_utils import timeutils -from six.moves.urllib import parse from nova.tests.functional.api_sample_tests import test_servers import nova.tests.functional.api_samples_test_base as astb diff --git a/nova/tests/functional/test_nova_manage.py b/nova/tests/functional/test_nova_manage.py index 8c81ac1cf34f..fd89438fc48d 100644 --- a/nova/tests/functional/test_nova_manage.py +++ b/nova/tests/functional/test_nova_manage.py @@ -10,13 +10,13 @@ # License for the specific language governing permissions and limitations # under the License. import collections +from io import StringIO import mock import fixtures from neutronclient.common import exceptions as neutron_client_exc import os_resource_classes as orc from oslo_utils.fixture import uuidsentinel -from six.moves import StringIO from nova.cmd import manage from nova import config diff --git a/nova/tests/unit/api/openstack/compute/test_flavors.py b/nova/tests/unit/api/openstack/compute/test_flavors.py index 0aa9facc1d9b..d43387dd375b 100644 --- a/nova/tests/unit/api/openstack/compute/test_flavors.py +++ b/nova/tests/unit/api/openstack/compute/test_flavors.py @@ -13,8 +13,9 @@ # License for the specific language governing permissions and limitations # under the License. +from urllib import parse as urlparse + import mock -import six.moves.urllib.parse as urlparse import webob from nova.api.openstack import common diff --git a/nova/tests/unit/api/openstack/compute/test_images.py b/nova/tests/unit/api/openstack/compute/test_images.py index e690fc3d95ed..fad4fcb5a239 100644 --- a/nova/tests/unit/api/openstack/compute/test_images.py +++ b/nova/tests/unit/api/openstack/compute/test_images.py @@ -19,9 +19,9 @@ and as a WSGI layer """ import copy +from urllib import parse as urlparse import mock -import six.moves.urllib.parse as urlparse import webob from nova.api.openstack.compute import images as images_v21 diff --git a/nova/tests/unit/api/openstack/compute/test_limits.py b/nova/tests/unit/api/openstack/compute/test_limits.py index 6d6364b428fd..31033e111d0c 100644 --- a/nova/tests/unit/api/openstack/compute/test_limits.py +++ b/nova/tests/unit/api/openstack/compute/test_limits.py @@ -17,11 +17,12 @@ Tests dealing with HTTP rate-limiting. """ +from http import client as httplib +from io import StringIO + import mock from oslo_serialization import jsonutils from oslo_utils import encodeutils -from six.moves import http_client as httplib -from six.moves import StringIO from nova.api.openstack.compute import limits as limits_v21 from nova.api.openstack.compute import views diff --git a/nova/tests/unit/api/openstack/compute/test_servers.py b/nova/tests/unit/api/openstack/compute/test_servers.py index a13ad1515340..6486110d3dee 100644 --- a/nova/tests/unit/api/openstack/compute/test_servers.py +++ b/nova/tests/unit/api/openstack/compute/test_servers.py @@ -19,6 +19,7 @@ import copy import datetime import ddt import functools +from urllib import parse as urlparse import fixtures import iso8601 @@ -32,8 +33,6 @@ from oslo_utils.fixture import uuidsentinel as uuids from oslo_utils import timeutils from oslo_utils import uuidutils import six -from six.moves import range -import six.moves.urllib.parse as urlparse import testtools import webob diff --git a/nova/tests/unit/api/openstack/compute/test_simple_tenant_usage.py b/nova/tests/unit/api/openstack/compute/test_simple_tenant_usage.py index 3fbe65742ff7..111bd6807752 100644 --- a/nova/tests/unit/api/openstack/compute/test_simple_tenant_usage.py +++ b/nova/tests/unit/api/openstack/compute/test_simple_tenant_usage.py @@ -19,7 +19,6 @@ import mock from oslo_policy import policy as oslo_policy from oslo_utils.fixture import uuidsentinel as uuids from oslo_utils import timeutils -from six.moves import range import webob from nova.api.openstack.compute import simple_tenant_usage as \ diff --git a/nova/tests/unit/api/openstack/compute/test_volumes.py b/nova/tests/unit/api/openstack/compute/test_volumes.py index 28c7b367383a..75f90bee3b63 100644 --- a/nova/tests/unit/api/openstack/compute/test_volumes.py +++ b/nova/tests/unit/api/openstack/compute/test_volumes.py @@ -15,6 +15,7 @@ # under the License. import datetime +import urllib import fixtures import mock @@ -22,7 +23,6 @@ from oslo_serialization import jsonutils from oslo_utils import encodeutils from oslo_utils.fixture import uuidsentinel as uuids import six -from six.moves import urllib import webob from webob import exc diff --git a/nova/tests/unit/api/openstack/fakes.py b/nova/tests/unit/api/openstack/fakes.py index 5d798cfbe003..33e762954a7c 100644 --- a/nova/tests/unit/api/openstack/fakes.py +++ b/nova/tests/unit/api/openstack/fakes.py @@ -20,7 +20,6 @@ from oslo_utils import timeutils from oslo_utils import uuidutils import routes import six -from six.moves import range import webob.dec from nova.api import auth as api_auth diff --git a/nova/tests/unit/cmd/test_baseproxy.py b/nova/tests/unit/cmd/test_baseproxy.py index 01e87c532288..34f911cd838f 100644 --- a/nova/tests/unit/cmd/test_baseproxy.py +++ b/nova/tests/unit/cmd/test_baseproxy.py @@ -12,11 +12,12 @@ # See the License for the specific language governing permissions and # limitations under the License. +from io import StringIO + import fixtures import mock from oslo_log import log as logging from oslo_reports import guru_meditation_report as gmr -from six.moves import StringIO from nova.cmd import baseproxy from nova import config diff --git a/nova/tests/unit/cmd/test_common.py b/nova/tests/unit/cmd/test_common.py index fbf9dc18c251..e5df911ede95 100644 --- a/nova/tests/unit/cmd/test_common.py +++ b/nova/tests/unit/cmd/test_common.py @@ -17,11 +17,11 @@ Unit tests for the common functions used by different CLI interfaces. """ +from io import StringIO import sys import fixtures import mock -from six.moves import StringIO from nova.cmd import common as cmd_common from nova.db import api diff --git a/nova/tests/unit/cmd/test_manage.py b/nova/tests/unit/cmd/test_manage.py index 5718e024e216..76fcf70f9f3d 100644 --- a/nova/tests/unit/cmd/test_manage.py +++ b/nova/tests/unit/cmd/test_manage.py @@ -14,6 +14,7 @@ # under the License. import datetime +from io import StringIO import sys import warnings @@ -24,7 +25,6 @@ from oslo_db import exception as db_exc from oslo_serialization import jsonutils from oslo_utils.fixture import uuidsentinel from oslo_utils import uuidutils -from six.moves import StringIO from nova.cmd import manage from nova import conf diff --git a/nova/tests/unit/cmd/test_policy.py b/nova/tests/unit/cmd/test_policy.py index 81c19624e518..a84aef362d00 100644 --- a/nova/tests/unit/cmd/test_policy.py +++ b/nova/tests/unit/cmd/test_policy.py @@ -17,9 +17,10 @@ Unit tests for the nova-policy-check CLI interfaces. """ +from io import StringIO + import fixtures import mock -from six.moves import StringIO from nova.cmd import policy import nova.conf diff --git a/nova/tests/unit/cmd/test_status.py b/nova/tests/unit/cmd/test_status.py index 6922a2a6e010..0025efd948f6 100644 --- a/nova/tests/unit/cmd/test_status.py +++ b/nova/tests/unit/cmd/test_status.py @@ -20,11 +20,12 @@ Unit tests for the nova-status CLI interfaces. # nova/tests/functional/test_nova_status.py. Those tests use the external # PlacementFixture, which is only available in functioanl tests. +from io import StringIO +import os +import tempfile + import fixtures import mock -import os -from six.moves import StringIO -import tempfile import yaml from keystoneauth1 import exceptions as ks_exc diff --git a/nova/tests/unit/console/test_serial.py b/nova/tests/unit/console/test_serial.py index 7aeb0703e788..bc87ca6ca239 100644 --- a/nova/tests/unit/console/test_serial.py +++ b/nova/tests/unit/console/test_serial.py @@ -17,7 +17,6 @@ import socket import mock -import six.moves from nova.console import serial from nova import exception @@ -74,10 +73,10 @@ class SerialTestCase(test.NoDBTestCase): port_range='%d:%d' % (start, stop), group='serial_console') - for port in six.moves.range(start, stop): + for port in range(start, stop): self.assertEqual(port, serial.acquire_port('127.0.0.1')) - for port in six.moves.range(start, stop): + for port in range(start, stop): self.assertEqual(port, serial.acquire_port('127.0.0.2')) self.assertEqual(10, len(serial.ALLOCATED_PORTS)) diff --git a/nova/tests/unit/db/test_db_api.py b/nova/tests/unit/db/test_db_api.py index a9943f1c3711..f455f7a10fd7 100644 --- a/nova/tests/unit/db/test_db_api.py +++ b/nova/tests/unit/db/test_db_api.py @@ -37,7 +37,6 @@ from oslo_utils.fixture import uuidsentinel from oslo_utils import timeutils from oslo_utils import uuidutils import six -from six.moves import range from sqlalchemy import Column from sqlalchemy.dialects import sqlite from sqlalchemy.exc import OperationalError diff --git a/nova/tests/unit/fake_ldap.py b/nova/tests/unit/fake_ldap.py index aeada819c76e..6e4fc2dde532 100644 --- a/nova/tests/unit/fake_ldap.py +++ b/nova/tests/unit/fake_ldap.py @@ -24,7 +24,6 @@ library to work with nova. import fnmatch from oslo_serialization import jsonutils -from six.moves import range class Store(object): diff --git a/nova/tests/unit/image/test_glance.py b/nova/tests/unit/image/test_glance.py index 170b2282f3a4..89920759dcec 100644 --- a/nova/tests/unit/image/test_glance.py +++ b/nova/tests/unit/image/test_glance.py @@ -16,6 +16,7 @@ import copy import datetime +from io import StringIO import urllib.parse as urlparse import cryptography @@ -27,8 +28,6 @@ from glanceclient.v2 import schemas from keystoneauth1 import loading as ks_loading import mock from oslo_utils.fixture import uuidsentinel as uuids -import six -from six.moves import StringIO import testtools import nova.conf @@ -556,7 +555,7 @@ class TestDownloadNoDirectUri(test.NoDBTestCase): default of not allowing direct URI transfers is set. """ - @mock.patch.object(six.moves.builtins, 'open') + @mock.patch('builtins.open') @mock.patch('nova.image.glance.GlanceImageServiceV2.show') def test_download_no_data_no_dest_path_v2(self, show_mock, open_mock): client = mock.MagicMock() @@ -572,7 +571,7 @@ class TestDownloadNoDirectUri(test.NoDBTestCase): ctx, 2, 'data', args=(mock.sentinel.image_id,)) self.assertEqual(mock.sentinel.image_chunks, res) - @mock.patch.object(six.moves.builtins, 'open') + @mock.patch('builtins.open') @mock.patch('nova.image.glance.GlanceImageServiceV2.show') def test_download_data_no_dest_path_v2(self, show_mock, open_mock): client = mock.MagicMock() @@ -596,7 +595,7 @@ class TestDownloadNoDirectUri(test.NoDBTestCase): ) self.assertFalse(data.close.called) - @mock.patch.object(six.moves.builtins, 'open') + @mock.patch('builtins.open') @mock.patch('nova.image.glance.GlanceImageServiceV2.show') @mock.patch('nova.image.glance.GlanceImageServiceV2._safe_fsync') def test_download_no_data_dest_path_v2(self, fsync_mock, show_mock, @@ -625,7 +624,7 @@ class TestDownloadNoDirectUri(test.NoDBTestCase): ) writer.close.assert_called_once_with() - @mock.patch.object(six.moves.builtins, 'open') + @mock.patch('builtins.open') @mock.patch('nova.image.glance.GlanceImageServiceV2.show') def test_download_data_dest_path_v2(self, show_mock, open_mock): # NOTE(jaypipes): This really shouldn't be allowed, but because of the @@ -654,7 +653,7 @@ class TestDownloadNoDirectUri(test.NoDBTestCase): ) self.assertFalse(data.close.called) - @mock.patch.object(six.moves.builtins, 'open') + @mock.patch('builtins.open') @mock.patch('nova.image.glance.GlanceImageServiceV2.show') def test_download_data_dest_path_write_fails_v2( self, show_mock, open_mock): @@ -675,7 +674,7 @@ class TestDownloadNoDirectUri(test.NoDBTestCase): self.assertRaises(FakeDiskException, service.download, ctx, mock.sentinel.image_id, data=Exceptionator()) - @mock.patch.object(six.moves.builtins, 'open') + @mock.patch('builtins.open') @mock.patch('nova.image.glance.GlanceImageServiceV2.show') def test_download_no_returned_image_data_v2( self, show_mock, open_mock): @@ -691,7 +690,7 @@ class TestDownloadNoDirectUri(test.NoDBTestCase): # TODO(stephenfin): Drop this test since it's not possible to run in # production @mock.patch('os.path.getsize', return_value=1) - @mock.patch.object(six.moves.builtins, 'open') + @mock.patch('builtins.open') @mock.patch('nova.image.glance.GlanceImageServiceV2._get_transfer_method') @mock.patch('nova.image.glance.GlanceImageServiceV2.show') def test_download_direct_file_uri_v2( @@ -727,7 +726,7 @@ class TestDownloadNoDirectUri(test.NoDBTestCase): @mock.patch('glanceclient.common.utils.IterableWithLength') @mock.patch('os.path.getsize', return_value=1) - @mock.patch.object(six.moves.builtins, 'open') + @mock.patch('builtins.open') @mock.patch('nova.image.glance.LOG') @mock.patch('nova.image.glance.GlanceImageServiceV2._get_verifier') @mock.patch('nova.image.glance.GlanceImageServiceV2._get_transfer_method') @@ -820,7 +819,7 @@ class TestDownloadNoDirectUri(test.NoDBTestCase): ctx = mock.sentinel.ctx writer = mock.MagicMock() - with mock.patch.object(six.moves.builtins, 'open') as open_mock: + with mock.patch('builtins.open') as open_mock: open_mock.return_value = writer service = glance.GlanceImageServiceV2(client) res = service.download(ctx, mock.sentinel.image_id, @@ -873,7 +872,7 @@ class TestDownloadNoDirectUri(test.NoDBTestCase): ctx = mock.sentinel.ctx writer = mock.MagicMock() - with mock.patch.object(six.moves.builtins, 'open') as open_mock: + with mock.patch('builtins.open') as open_mock: open_mock.return_value = writer service = glance.GlanceImageServiceV2(client) res = service.download(ctx, mock.sentinel.image_id, @@ -966,7 +965,7 @@ class TestDownloadSignatureVerification(test.NoDBTestCase): msg = ('Image signature verification succeeded for image %s') mock_log.info.assert_called_once_with(msg, image_id) - @mock.patch.object(six.moves.builtins, 'open') + @mock.patch('builtins.open') @mock.patch('nova.image.glance.LOG') @mock.patch('nova.image.glance.GlanceImageServiceV2.show') @mock.patch('cursive.signature_utils.get_verifier') @@ -1051,7 +1050,7 @@ class TestDownloadSignatureVerification(test.NoDBTestCase): context=None, image_id=None, data=None, dst_path=None) - @mock.patch.object(six.moves.builtins, 'open') + @mock.patch('builtins.open') @mock.patch('cursive.signature_utils.get_verifier') @mock.patch('nova.image.glance.LOG') @mock.patch('nova.image.glance.GlanceImageServiceV2.show') diff --git a/nova/tests/unit/matchers.py b/nova/tests/unit/matchers.py index 142a18cf64d7..17f9a11cdaa0 100644 --- a/nova/tests/unit/matchers.py +++ b/nova/tests/unit/matchers.py @@ -17,6 +17,7 @@ """Matcher classes to be used inside of the testtools assertThat framework.""" import copy +import io import pprint from lxml import etree @@ -411,7 +412,7 @@ class XMLMatches(object): if isinstance(text_or_bytes, six.text_type): text_or_bytes = text_or_bytes.encode("utf-8") parser = etree.XMLParser(encoding="UTF-8") - return etree.parse(six.BytesIO(text_or_bytes), parser) + return etree.parse(io.BytesIO(text_or_bytes), parser) def __init__(self, expected, allow_mixed_nodes=False, skip_empty_text_nodes=True, skip_values=('DONTCARE',)): diff --git a/nova/tests/unit/network/test_neutron.py b/nova/tests/unit/network/test_neutron.py index e23203c04aae..373e520154c4 100644 --- a/nova/tests/unit/network/test_neutron.py +++ b/nova/tests/unit/network/test_neutron.py @@ -32,7 +32,6 @@ from oslo_utils import timeutils from oslo_utils import uuidutils import requests_mock import six -from six.moves import range from nova import context from nova.db.sqlalchemy import api as db_api diff --git a/nova/tests/unit/network/test_security_group.py b/nova/tests/unit/network/test_security_group.py index c2b6c6e6f957..6b852955c11c 100644 --- a/nova/tests/unit/network/test_security_group.py +++ b/nova/tests/unit/network/test_security_group.py @@ -18,7 +18,6 @@ from neutronclient.common import exceptions as n_exc from neutronclient.neutron import v2_0 as neutronv20 from neutronclient.v2_0 import client from oslo_utils.fixture import uuidsentinel as uuids -from six.moves import range from nova import context from nova import exception diff --git a/nova/tests/unit/objects/test_console_auth_token.py b/nova/tests/unit/objects/test_console_auth_token.py index 721e10118303..edcb9a9d093c 100644 --- a/nova/tests/unit/objects/test_console_auth_token.py +++ b/nova/tests/unit/objects/test_console_auth_token.py @@ -15,11 +15,11 @@ import copy import mock +import urllib.parse as urlparse from oslo_db.exception import DBDuplicateEntry from oslo_utils.fixture import uuidsentinel from oslo_utils import timeutils -import six.moves.urllib.parse as urlparse from nova import exception from nova.objects import console_auth_token as token_obj diff --git a/nova/tests/unit/pci/test_utils.py b/nova/tests/unit/pci/test_utils.py index 51ebdbfe0c6e..500a36d13896 100644 --- a/nova/tests/unit/pci/test_utils.py +++ b/nova/tests/unit/pci/test_utils.py @@ -19,7 +19,6 @@ import os import fixtures import mock -from six.moves import builtins from nova import exception from nova.pci import utils @@ -95,8 +94,7 @@ class GetFunctionByIfnameTestCase(test.NoDBTestCase): @mock.patch.object(os, 'readlink') def test_virtual_function(self, mock_readlink, *args): mock_readlink.return_value = '../../../0000.00.00.1' - with mock.patch.object( - builtins, 'open', side_effect=IOError()): + with mock.patch('builtins.open', side_effect=IOError()): address, physical_function = utils.get_function_by_ifname('eth0') self.assertEqual(address, '0000.00.00.1') self.assertFalse(physical_function) @@ -129,14 +127,12 @@ class IsPhysicalFunctionTestCase(test.NoDBTestCase): @mock.patch('os.path.isdir', return_value=True) def test_virtual_function(self, *args): - with mock.patch.object( - builtins, 'open', side_effect=IOError()): + with mock.patch('builtins.open', side_effect=IOError()): self.assertFalse(utils.is_physical_function(*self.pci_args)) @mock.patch('os.path.isdir', return_value=True) def test_physical_function(self, *args): - with mock.patch.object( - builtins, 'open', mock.mock_open(read_data='4')): + with mock.patch('builtins.open', mock.mock_open(read_data='4')): self.assertTrue(utils.is_physical_function(*self.pci_args)) @mock.patch('os.path.isdir', return_value=False) diff --git a/nova/tests/unit/privsep/test_idmapshift.py b/nova/tests/unit/privsep/test_idmapshift.py index 169bdd93e6a7..2b5acbe33c3c 100644 --- a/nova/tests/unit/privsep/test_idmapshift.py +++ b/nova/tests/unit/privsep/test_idmapshift.py @@ -12,9 +12,10 @@ # See the License for the specific language governing permissions and # limitations under the License. +from io import StringIO + import fixtures import mock -from six.moves import StringIO import nova.privsep.idmapshift from nova import test diff --git a/nova/tests/unit/privsep/test_libvirt.py b/nova/tests/unit/privsep/test_libvirt.py index cd6cc17842af..582f46325121 100644 --- a/nova/tests/unit/privsep/test_libvirt.py +++ b/nova/tests/unit/privsep/test_libvirt.py @@ -18,7 +18,6 @@ import binascii import ddt import mock import os -import six import nova.privsep.libvirt from nova import test @@ -134,10 +133,8 @@ class LibvirtTestCase(test.NoDBTestCase): return orig_import(module, *args) with test.nested( - mock.patch.object(six.moves.builtins, 'open', - new=mock.mock_open()), - mock.patch.object(six.moves.builtins, '__import__', - side_effect=fake_import), + mock.patch('builtins.open', new=mock.mock_open()), + mock.patch('builtins.__import__', side_effect=fake_import), ) as (mock_open, mock_import): nova.privsep.libvirt.readpty('/fake/path') @@ -158,8 +155,7 @@ class LibvirtTestCase(test.NoDBTestCase): def test_create_nmdev(self): mock_open = mock.mock_open() - with mock.patch.object(six.moves.builtins, 'open', - new=mock_open) as mock_open: + with mock.patch('builtins.open', new=mock_open) as mock_open: nova.privsep.libvirt.create_mdev('phys', 'mdevtype', uuid='fakeuuid') diff --git a/nova/tests/unit/privsep/test_path.py b/nova/tests/unit/privsep/test_path.py index faf2933de5e4..025a1bedc709 100644 --- a/nova/tests/unit/privsep/test_path.py +++ b/nova/tests/unit/privsep/test_path.py @@ -16,7 +16,6 @@ import mock import os -import six import tempfile from nova import exception @@ -35,8 +34,7 @@ class FileTestCase(test.NoDBTestCase): @mock.patch('os.path.exists', return_value=True) def test_readfile(self, mock_exists): mock_open = mock.mock_open(read_data='hello world') - with mock.patch.object(six.moves.builtins, 'open', - new=mock_open): + with mock.patch('builtins.open', new=mock_open): self.assertEqual('hello world', nova.privsep.path.readfile('/fake/path')) @@ -49,8 +47,7 @@ class FileTestCase(test.NoDBTestCase): @mock.patch('os.path.exists', return_value=True) def test_write(self, mock_exists): mock_open = mock.mock_open() - with mock.patch.object(six.moves.builtins, 'open', - new=mock_open): + with mock.patch('builtins.open', new=mock_open): nova.privsep.path.writefile('/fake/path/file', 'w', 'foo') handle = mock_open() diff --git a/nova/tests/unit/scheduler/client/test_report.py b/nova/tests/unit/scheduler/client/test_report.py index c52bd754dd8f..7e9db2cd3931 100644 --- a/nova/tests/unit/scheduler/client/test_report.py +++ b/nova/tests/unit/scheduler/client/test_report.py @@ -11,6 +11,7 @@ # under the License. import copy import time +from urllib import parse import fixtures from keystoneauth1 import exceptions as ks_exc @@ -19,7 +20,6 @@ import os_resource_classes as orc from oslo_serialization import jsonutils from oslo_utils.fixture import uuidsentinel as uuids import six -from six.moves.urllib import parse import nova.conf from nova import context diff --git a/nova/tests/unit/scheduler/test_filters.py b/nova/tests/unit/scheduler/test_filters.py index 75f2482a81bb..cb1c3ec32b7f 100644 --- a/nova/tests/unit/scheduler/test_filters.py +++ b/nova/tests/unit/scheduler/test_filters.py @@ -19,7 +19,6 @@ import inspect import mock from oslo_utils.fixture import uuidsentinel as uuids -from six.moves import range from nova import filters from nova import loadables diff --git a/nova/tests/unit/test_crypto.py b/nova/tests/unit/test_crypto.py index 5228f5ec5669..30152b2b0170 100644 --- a/nova/tests/unit/test_crypto.py +++ b/nova/tests/unit/test_crypto.py @@ -16,6 +16,7 @@ Tests for Crypto module. """ +import io import os from castellan.common import exception as castellan_exception @@ -25,7 +26,6 @@ import mock from oslo_concurrency import processutils from oslo_utils.fixture import uuidsentinel as uuids import paramiko -import six from nova import context as nova_context from nova import crypto @@ -210,7 +210,7 @@ class KeyPairTest(test.NoDBTestCase): self.assertEqual(bits, pkey.key_size) def test_generate_key_pair_mocked_private_key(self): - keyin = six.StringIO() + keyin = io.StringIO() keyin.write(self.rsa_prv) keyin.seek(0) key = paramiko.RSAKey.from_private_key(keyin) diff --git a/nova/tests/unit/test_json_ref.py b/nova/tests/unit/test_json_ref.py index e68529c12a1e..5a139055f5aa 100644 --- a/nova/tests/unit/test_json_ref.py +++ b/nova/tests/unit/test_json_ref.py @@ -55,7 +55,7 @@ class TestJsonRef(test.NoDBTestCase): d = copy.deepcopy(input) @mock.patch('oslo_serialization.jsonutils.load') - @mock.patch('six.moves.builtins.open', new_callable=mock.mock_open()) + @mock.patch('builtins.open', new_callable=mock.mock_open()) def test_resolve_ref(self, mock_open, mock_json_load): mock_json_load.return_value = {'baz': 13} @@ -70,7 +70,7 @@ class TestJsonRef(test.NoDBTestCase): mock_open.assert_called_once_with('some/base/path/another.json', 'r+b') @mock.patch('oslo_serialization.jsonutils.load') - @mock.patch('six.moves.builtins.open', new_callable=mock.mock_open()) + @mock.patch('builtins.open', new_callable=mock.mock_open()) def test_resolve_ref_recursively(self, mock_open, mock_json_load): mock_json_load.side_effect = [ # this is the content of direct_ref.json @@ -94,7 +94,7 @@ class TestJsonRef(test.NoDBTestCase): 'r+b') @mock.patch('oslo_serialization.jsonutils.load') - @mock.patch('six.moves.builtins.open', new_callable=mock.mock_open()) + @mock.patch('builtins.open', new_callable=mock.mock_open()) def test_resolve_ref_with_override(self, mock_open, mock_json_load): mock_json_load.return_value = {'baz': 13, 'boo': 42} @@ -112,7 +112,7 @@ class TestJsonRef(test.NoDBTestCase): mock_open.assert_called_once_with('some/base/path/another.json', 'r+b') @mock.patch('oslo_serialization.jsonutils.load') - @mock.patch('six.moves.builtins.open', new_callable=mock.mock_open()) + @mock.patch('builtins.open', new_callable=mock.mock_open()) def test_resolve_ref_with_nested_override(self, mock_open, mock_json_load): mock_json_load.return_value = {'baz': 13, 'boo': {'a': 1, @@ -134,7 +134,7 @@ class TestJsonRef(test.NoDBTestCase): mock_open.assert_called_once_with('some/base/path/another.json', 'r+b') @mock.patch('oslo_serialization.jsonutils.load') - @mock.patch('six.moves.builtins.open', new_callable=mock.mock_open()) + @mock.patch('builtins.open', new_callable=mock.mock_open()) def test_resolve_ref_with_override_having_refs(self, mock_open, mock_json_load): mock_json_load.side_effect = [ diff --git a/nova/tests/unit/test_profiler.py b/nova/tests/unit/test_profiler.py index 3d79d9ad701e..3685c81b4f9d 100644 --- a/nova/tests/unit/test_profiler.py +++ b/nova/tests/unit/test_profiler.py @@ -13,12 +13,12 @@ # License for the specific language governing permissions and limitations # under the License. +import importlib import inspect import os from oslo_utils import importutils import osprofiler.opts as profiler -import six.moves as six from nova import conf from nova import test @@ -44,7 +44,7 @@ class TestProfiler(test.NoDBTestCase): # reinitialize the metaclass after enabling osprofiler profiler.set_defaults(conf.CONF) self.flags(enabled=True, group='profiler') - six.reload_module(importutils.import_module('nova.manager')) + importlib.reload(importutils.import_module('nova.manager')) classes = [ 'nova.compute.api.API', @@ -64,7 +64,7 @@ class TestProfiler(test.NoDBTestCase): for clsname in classes: # give the metaclass and trace_cls() decorator a chance to patch # methods of the classes above - six.reload_module( + importlib.reload( importutils.import_module(clsname.rsplit('.', 1)[0])) cls = importutils.import_class(clsname) diff --git a/nova/tests/unit/test_quota.py b/nova/tests/unit/test_quota.py index 238d5e97bd30..7555aeab4101 100644 --- a/nova/tests/unit/test_quota.py +++ b/nova/tests/unit/test_quota.py @@ -17,7 +17,6 @@ import ddt import mock from oslo_db.sqlalchemy import enginefacade -from six.moves import range from nova.compute import api as compute import nova.conf diff --git a/nova/tests/unit/test_test_utils.py b/nova/tests/unit/test_test_utils.py index 7ca411e52b23..2511fbc9a0b8 100644 --- a/nova/tests/unit/test_test_utils.py +++ b/nova/tests/unit/test_test_utils.py @@ -60,6 +60,5 @@ class TestUtilsTestCase(test.TestCase): self.assertTrue(test_utils.is_ipv6_supported()) with fixtures.MonkeyPatch('sys.platform', 'linux2'): - with fixtures.MonkeyPatch('six.moves.builtins.open', - fake_open): + with fixtures.MonkeyPatch('builtins.open', fake_open): self.assertFalse(test_utils.is_ipv6_supported()) diff --git a/nova/tests/unit/test_utils.py b/nova/tests/unit/test_utils.py index e9930fcb7aa7..ae75b01e5476 100644 --- a/nova/tests/unit/test_utils.py +++ b/nova/tests/unit/test_utils.py @@ -260,7 +260,7 @@ class TestCachedFile(test.NoDBTestCase): fake_contents = "lorem ipsum" - with mock.patch('six.moves.builtins.open', + with mock.patch('builtins.open', mock.mock_open(read_data=fake_contents)): fresh, data = utils.read_cached_file("/this/is/a/fake") diff --git a/nova/tests/unit/utils.py b/nova/tests/unit/utils.py index 610d03d00d15..32cd9325a84d 100644 --- a/nova/tests/unit/utils.py +++ b/nova/tests/unit/utils.py @@ -19,7 +19,6 @@ import socket import sys import mock -from six.moves import range from nova.compute import flavors import nova.conf diff --git a/nova/tests/unit/virt/hyperv/test_base.py b/nova/tests/unit/virt/hyperv/test_base.py index b7557764a4ef..e895fc600ea8 100644 --- a/nova/tests/unit/virt/hyperv/test_base.py +++ b/nova/tests/unit/virt/hyperv/test_base.py @@ -16,7 +16,6 @@ import mock from os_win import utilsfactory -from six.moves import builtins from nova import test @@ -26,8 +25,8 @@ class HyperVBaseTestCase(test.NoDBTestCase): super(HyperVBaseTestCase, self).setUp() self._mock_wmi = mock.MagicMock() - wmi_patcher = mock.patch.object(builtins, 'wmi', create=True, - new=self._mock_wmi) + wmi_patcher = mock.patch('builtins.wmi', create=True, + new=self._mock_wmi) platform_patcher = mock.patch('sys.platform', 'win32') utilsfactory_patcher = mock.patch.object(utilsfactory, '_get_class') diff --git a/nova/tests/unit/virt/hyperv/test_pathutils.py b/nova/tests/unit/virt/hyperv/test_pathutils.py index 4bf3110d5058..573fe557a592 100644 --- a/nova/tests/unit/virt/hyperv/test_pathutils.py +++ b/nova/tests/unit/virt/hyperv/test_pathutils.py @@ -16,7 +16,6 @@ import os import time import mock -from six.moves import builtins from nova import exception from nova.tests.unit.virt.hyperv import test_base @@ -121,8 +120,8 @@ class PathUtilsTestCase(test_base.HyperVBaseTestCase): fake_windows_error = WindowsError self._pathutils.check_create_dir = mock.MagicMock( side_effect=WindowsError(pathutils.ERROR_INVALID_NAME)) - with mock.patch.object(builtins, 'WindowsError', - fake_windows_error, create=True): + with mock.patch('builtins.WindowsError', + fake_windows_error, create=True): self.assertRaises(exception.AdminRequired, self._pathutils._get_instances_sub_dir, fake_dir_name) diff --git a/nova/tests/unit/virt/hyperv/test_serialconsoleops.py b/nova/tests/unit/virt/hyperv/test_serialconsoleops.py index 0724cfef75d2..1e8a9c7557d4 100644 --- a/nova/tests/unit/virt/hyperv/test_serialconsoleops.py +++ b/nova/tests/unit/virt/hyperv/test_serialconsoleops.py @@ -14,7 +14,6 @@ # under the License. import mock -from six.moves import builtins from nova import exception from nova.tests.unit.virt.hyperv import test_base @@ -89,7 +88,7 @@ class SerialConsoleOpsTestCase(test_base.HyperVBaseTestCase): self._serialops.get_serial_console, mock.sentinel.instance_name) - @mock.patch.object(builtins, 'open') + @mock.patch('builtins.open') @mock.patch("os.path.exists") def test_get_console_output_exception(self, fake_path_exists, fake_open): self._serialops._pathutils.get_vm_console_log_paths.return_value = [ diff --git a/nova/tests/unit/virt/libvirt/test_driver.py b/nova/tests/unit/virt/libvirt/test_driver.py index cd0ee398c782..903ae889c84e 100644 --- a/nova/tests/unit/virt/libvirt/test_driver.py +++ b/nova/tests/unit/virt/libvirt/test_driver.py @@ -60,7 +60,6 @@ from oslo_utils import units from oslo_utils import uuidutils from oslo_utils import versionutils import six -from six.moves import range from nova.api.metadata import base as instance_metadata from nova.compute import manager @@ -15739,8 +15738,7 @@ class LibvirtConnTestCase(test.NoDBTestCase, with test.nested( mock.patch('os.path.exists', side_effect=mock_path_exists), - mock.patch.object(six.moves.builtins, 'open', - fake_open)): + mock.patch('builtins.open', fake_open)): log_data = drvr.get_console_output(self.context, instance) finally: @@ -20764,7 +20762,7 @@ class TestGuestConfigSysinfoSerialOS(test.NoDBTestCase): self.flags(sysinfo_serial="os", group="libvirt") theuuid = "56b40135-a973-4eb3-87bb-a2382a3e6dbc" with test.nested( - mock.patch.object(six.moves.builtins, "open", + mock.patch('builtins.open', mock.mock_open(read_data=theuuid)), self.patch_exists("/etc/machine-id", True)): self._test_get_guest_config_sysinfo_serial(theuuid) @@ -20772,8 +20770,7 @@ class TestGuestConfigSysinfoSerialOS(test.NoDBTestCase): def test_get_guest_config_sysinfo_serial_os_empty_machine_id(self): self.flags(sysinfo_serial="os", group="libvirt") with test.nested( - mock.patch.object(six.moves.builtins, "open", - mock.mock_open(read_data="")), + mock.patch('builtins.open', mock.mock_open(read_data="")), self.patch_exists("/etc/machine-id", True)): self.assertRaises(exception.NovaException, self._test_get_guest_config_sysinfo_serial, diff --git a/nova/tests/unit/virt/libvirt/test_host.py b/nova/tests/unit/virt/libvirt/test_host.py index 358ae6f6a60a..344c10012999 100644 --- a/nova/tests/unit/virt/libvirt/test_host.py +++ b/nova/tests/unit/virt/libvirt/test_host.py @@ -23,10 +23,8 @@ import mock from oslo_utils.fixture import uuidsentinel as uuids from oslo_utils import uuidutils import six -from six.moves import builtins import testtools - from nova.compute import vm_states from nova import exception from nova import objects @@ -959,7 +957,7 @@ SwapCached: 0 kB Active: 8381604 kB """) with test.nested( - mock.patch.object(builtins, "open", m, create=True), + mock.patch('builtins.open', m, create=True), mock.patch.object(host.Host, "get_connection"), ) as (mock_file, mock_conn): mock_conn().getInfo.return_value = [ @@ -996,7 +994,7 @@ Active: 8381604 kB """) with test.nested( - mock.patch.object(six.moves.builtins, "open", m, create=True), + mock.patch('builtins.open', m, create=True), mock.patch.object(host.Host, "list_guests"), mock.patch.object(libvirt_driver.LibvirtDriver, @@ -1232,8 +1230,7 @@ Active: 8381604 kB read_data="""cg /cgroup/cpu,cpuacct cg opt1,cpu,opt3 0 0 cg /cgroup/memory cg opt1,opt2 0 0 """) - with mock.patch( - "six.moves.builtins.open", m, create=True): + with mock.patch('builtins.open', m, create=True): self.assertTrue(self.host.is_cpu_control_policy_capable()) def test_is_cpu_control_policy_capable_ko(self): @@ -1241,11 +1238,10 @@ cg /cgroup/memory cg opt1,opt2 0 0 read_data="""cg /cgroup/cpu,cpuacct cg opt1,opt2,opt3 0 0 cg /cgroup/memory cg opt1,opt2 0 0 """) - with mock.patch( - "six.moves.builtins.open", m, create=True): + with mock.patch('builtins.open', m, create=True): self.assertFalse(self.host.is_cpu_control_policy_capable()) - @mock.patch('six.moves.builtins.open', side_effect=IOError) + @mock.patch('builtins.open', side_effect=IOError) def test_is_cpu_control_policy_capable_ioerror(self, mock_open): self.assertFalse(self.host.is_cpu_control_policy_capable()) @@ -1321,26 +1317,26 @@ class TestLibvirtSEVUnsupported(TestLibvirtSEV): '/sys/module/kvm_amd/parameters/sev') @mock.patch.object(os.path, 'exists', return_value=True) - @mock.patch.object(builtins, 'open', mock.mock_open(read_data="0\n")) + @mock.patch('builtins.open', mock.mock_open(read_data="0\n")) def test_kernel_parameter_zero(self, fake_exists): self.assertFalse(self.host._kernel_supports_amd_sev()) fake_exists.assert_called_once_with( '/sys/module/kvm_amd/parameters/sev') @mock.patch.object(os.path, 'exists', return_value=True) - @mock.patch.object(builtins, 'open', mock.mock_open(read_data="1\n")) + @mock.patch('builtins.open', mock.mock_open(read_data="1\n")) def test_kernel_parameter_one(self, fake_exists): self.assertTrue(self.host._kernel_supports_amd_sev()) fake_exists.assert_called_once_with( '/sys/module/kvm_amd/parameters/sev') @mock.patch.object(os.path, 'exists', return_value=True) - @mock.patch.object(builtins, 'open', mock.mock_open(read_data="1\n")) + @mock.patch('builtins.open', mock.mock_open(read_data="1\n")) def test_unsupported_without_feature(self, fake_exists): self.assertFalse(self.host.supports_amd_sev) @mock.patch.object(os.path, 'exists', return_value=True) - @mock.patch.object(builtins, 'open', mock.mock_open(read_data="1\n")) + @mock.patch('builtins.open', mock.mock_open(read_data="1\n")) @mock.patch.object(vc, '_domain_capability_features', new=vc._domain_capability_features_with_SEV_unsupported) def test_unsupported_with_feature(self, fake_exists): @@ -1351,7 +1347,7 @@ class TestLibvirtSEVSupported(TestLibvirtSEV): """Libvirt driver tests for when AMD SEV support is present.""" @mock.patch.object(os.path, 'exists', return_value=True) - @mock.patch.object(builtins, 'open', mock.mock_open(read_data="1\n")) + @mock.patch('builtins.open', mock.mock_open(read_data="1\n")) @mock.patch.object(vc, '_domain_capability_features', new=vc._domain_capability_features_with_SEV) def test_supported_with_feature(self, fake_exists): diff --git a/nova/tests/unit/virt/libvirt/test_imagecache.py b/nova/tests/unit/virt/libvirt/test_imagecache.py index 8c6a31748375..e034b79f353e 100644 --- a/nova/tests/unit/virt/libvirt/test_imagecache.py +++ b/nova/tests/unit/virt/libvirt/test_imagecache.py @@ -15,6 +15,7 @@ import contextlib +import io import os import time @@ -24,7 +25,6 @@ from oslo_concurrency import processutils from oslo_log import formatters from oslo_log import log as logging from oslo_utils.fixture import uuidsentinel as uuids -from six.moves import cStringIO from nova.compute import manager as compute_manager import nova.conf @@ -42,7 +42,7 @@ CONF = nova.conf.CONF def intercept_log_messages(): try: mylog = logging.getLogger('nova') - stream = cStringIO() + stream = io.StringIO() handler = logging.logging.StreamHandler(stream) handler.setFormatter(formatters.ContextFormatter()) mylog.logger.addHandler(handler) diff --git a/nova/tests/unit/virt/libvirt/test_utils.py b/nova/tests/unit/virt/libvirt/test_utils.py index ccb96d38c2fa..f58880c8dfab 100644 --- a/nova/tests/unit/virt/libvirt/test_utils.py +++ b/nova/tests/unit/virt/libvirt/test_utils.py @@ -26,7 +26,6 @@ from oslo_concurrency import processutils from oslo_config import cfg from oslo_utils import fileutils from oslo_utils.fixture import uuidsentinel as uuids -import six from nova.compute import utils as compute_utils from nova import context @@ -549,19 +548,19 @@ sunrpc /var/lib/nfs/rpc_pipefs rpc_pipefs rw,relatime 0 0 # Source is given, and matches source in /proc/mounts proc_mnt = mock.mock_open(read_data=proc_with_mnt) - with mock.patch.object(six.moves.builtins, "open", proc_mnt): + with mock.patch('builtins.open', proc_mnt): self.assertTrue(libvirt_utils.is_mounted(mount_path, source)) # Source is given, and doesn't match source in /proc/mounts proc_mnt = mock.mock_open(read_data=proc_wrong_mnt) - with mock.patch.object(six.moves.builtins, "open", proc_mnt): + with mock.patch('builtins.open', proc_mnt): self.assertFalse(libvirt_utils.is_mounted(mount_path, source)) # Source is given, and mountpoint isn't present in /proc/mounts # Note that this shouldn't occur, as os.path.ismount should have # previously returned False in this case. proc_umnt = mock.mock_open(read_data=proc_without_mnt) - with mock.patch.object(six.moves.builtins, "open", proc_umnt): + with mock.patch('builtins.open', proc_umnt): self.assertFalse(libvirt_utils.is_mounted(mount_path, source)) def test_find_disk_file_device(self): diff --git a/nova/tests/unit/virt/powervm/test_image.py b/nova/tests/unit/virt/powervm/test_image.py index 8adf197cb9eb..2db33e6a0ffc 100644 --- a/nova/tests/unit/virt/powervm/test_image.py +++ b/nova/tests/unit/virt/powervm/test_image.py @@ -15,10 +15,8 @@ # under the License. import mock -import six from nova import test - from nova.virt.powervm import image @@ -28,7 +26,7 @@ class TestImage(test.TestCase): @mock.patch('nova.image.glance.API', autospec=True) def test_stream_blockdev_to_glance(self, mock_api, mock_chown): mock_open = mock.mock_open() - with mock.patch.object(six.moves.builtins, 'open', new=mock_open): + with mock.patch('builtins.open', new=mock_open): image.stream_blockdev_to_glance('context', mock_api, 'image_id', 'metadata', '/dev/disk') mock_chown.assert_called_with('/dev/disk') diff --git a/nova/tests/unit/virt/test_virt.py b/nova/tests/unit/virt/test_virt.py index 6e817d5f1004..67830c70208a 100644 --- a/nova/tests/unit/virt/test_virt.py +++ b/nova/tests/unit/virt/test_virt.py @@ -122,7 +122,7 @@ class TestDiskImage(test.NoDBTestCase): response = io.StringIO(six.text_type(PROC_MOUNTS_CONTENTS)) mock_open.return_value = response - @mock.patch.object(six.moves.builtins, 'open') + @mock.patch('builtins.open') def test_mount(self, mock_open): self.mock_proc_mounts(mock_open) image = '/tmp/fake-image' @@ -139,7 +139,7 @@ class TestDiskImage(test.NoDBTestCase): self.assertEqual(diskimage._mounter, fakemount) self.assertEqual(dev, '/dev/fake') - @mock.patch.object(six.moves.builtins, 'open') + @mock.patch('builtins.open') def test_umount(self, mock_open): self.mock_proc_mounts(mock_open) @@ -159,7 +159,7 @@ class TestDiskImage(test.NoDBTestCase): diskimage.umount() self.assertIsNone(diskimage._mounter) - @mock.patch.object(six.moves.builtins, 'open') + @mock.patch('builtins.open') def test_teardown(self, mock_open): self.mock_proc_mounts(mock_open) diff --git a/nova/tests/unit/virt/zvm/test_driver.py b/nova/tests/unit/virt/zvm/test_driver.py index 1a0312d0c5c2..5e847c23d563 100644 --- a/nova/tests/unit/virt/zvm/test_driver.py +++ b/nova/tests/unit/virt/zvm/test_driver.py @@ -16,7 +16,6 @@ import copy import mock import os from oslo_utils.fixture import uuidsentinel -import six from nova.compute import provider_tree from nova import conf @@ -331,7 +330,7 @@ class TestZVMDriver(test.NoDBTestCase): allocations=None, network_info=self._network_info, block_device_info=None) - @mock.patch.object(six.moves.builtins, 'open') + @mock.patch('builtins.open') @mock.patch('nova.image.glance.get_remote_image_service') @mock.patch('nova.virt.zvm.utils.ConnectorClient.call') def test_snapshot(self, call, get_image_service, mock_open): @@ -421,7 +420,7 @@ class TestZVMDriver(test.NoDBTestCase): mock_delete.assert_called_once_with(image_id) image_service.delete.assert_called_once_with(self._context, image_id) - @mock.patch.object(six.moves.builtins, 'open') + @mock.patch('builtins.open') @mock.patch('nova.image.glance.get_remote_image_service') @mock.patch('nova.virt.zvm.utils.ConnectorClient.call') @mock.patch('nova.virt.zvm.hypervisor.Hypervisor.image_delete') diff --git a/nova/utils.py b/nova/utils.py index 0a40fa6ffc26..9a4b10797a9b 100644 --- a/nova/utils.py +++ b/nova/utils.py @@ -46,7 +46,6 @@ from oslo_utils import importutils from oslo_utils import strutils from oslo_utils import timeutils import six -from six.moves import range import nova.conf from nova import exception diff --git a/nova/version.py b/nova/version.py index a5b34f90ceae..1ec746133929 100644 --- a/nova/version.py +++ b/nova/version.py @@ -27,7 +27,7 @@ def _load_config(): # Don't load in global context, since we can't assume # these modules are accessible when distutils uses # this module - from six.moves import configparser + import configparser from oslo_config import cfg diff --git a/nova/virt/ironic/driver.py b/nova/virt/ironic/driver.py index 09600583efe5..0a54522bb74c 100644 --- a/nova/virt/ironic/driver.py +++ b/nova/virt/ironic/driver.py @@ -25,6 +25,7 @@ import gzip import shutil import tempfile import time +from urllib import parse as urlparse from openstack import exceptions as sdk_exc from oslo_log import log as logging @@ -33,7 +34,6 @@ from oslo_service import loopingcall from oslo_utils import excutils from oslo_utils import importutils import six -import six.moves.urllib.parse as urlparse from tooz import hashring as hash_ring from nova.api.metadata import base as instance_metadata diff --git a/nova/virt/libvirt/driver.py b/nova/virt/libvirt/driver.py index 78a47d8165a4..44e788895d2d 100644 --- a/nova/virt/libvirt/driver.py +++ b/nova/virt/libvirt/driver.py @@ -73,7 +73,6 @@ from oslo_utils import timeutils from oslo_utils import units from oslo_utils import uuidutils import six -from six.moves import range from nova.api.metadata import base as instance_metadata from nova.api.metadata import password @@ -5835,7 +5834,7 @@ class LibvirtDriver(driver.ComputeDriver): def _create_serial_consoles(self, guest_cfg, num_ports, char_dev_cls, log_path): - for port in six.moves.range(num_ports): + for port in range(num_ports): console = char_dev_cls() console.port = port console.type = "tcp" @@ -7409,7 +7408,7 @@ class LibvirtDriver(driver.ComputeDriver): parent_device, supported_types) chosen_mdevs = [] - for c in six.moves.range(vgpus_asked): + for c in range(vgpus_asked): chosen_mdev = None if mdevs_available: # Take the first available mdev @@ -9682,7 +9681,7 @@ class LibvirtDriver(driver.ComputeDriver): if CONF.serial_console.enabled: num_ports = hardware.get_number_of_serial_ports( instance.flavor, instance.image_meta) - for port in six.moves.range(num_ports): + for port in range(num_ports): migrate_data.serial_listen_ports.append( serial_console.acquire_port( migrate_data.serial_listen_addr)) diff --git a/nova/virt/zvm/utils.py b/nova/virt/zvm/utils.py index bc949e1115dd..3c44f0ccdd2e 100644 --- a/nova/virt/zvm/utils.py +++ b/nova/virt/zvm/utils.py @@ -13,9 +13,10 @@ # under the License. import os +from urllib import parse as urlparse + from oslo_log import log as logging import six -import six.moves.urllib.parse as urlparse from zvmconnector import connector from oslo_utils import fileutils diff --git a/nova/volume/cinder.py b/nova/volume/cinder.py index fdbcb50c9bb7..53d1c0f17b9e 100644 --- a/nova/volume/cinder.py +++ b/nova/volume/cinder.py @@ -22,6 +22,7 @@ import collections import copy import functools import sys +import urllib from cinderclient import api_versions as cinder_api_versions from cinderclient import apiclient as cinder_apiclient @@ -36,7 +37,6 @@ from oslo_utils import excutils from oslo_utils import strutils import retrying import six -from six.moves import urllib from nova import availability_zones as az import nova.conf