Remove six from project dependencies

Change-Id: I07ef144ce7af6d14004530f88318824e1545c4b9
This commit is contained in:
Federico Ressi 2021-10-27 11:25:42 +02:00
parent f7fd956ed2
commit 630f4ad730
15 changed files with 39 additions and 69 deletions

View File

@ -22,7 +22,6 @@ python-novaclient>=17.2.1 # Apache-2.0
python-octaviaclient>=2.2.0 # Apache-2.0 python-octaviaclient>=2.2.0 # Apache-2.0
python-openstackclient>=5.4.0 # Apache-2.0 python-openstackclient>=5.4.0 # Apache-2.0
PyYAML>=5.4.1 # MIT PyYAML>=5.4.1 # MIT
six>=1.15.0 # MIT
sshtunnel>=0.3.1 # MIT sshtunnel>=0.3.1 # MIT
testtools>=2.4.0 # MIT testtools>=2.4.0 # MIT
validations-libs>=1.1.0 # Apache-2.0 validations-libs>=1.1.0 # Apache-2.0

View File

@ -18,7 +18,6 @@ import itertools
import fixtures import fixtures
from oslo_log import log from oslo_log import log
import six
import testtools import testtools
from testtools import content from testtools import content
@ -97,7 +96,7 @@ def get_text_to_get_bytes(get_text):
def get_bytes(): def get_bytes():
text = get_text() text = get_text()
if text: if text:
if isinstance(text, six.string_types): if isinstance(text, str):
yield text.encode(errors='ignore') yield text.encode(errors='ignore')
else: else:
for t in text: for t in text:

View File

@ -21,7 +21,6 @@ import typing
import fixtures import fixtures
from oslo_log import log from oslo_log import log
import six
import testtools import testtools
import tobiko import tobiko
@ -88,7 +87,7 @@ def get_fixture_name(obj):
def get_fixture_class(obj): def get_fixture_class(obj):
'''Get fixture class''' '''Get fixture class'''
if isinstance(obj, six.string_types): if isinstance(obj, str):
obj = tobiko.load_object(obj) obj = tobiko.load_object(obj)
if not inspect.isclass(obj): if not inspect.isclass(obj):
@ -161,7 +160,7 @@ def cleanup_fixture(obj, fixture_id=None, manager=None):
def get_name_and_object(obj): def get_name_and_object(obj):
'''Get (name, obj) tuple identified by given :param obj:''' '''Get (name, obj) tuple identified by given :param obj:'''
if isinstance(obj, six.string_types): if isinstance(obj, str):
return obj, tobiko.load_object(obj) return obj, tobiko.load_object(obj)
else: else:
return get_object_name(obj), obj return get_object_name(obj), obj
@ -219,8 +218,9 @@ def get_required_fixtures(obj):
if required_names is None: if required_names is None:
if is_test_method(obj): if is_test_method(obj):
# Get fixtures from default values that are fixtures # Get fixtures from default values that are fixtures
defaults = getattr(obj, '__defaults__', None) or []
required = {default required = {default
for default in six.get_function_defaults(obj) or [] for default in defaults
if is_fixture(default)} if is_fixture(default)}
elif inspect.isclass(obj): elif inspect.isclass(obj):
@ -312,7 +312,7 @@ def get_fixture_id(obj: typing.Any) -> typing.Any:
def get_object_name(obj): def get_object_name(obj):
'''Gets a fully qualified name for given :param obj:''' '''Gets a fully qualified name for given :param obj:'''
if isinstance(obj, six.string_types): if isinstance(obj, str):
return obj return obj
name = getattr(obj, '__tobiko_fixture_name__', None) name = getattr(obj, '__tobiko_fixture_name__', None)
@ -326,25 +326,9 @@ def get_object_name(obj):
module = inspect.getmodule(obj).__name__ module = inspect.getmodule(obj).__name__
if six.PY2: name = getattr(obj, '__qualname__', None)
# Below code is only for old Python versions if name:
if inspect.isclass(obj): return module + '.' + name
# This doesn't work for nested classes
return module + '.' + obj.__name__
method_class = getattr(obj, 'im_class', None)
if method_class:
# This doesn't work for nested classes
return module + '.' + method_class.__name__ + '.' + obj.__name__
if inspect.isfunction(obj):
return module + '.' + obj.func_name
else:
# Only Python 3 defines __qualname__
name = getattr(obj, '__qualname__', None)
if name:
return module + '.' + name
msg = "Unable to get fixture name from object {!r}".format(obj) msg = "Unable to get fixture name from object {!r}".format(obj)
raise TypeError(msg) raise TypeError(msg)

View File

@ -21,7 +21,6 @@ import typing
from abc import ABC from abc import ABC
import netaddr import netaddr
import six
from oslo_log import log from oslo_log import log
import tobiko import tobiko
@ -497,7 +496,7 @@ class SameHostServerStackFixture(PeerServerStackFixture, abc.ABC):
def as_str(text): def as_str(text):
if isinstance(text, six.string_types): if isinstance(text, str):
return text return text
else: else:
return text.decode() return text.decode()

View File

@ -16,12 +16,11 @@ from __future__ import absolute_import
import collections import collections
import re import re
import typing import typing
from urllib import parse
import weakref import weakref
import netaddr import netaddr
from oslo_log import log from oslo_log import log
import six
from six.moves.urllib import parse
import tobiko import tobiko
from tobiko.shell import files from tobiko.shell import files
@ -387,7 +386,7 @@ class OpenStackTopology(tobiko.SharedFixture):
name = name or (hostname and node_name_from_hostname(hostname)) name = name or (hostname and node_name_from_hostname(hostname))
details = {} details = {}
if name: if name:
tobiko.check_valid_type(name, six.string_types) tobiko.check_valid_type(name, str)
details['name'] = name details['name'] = name
try: try:
return self._names[name] return self._names[name]

View File

@ -19,7 +19,6 @@ import collections
import enum import enum
from oslo_log import log from oslo_log import log
import six
import tobiko import tobiko
from tobiko.shell.sh import _exception from tobiko.shell.sh import _exception
@ -29,7 +28,7 @@ from tobiko.shell.sh import _process
LOG = log.getLogger(__name__) LOG = log.getLogger(__name__)
DATA_TYPES = six.string_types + (six.binary_type, six.text_type) DATA_TYPES = (str, bytes)
@enum.unique @enum.unique

View File

@ -19,7 +19,7 @@ import io
import select import select
from oslo_log import log from oslo_log import log
import six
LOG = log.getLogger(__name__) LOG = log.getLogger(__name__)
@ -58,7 +58,7 @@ class ShellIOBase(io.IOBase):
if not data: if not data:
return '' return ''
if isinstance(data, six.string_types): if isinstance(data, str):
return data return data
return data.decode() return data.decode()
@ -124,7 +124,7 @@ class ShellWritable(ShellIOBase):
return True return True
def write(self, data): def write(self, data):
if not isinstance(data, six.binary_type): if not isinstance(data, bytes):
data = data.encode() data = data.encode()
witten_bytes = self.delegate.write(data) witten_bytes = self.delegate.write(data)
if witten_bytes is None: if witten_bytes is None:

View File

@ -29,7 +29,6 @@ import netaddr
from oslo_log import log from oslo_log import log
import paramiko import paramiko
from paramiko import common from paramiko import common
import six
import tobiko import tobiko
from tobiko.shell.ssh import _config from tobiko.shell.ssh import _config
@ -76,7 +75,7 @@ def positive_int(value):
def get_key_filename(value): def get_key_filename(value):
if isinstance(value, six.string_types): if isinstance(value, str):
value = [value] value = [value]
key_filename = [tobiko.tobiko_config_path(v) for v in value] key_filename = [tobiko.tobiko_config_path(v) for v in value]
return [f return [f
@ -670,7 +669,7 @@ def ssh_proxy_sock(hostname=None, port=None, command=None, client=None,
return None return None
# Apply connect parameters to proxy command # Apply connect parameters to proxy command
if not isinstance(command, six.string_types): if not isinstance(command, str):
command = subprocess.list2cmdline(command) command = subprocess.list2cmdline(command)
if hostname: if hostname:
command = command.format(hostname=hostname, port=(port or 22)) command = command.format(hostname=hostname, port=(port or 22))

View File

@ -17,8 +17,6 @@ from __future__ import absolute_import
import subprocess import subprocess
import six
from tobiko.shell.ssh import _config from tobiko.shell.ssh import _config
@ -38,7 +36,7 @@ def ssh_command(host, username=None, port=None, command=None,
host=host, config_files=config_files) host=host, config_files=config_files)
command = command or host_config.default.command.split() command = command or host_config.default.command.split()
if isinstance(command, six.string_types): if isinstance(command, str):
command = command.split() command = command.split()
hostname = host_config.hostname hostname = host_config.hostname
@ -56,7 +54,7 @@ def ssh_command(host, username=None, port=None, command=None,
command += ['-i', key_filename] command += ['-i', key_filename]
if proxy_command: if proxy_command:
if not isinstance(proxy_command, six.string_types): if not isinstance(proxy_command, str):
proxy_command = subprocess.list2cmdline([str(a) proxy_command = subprocess.list2cmdline([str(a)
for a in proxy_command]) for a in proxy_command])
options['ProxyCommand'] = proxy_command options['ProxyCommand'] = proxy_command

View File

@ -18,10 +18,9 @@ from __future__ import absolute_import
import collections import collections
import contextlib import contextlib
import socket import socket
import urllib
from oslo_log import log from oslo_log import log
import six
from six.moves import urllib
import sshtunnel import sshtunnel
import tobiko import tobiko
@ -154,7 +153,7 @@ class SSHUnixForwardHandler(sshtunnel._ForwardHandler):
self.server.local_address) self.server.local_address)
remote_address = self.remote_address remote_address = self.remote_address
assert isinstance(remote_address, six.string_types) assert isinstance(remote_address, str)
command = 'sudo nc -U "{}"'.format(remote_address) command = 'sudo nc -U "{}"'.format(remote_address)
chan = self.transport.open_session() chan = self.transport.open_session()
@ -303,7 +302,7 @@ def binding_url(address):
return 'tcp://{hostname}:{port}'.format(hostname=hostname, return 'tcp://{hostname}:{port}'.format(hostname=hostname,
port=port) port=port)
elif isinstance(address, six.string_types): elif isinstance(address, str):
return 'unix://{path}'.format(path=address) return 'unix://{path}'.format(path=address)
raise TypeError('Invalid address type: {!r}'.format(address)) raise TypeError('Invalid address type: {!r}'.format(address))

View File

@ -17,7 +17,6 @@ import os
import netaddr import netaddr
import pandas as pd import pandas as pd
import six
import testtools import testtools
from tobiko import config from tobiko import config
@ -71,7 +70,7 @@ class OvercloudNovaApiTest(testtools.TestCase):
host_config = tobiko.setup_fixture( host_config = tobiko.setup_fixture(
tripleo.overcloud_host_config(hostname=hostname)) tripleo.overcloud_host_config(hostname=hostname))
self.assertEqual(hostname, host_config.host) self.assertEqual(hostname, host_config.host)
self.assertIsInstance(host_config.hostname, six.string_types) self.assertIsInstance(host_config.hostname, str)
netaddr.IPAddress(host_config.hostname) netaddr.IPAddress(host_config.hostname)
self.assertEqual(CONF.tobiko.tripleo.overcloud_ssh_port, self.assertEqual(CONF.tobiko.tripleo.overcloud_ssh_port,
host_config.port) host_config.port)

View File

@ -13,8 +13,6 @@
# under the License. # under the License.
from __future__ import absolute_import from __future__ import absolute_import
import six
from tobiko import config from tobiko import config
from tobiko.tests import unit from tobiko.tests import unit
@ -26,8 +24,7 @@ TIPLEO_CONF = CONF.tobiko.tripleo
class TripleoConfigTest(unit.TobikoUnitTest): class TripleoConfigTest(unit.TobikoUnitTest):
def test_ssh_key_filename(self): def test_ssh_key_filename(self):
self.assertIsInstance(TIPLEO_CONF.undercloud_ssh_key_filename, self.assertIsInstance(TIPLEO_CONF.undercloud_ssh_key_filename, str)
six.string_types)
class UndercloudConfigTest(unit.TobikoUnitTest): class UndercloudConfigTest(unit.TobikoUnitTest):
@ -35,21 +32,21 @@ class UndercloudConfigTest(unit.TobikoUnitTest):
def test_undercloud_ssh_hostname(self): def test_undercloud_ssh_hostname(self):
value = TIPLEO_CONF.undercloud_ssh_hostname value = TIPLEO_CONF.undercloud_ssh_hostname
if value is not None: if value is not None:
self.assertIsInstance(value, six.string_types) self.assertIsInstance(value, str)
def test_undercloud_ssh_port(self): def test_undercloud_ssh_port(self):
value = TIPLEO_CONF.undercloud_ssh_port value = TIPLEO_CONF.undercloud_ssh_port
if value is not None: if value is not None:
self.assertIsInstance(value, int) self.assertIsInstance(value, int)
self.assertIn(value, six.moves.range(1, 2 ** 16)) self.assertGreater(value, 0)
self.assertLess(value, 2 ** 16)
def test_undercloud_ssh_username(self): def test_undercloud_ssh_username(self):
self.assertIsInstance(TIPLEO_CONF.undercloud_ssh_username, self.assertIsInstance(TIPLEO_CONF.undercloud_ssh_username, str)
six.string_types)
def test_undercloud_rcfile(self): def test_undercloud_rcfile(self):
for rcfile in TIPLEO_CONF.undercloud_rcfile: for rcfile in TIPLEO_CONF.undercloud_rcfile:
self.assertIsInstance(rcfile, six.string_types) self.assertIsInstance(rcfile, str)
class OvercloudConfigTest(unit.TobikoUnitTest): class OvercloudConfigTest(unit.TobikoUnitTest):
@ -58,12 +55,12 @@ class OvercloudConfigTest(unit.TobikoUnitTest):
value = TIPLEO_CONF.overcloud_ssh_port value = TIPLEO_CONF.overcloud_ssh_port
if value is not None: if value is not None:
self.assertIsInstance(value, int) self.assertIsInstance(value, int)
self.assertIn(value, six.moves.range(1, 2 ** 16)) self.assertGreater(value, 0)
self.assertLess(value, 2 ** 16)
def test_overcloud_ssh_username(self): def test_overcloud_ssh_username(self):
self.assertIsInstance(TIPLEO_CONF.overcloud_ssh_username, self.assertIsInstance(TIPLEO_CONF.overcloud_ssh_username, str)
six.string_types)
def test_overcloud_rcfile(self): def test_overcloud_rcfile(self):
for rcfile in TIPLEO_CONF.overcloud_rcfile: for rcfile in TIPLEO_CONF.overcloud_rcfile:
self.assertIsInstance(rcfile, six.string_types) self.assertIsInstance(rcfile, str)

View File

@ -17,7 +17,6 @@ import io
import os import os
from oslo_log import log from oslo_log import log
import six
import tobiko import tobiko
from tobiko import config from tobiko import config
@ -199,7 +198,7 @@ class OvercloudHostConfig(tobiko.SharedFixture):
self.server = server self.server = server
if self.host is None: if self.host is None:
self.host = server.name self.host = server.name
tobiko.check_valid_type(self.host, six.string_types) tobiko.check_valid_type(self.host, str)
self._connect_parameters = ssh.gather_ssh_connect_parameters(**kwargs) self._connect_parameters = ssh.gather_ssh_connect_parameters(**kwargs)
def setup_fixture(self): def setup_fixture(self):

View File

@ -1,10 +1,10 @@
from __future__ import absolute_import from __future__ import absolute_import
import io
import time import time
from oslo_log import log from oslo_log import log
import pandas import pandas
import six
import tobiko import tobiko
from tobiko.tripleo import overcloud from tobiko.tripleo import overcloud
@ -53,7 +53,7 @@ def get_pcs_resources_table(timeout=720, interval=2):
expect_exit_status=None).stdout expect_exit_status=None).stdout
# remove the first column when it only includes '*' characters # remove the first column when it only includes '*' characters
output = output.replace('*', '').strip() output = output.replace('*', '').strip()
stream = six.StringIO(output) stream = io.StringIO(output)
table = pandas.read_csv(stream, delim_whitespace=True, header=None) table = pandas.read_csv(stream, delim_whitespace=True, header=None)
table.columns = ['resource', 'resource_type', 'resource_state', table.columns = ['resource', 'resource_type', 'resource_state',
'overcloud_node'] 'overcloud_node']

View File

@ -1,11 +1,11 @@
from __future__ import absolute_import from __future__ import absolute_import
import io
import re import re
import time import time
from oslo_log import log from oslo_log import log
import pandas import pandas
import six
import tobiko import tobiko
from tobiko.openstack import neutron from tobiko.openstack import neutron
@ -53,7 +53,7 @@ root | 11| 2| 0.0| 0|00:00:05|migration/0 |[migration/0]
"\"DELIM%z\" -o \"DELIM%x\" -o \"DELIM%c\" -o \"DELIM%a\" |grep -v " "\"DELIM%z\" -o \"DELIM%x\" -o \"DELIM%c\" -o \"DELIM%a\" |grep -v "
"ps|sed 's/\"/''/g'", "ps|sed 's/\"/''/g'",
ssh_client=ssh_client).stdout ssh_client=ssh_client).stdout
stream = six.StringIO(output) stream = io.StringIO(output)
table = pandas.read_csv(stream, sep='DELIM', header=None, skiprows=1) table = pandas.read_csv(stream, sep='DELIM', header=None, skiprows=1)
table.replace(to_replace=' ', value="", regex=True, inplace=True) table.replace(to_replace=' ', value="", regex=True, inplace=True)
table.columns = ['USER', 'PID', 'PPID', 'CPU', 'VSZ', 'TIME', 'PROCESS', table.columns = ['USER', 'PID', 'PPID', 'CPU', 'VSZ', 'TIME', 'PROCESS',