Merge "Run pyupgrade to clean up Python 2 syntaxes"

This commit is contained in:
Zuul
2025-10-02 14:37:56 +00:00
committed by Gerrit Code Review
64 changed files with 276 additions and 275 deletions

View File

@@ -23,3 +23,8 @@ repos:
hooks:
- id: hacking
additional_dependencies: []
- repo: https://github.com/asottile/pyupgrade
rev: v3.18.0
hooks:
- id: pyupgrade
args: [--py3-only]

View File

@@ -1,4 +1,3 @@
# -*- coding: utf-8 -*-
# Licensed under the Apache License, Version 2.0 (the "License"); you may
# not use this file except in compliance with the License. You may obtain
# a copy of the License at

View File

@@ -1,4 +1,3 @@
# -*- coding: utf-8 -*-
# Licensed under the Apache License, Version 2.0 (the "License"); you may
# not use this file except in compliance with the License. You may obtain
# a copy of the License at
@@ -25,7 +24,7 @@ def gen_ref(ver, title, names):
refdir = os.path.join(BASE_DIR, "ref")
pkg = "heatclient"
if ver:
pkg = "%s.%s" % (pkg, ver)
pkg = "{}.{}".format(pkg, ver)
refdir = os.path.join(refdir, ver)
if not os.path.exists(refdir):
os.makedirs(refdir)

View File

@@ -48,7 +48,7 @@ def getid(obj):
# TODO(aababilov): call run_hooks() in HookableMixin's child classes
class HookableMixin(object):
class HookableMixin:
"""Mixin so classes can register and run hooks."""
_hooks_map = {}
@@ -92,7 +92,7 @@ class BaseManager(HookableMixin):
:param client: instance of BaseClient descendant for HTTP requests
"""
super(BaseManager, self).__init__()
super().__init__()
self.client = client
def _list(self, url, response_key=None, obj_class=None, json=None):
@@ -279,13 +279,12 @@ class CrudManager(BaseManager):
:param base_url: if provided, the generated URL will be appended to it
"""
url = base_url if base_url is not None else ''
url += '/%s' % self.collection_key
url = '/'.join([url, self.collection_key])
# do we have a specific entity?
entity_id = kwargs.get('%s_id' % self.key)
entity_id = kwargs.get('{}_id'.format(self.key))
if entity_id is not None:
url += '/%s' % entity_id
url = '/'.join([url, entity_id])
return url
@@ -297,7 +296,7 @@ class CrudManager(BaseManager):
else:
if isinstance(ref, Resource):
kwargs.pop(key)
kwargs['%s_id' % key] = getid(ref)
kwargs['{}_id'.firmat(key)] = getid(ref)
return kwargs
def create(self, **kwargs):
@@ -323,12 +322,13 @@ class CrudManager(BaseManager):
:param base_url: if provided, the generated URL will be appended to it
"""
kwargs = self._filter_kwargs(kwargs)
query = '?{}'.format(parse.urlencode(kwargs)) if kwargs else ''
return self._list(
'%(base_url)s%(query)s' % {
'base_url': self.build_url(base_url=base_url, **kwargs),
'query': '?%s' % parse.urlencode(kwargs) if kwargs else '',
},
'{base_url}{query}'.format(
base_url=self.build_url(base_url=base_url, **kwargs),
query=query,
),
self.collection_key)
def put(self, base_url=None, **kwargs):
@@ -343,7 +343,7 @@ class CrudManager(BaseManager):
def update(self, **kwargs):
kwargs = self._filter_kwargs(kwargs)
params = kwargs.copy()
params.pop('%s_id' % self.key)
params.pop('{}_id'.format(self.key))
return self._patch(
self.build_url(**kwargs),
@@ -362,12 +362,13 @@ class CrudManager(BaseManager):
:param base_url: if provided, the generated URL will be appended to it
"""
kwargs = self._filter_kwargs(kwargs)
query = '?{}'.format(parse.urlencode(kwargs)) if kwargs else ''
rl = self._list(
'%(base_url)s%(query)s' % {
'base_url': self.build_url(base_url=base_url, **kwargs),
'query': '?%s' % parse.urlencode(kwargs) if kwargs else '',
},
'{base_url}{query}'.format(
base_url=self.build_url(base_url=base_url, **kwargs),
query=query,
),
self.collection_key)
num = len(rl)
@@ -390,7 +391,7 @@ class Extension(HookableMixin):
manager_class = None
def __init__(self, name, module):
super(Extension, self).__init__()
super().__init__()
self.name = name
self.module = module
self._parse_extension_module()
@@ -408,10 +409,10 @@ class Extension(HookableMixin):
pass
def __repr__(self):
return "<Extension '%s'>" % self.name
return "<Extension '{}'>".format(self.name)
class Resource(object):
class Resource:
"""Base class for OpenStack resources (tenant, user, etc.).
This is pretty much just a bag for attributes.
@@ -435,9 +436,9 @@ class Resource(object):
reprkeys = sorted(k
for k in self.__dict__
if k[0] != '_' and k != 'manager')
info = ", ".join("%s=%s" % (k, getattr(self, k)) for k in reprkeys)
info = ", ".join("{}={}".format(k, getattr(self, k)) for k in reprkeys)
class_name = reflection.get_class_name(self, fully_qualified=False)
return "<%s %s>" % (class_name, info)
return "<{} {}>".format(class_name, info)
@property
def human_id(self):

View File

@@ -93,8 +93,8 @@ def build_derived_config_params(action, source, name, input_values,
def create_temp_url(swift_client, name, timeout, container=None):
container = container or '%(name)s-%(uuid)s' % {
'name': name, 'uuid': uuid.uuid4()}
container = container or '{name}-{uuid}'.format(
name=name, uuid=uuid.uuid4())
object_name = str(uuid.uuid4())
swift_client.put_container(container)
@@ -105,12 +105,12 @@ def create_temp_url(swift_client, name, timeout, container=None):
key = swift_client.head_account()[key_header]
project_path = swift_client.url.split('/')[-1]
path = '/v1/%s/%s/%s' % (project_path, container, object_name)
path = '/v1/{}/{}/{}'.format(project_path, container, object_name)
timeout_secs = timeout * 60
tempurl = swiftclient_utils.generate_temp_url(path, timeout_secs, key,
'PUT')
sw_url = urlparse.urlparse(swift_client.url)
put_url = '%s://%s%s' % (sw_url.scheme, sw_url.netloc, tempurl)
put_url = '{}://{}{}'.format(sw_url.scheme, sw_url.netloc, tempurl)
swift_client.put_object(container, object_name, '')
return put_url

View File

@@ -251,8 +251,8 @@ def wait_for_events(ws, stack_name, out=None):
event = events_mod.Event(None, data['payload'], True)
# Keep compatibility with the HTTP API
event.event_time = data['timestamp']
event.resource_status = '%s_%s' % (event.resource_action,
event.resource_status)
event.resource_status = '{}_{}'.format(event.resource_action,
event.resource_status)
events_log = utils.event_log_formatter([event], event_log_context)
out.write(events_log)
out.write('\n')
@@ -261,4 +261,4 @@ def wait_for_events(ws, stack_name, out=None):
if stack_status in ('COMPLETE', 'FAILED'):
msg = msg_template % dict(
name=stack_name, status=event.resource_status)
return '%s_%s' % (event.resource_action, stack_status), msg
return '{}_{}'.format(event.resource_action, stack_status), msg

View File

@@ -90,6 +90,6 @@ def print_software_deployment_output(data, name, out=sys.stdout, long=False):
truncate=not long,
truncate_prefix='...',
truncate_postfix='(truncated, view all with --long)')
out.write(' %s: |\n%s\n' % (name, output))
out.write(' {}: |\n{}\n'.format(name, output))
else:
out.write(' %s: %s\n' % (name, data.get(name)))
out.write(' {}: {}\n'.format(name, data.get(name)))

View File

@@ -68,7 +68,7 @@ def get_system_ca_file():
LOG.warning("System ca file could not be found.")
class HTTPClient(object):
class HTTPClient:
def __init__(self, endpoint, **kwargs):
self.endpoint = endpoint
@@ -146,7 +146,7 @@ class HTTPClient(object):
def log_http_response(resp):
status = (resp.raw.version / 10.0, resp.status_code, resp.reason)
dump = ['\nHTTP/%.1f %s %s' % status]
dump.extend(['%s: %s' % (k, v) for k, v in resp.headers.items()])
dump.extend(['{}: {}'.format(k, v) for k, v in resp.headers.items()])
dump.append('')
if resp.content:
content = resp.content
@@ -216,7 +216,7 @@ class HTTPClient(object):
message = (_("Error finding address for %(url)s: %(e)s") %
{'url': self.endpoint_url + url, 'e': e})
raise exc.InvalidEndpoint(message=message)
except (socket.error, socket.timeout) as e:
except (OSError, socket.timeout) as e:
endpoint = self.endpoint
message = (_("Error communicating with %(endpoint)s %(e)s") %
{'endpoint': endpoint, 'e': e})
@@ -313,7 +313,7 @@ class SessionClient(adapter.LegacyJsonAdapter):
if 'data' in kwargs:
kwargs['data'] = jsonutils.dumps(kwargs['data'])
resp, body = super(SessionClient, self).request(
resp, body = super().request(
url, method,
raise_exc=False,
**kwargs)

View File

@@ -17,7 +17,7 @@ import hashlib
from cliff.formatters import base
class ResourceDotInfo(object):
class ResourceDotInfo:
def __init__(self, res):
self.resource = res
@@ -34,7 +34,7 @@ class ResourceDotInfo(object):
if not prefix:
prefix = 'r'
hash_object = hashlib.sha256(url.encode('utf-8'))
return '%s_%s' % (prefix, hash_object.hexdigest()[:20])
return '{}_{}'.format(prefix, hash_object.hexdigest()[:20])
class ResourceDotFormatter(base.ListFormatter):
@@ -46,7 +46,7 @@ class ResourceDotFormatter(base.ListFormatter):
writer.write()
class ResourceDotWriter(object):
class ResourceDotWriter:
def __init__(self, data, stdout):
self.resources_by_stack = collections.defaultdict(

View File

@@ -128,7 +128,7 @@ def print_list(objs, fields, formatters=None, sortby_index=0,
def link_formatter(links):
def format_link(link):
if 'rel' in link:
return "%s (%s)" % (link.get('href', ''), link.get('rel', ''))
return "{} ({})".format(link.get('href', ''), link.get('rel', ''))
else:
return "%s" % (link.get('href', ''))
return '\n'.join(format_link(link) for link in links or [])
@@ -174,7 +174,7 @@ def print_dict(d, formatters=None):
print(pt.get_string(sortby='Property'))
class EventLogContext(object):
class EventLogContext:
def __init__(self):
# key is a stack id or the name of the nested stack, value is a tuple

View File

@@ -46,7 +46,7 @@ class HTTPException(BaseException):
code = 'N/A'
def __init__(self, message=None, code=None):
super(HTTPException, self).__init__(message)
super().__init__(message)
try:
self.error = jsonutils.loads(message)
if 'error' not in self.error:

View File

@@ -27,7 +27,7 @@ class BuildInfo(command.ShowOne):
log = logging.getLogger(__name__ + ".BuildInfo")
def get_parser(self, prog_name):
parser = super(BuildInfo, self).get_parser(prog_name)
parser = super().get_parser(prog_name)
return parser
def take_action(self, parsed_args):

View File

@@ -32,7 +32,7 @@ class ShowEvent(command.ShowOne):
log = logging.getLogger(__name__ + '.ShowEvent')
def get_parser(self, prog_name):
parser = super(ShowEvent, self).get_parser(prog_name)
parser = super().get_parser(prog_name)
parser.add_argument(
'stack',
metavar='<stack>',
@@ -96,7 +96,7 @@ class ListEvent(command.Lister):
return 'heatclient.event.formatter.list'
def get_parser(self, prog_name):
parser = super(ListEvent, self).get_parser(prog_name)
parser = super().get_parser(prog_name)
parser.add_argument(
'stack',
metavar='<stack>',

View File

@@ -33,7 +33,7 @@ class ResourceShow(command.ShowOne):
log = logging.getLogger(__name__ + '.ResourceShowStack')
def get_parser(self, prog_name):
parser = super(ResourceShow, self).get_parser(prog_name)
parser = super().get_parser(prog_name)
parser.add_argument(
'stack',
metavar='<stack>',
@@ -80,7 +80,7 @@ class ResourceList(command.Lister):
return 'heatclient.resource.formatter.list'
def get_parser(self, prog_name):
parser = super(ResourceList, self).get_parser(prog_name)
parser = super().get_parser(prog_name)
parser.add_argument(
'stack',
metavar='<stack>',
@@ -153,7 +153,7 @@ class ResourceMetadata(format_utils.JsonFormat):
log = logging.getLogger(__name__ + ".ResourceMetadata")
def get_parser(self, prog_name):
parser = super(ResourceMetadata, self).get_parser(prog_name)
parser = super().get_parser(prog_name)
parser.add_argument(
'stack',
metavar='<stack>',
@@ -194,7 +194,7 @@ class ResourceSignal(command.Command):
log = logging.getLogger(__name__ + ".ResourceSignal")
def get_parser(self, prog_name):
parser = super(ResourceSignal, self).get_parser(prog_name)
parser = super().get_parser(prog_name)
parser.add_argument(
'stack',
metavar='<stack>',
@@ -261,7 +261,7 @@ class ResourceMarkUnhealthy(command.Command):
log = logging.getLogger(__name__ + ".ResourceMarkUnhealthy")
def get_parser(self, prog_name):
parser = super(ResourceMarkUnhealthy, self).get_parser(prog_name)
parser = super().get_parser(prog_name)
parser.add_argument(
'stack',
metavar='<stack>',

View File

@@ -30,8 +30,7 @@ class ResourceTypeShow(format_utils.YamlFormat):
log = logging.getLogger(__name__ + ".ResourceTypeShow")
def get_parser(self, prog_name):
parser = super(ResourceTypeShow,
self).get_parser(prog_name)
parser = super().get_parser(prog_name)
parser.add_argument(
'resource_type',
metavar='<resource-type>',
@@ -90,8 +89,7 @@ class ResourceTypeList(command.Lister):
log = logging.getLogger(__name__ + '.ResourceTypeList')
def get_parser(self, prog_name):
parser = super(ResourceTypeList,
self).get_parser(prog_name)
parser = super().get_parser(prog_name)
parser.add_argument(
'--filter',
dest='filter',

View File

@@ -25,7 +25,7 @@ class ListService(command.Lister):
log = logging.getLogger(__name__ + ".ListService")
def get_parser(self, prog_name):
parser = super(ListService, self).get_parser(prog_name)
parser = super().get_parser(prog_name)
return parser
def take_action(self, parsed_args):

View File

@@ -31,7 +31,7 @@ class ListSnapshot(command.Lister):
log = logging.getLogger(__name__ + ".ListSnapshot")
def get_parser(self, prog_name):
parser = super(ListSnapshot, self).get_parser(prog_name)
parser = super().get_parser(prog_name)
parser.add_argument(
'stack',
metavar='<stack>',
@@ -66,7 +66,7 @@ class ShowSnapshot(format_utils.YamlFormat):
log = logging.getLogger(__name__ + ".ShowSnapshot")
def get_parser(self, prog_name):
parser = super(ShowSnapshot, self).get_parser(prog_name)
parser = super().get_parser(prog_name)
parser.add_argument(
'stack',
metavar='<stack>',
@@ -105,7 +105,7 @@ class RestoreSnapshot(command.Command):
log = logging.getLogger(__name__ + ".RestoreSnapshot")
def get_parser(self, prog_name):
parser = super(RestoreSnapshot, self).get_parser(prog_name)
parser = super().get_parser(prog_name)
parser.add_argument(
'stack',
metavar='<stack>',
@@ -141,7 +141,7 @@ class CreateSnapshot(command.ShowOne):
log = logging.getLogger(__name__ + ".CreateSnapshot")
def get_parser(self, prog_name):
parser = super(CreateSnapshot, self).get_parser(prog_name)
parser = super().get_parser(prog_name)
parser.add_argument(
'stack',
metavar='<stack>',
@@ -181,7 +181,7 @@ class DeleteSnapshot(command.Command):
log = logging.getLogger(__name__ + ".DeleteSnapshot")
def get_parser(self, prog_name):
parser = super(DeleteSnapshot, self).get_parser(prog_name)
parser = super().get_parser(prog_name)
parser.add_argument(
'stack',
metavar='<stack>',

View File

@@ -34,7 +34,7 @@ class DeleteConfig(command.Command):
log = logging.getLogger(__name__ + ".DeleteConfig")
def get_parser(self, prog_name):
parser = super(DeleteConfig, self).get_parser(prog_name)
parser = super().get_parser(prog_name)
parser.add_argument(
'config',
metavar='<config>',
@@ -76,7 +76,7 @@ class ListConfig(command.Lister):
log = logging.getLogger(__name__ + ".ListConfig")
def get_parser(self, prog_name):
parser = super(ListConfig, self).get_parser(prog_name)
parser = super().get_parser(prog_name)
parser.add_argument(
'--limit',
metavar='<limit>',
@@ -114,7 +114,7 @@ class CreateConfig(format_utils.JsonFormat):
log = logging.getLogger(__name__ + ".CreateConfig")
def get_parser(self, prog_name):
parser = super(CreateConfig, self).get_parser(prog_name)
parser = super().get_parser(prog_name)
parser.add_argument(
'name',
metavar='<config-name>',
@@ -192,7 +192,7 @@ class ShowConfig(format_utils.YamlFormat):
log = logging.getLogger(__name__ + ".ShowConfig")
def get_parser(self, prog_name):
parser = super(ShowConfig, self).get_parser(prog_name)
parser = super().get_parser(prog_name)
parser.add_argument(
'config',
metavar='<config>',

View File

@@ -33,7 +33,7 @@ class CreateDeployment(format_utils.YamlFormat):
log = logging.getLogger(__name__ + '.CreateDeployment')
def get_parser(self, prog_name):
parser = super(CreateDeployment, self).get_parser(prog_name)
parser = super().get_parser(prog_name)
parser.add_argument(
'name',
metavar='<deployment-name>',
@@ -136,7 +136,7 @@ class DeleteDeployment(command.Command):
log = logging.getLogger(__name__ + '.DeleteDeployment')
def get_parser(self, prog_name):
parser = super(DeleteDeployment, self).get_parser(prog_name)
parser = super().get_parser(prog_name)
parser.add_argument(
'deployment',
metavar='<deployment>',
@@ -185,7 +185,7 @@ class ListDeployment(command.Lister):
log = logging.getLogger(__name__ + '.ListDeployment')
def get_parser(self, prog_name):
parser = super(ListDeployment, self).get_parser(prog_name)
parser = super().get_parser(prog_name)
parser.add_argument(
'--server',
metavar='<server>',
@@ -225,7 +225,7 @@ class ShowDeployment(command.ShowOne):
log = logging.getLogger(__name__ + ".ShowSoftwareDeployment")
def get_parser(self, prog_name):
parser = super(ShowDeployment, self).get_parser(prog_name)
parser = super().get_parser(prog_name)
parser.add_argument(
'deployment',
metavar='<deployment>',
@@ -272,7 +272,7 @@ class ShowMetadataDeployment(command.Command):
log = logging.getLogger(__name__ + '.ShowMetadataDeployment')
def get_parser(self, prog_name):
parser = super(ShowMetadataDeployment, self).get_parser(prog_name)
parser = super().get_parser(prog_name)
parser.add_argument(
'server',
metavar='<server>',
@@ -294,7 +294,7 @@ class ShowOutputDeployment(command.Command):
log = logging.getLogger(__name__ + '.ShowOutputDeployment')
def get_parser(self, prog_name):
parser = super(ShowOutputDeployment, self).get_parser(prog_name)
parser = super().get_parser(prog_name)
parser.add_argument(
'deployment',
metavar='<deployment>',

View File

@@ -41,7 +41,7 @@ class CreateStack(command.ShowOne):
log = logging.getLogger(__name__ + '.CreateStack')
def get_parser(self, prog_name):
parser = super(CreateStack, self).get_parser(prog_name)
parser = super().get_parser(prog_name)
parser.add_argument(
'-e', '--environment',
metavar='<environment>',
@@ -219,7 +219,7 @@ class UpdateStack(command.ShowOne):
log = logging.getLogger(__name__ + '.UpdateStack')
def get_parser(self, prog_name):
parser = super(UpdateStack, self).get_parser(prog_name)
parser = super().get_parser(prog_name)
parser.add_argument(
'-t', '--template', metavar='<template>',
help=_('Path to the template')
@@ -423,7 +423,7 @@ class ShowStack(command.ShowOne):
log = logging.getLogger(__name__ + ".ShowStack")
def get_parser(self, prog_name):
parser = super(ShowStack, self).get_parser(prog_name)
parser = super().get_parser(prog_name)
parser.add_argument(
'stack',
metavar='<stack>',
@@ -499,7 +499,7 @@ class ListStack(command.Lister):
log = logging.getLogger(__name__ + '.ListStack')
def get_parser(self, prog_name):
parser = super(ListStack, self).get_parser(prog_name)
parser = super().get_parser(prog_name)
parser.add_argument(
'--deleted',
action='store_true',
@@ -601,7 +601,7 @@ class EnvironmentShowStack(format_utils.YamlFormat):
log = logging.getLogger(__name__)
def get_parser(self, prog_name):
parser = super(EnvironmentShowStack, self).get_parser(prog_name)
parser = super().get_parser(prog_name)
parser.add_argument(
'stack',
metavar='<NAME or ID>',
@@ -634,7 +634,7 @@ class ListFileStack(format_utils.YamlFormat):
log = logging.getLogger(__name__)
def get_parser(self, prog_name):
parser = super(ListFileStack, self).get_parser(prog_name)
parser = super().get_parser(prog_name)
parser.add_argument(
'stack',
metavar='<NAME or ID>',
@@ -728,7 +728,7 @@ class DeleteStack(command.Command):
log = logging.getLogger(__name__ + ".DeleteStack")
def get_parser(self, prog_name):
parser = super(DeleteStack, self).get_parser(prog_name)
parser = super().get_parser(prog_name)
parser.add_argument(
'stack',
metavar='<stack>',
@@ -822,7 +822,7 @@ class AdoptStack(command.ShowOne):
log = logging.getLogger(__name__ + '.AdoptStack')
def get_parser(self, prog_name):
parser = super(AdoptStack, self).get_parser(prog_name)
parser = super().get_parser(prog_name)
parser.add_argument(
'name',
metavar='<stack-name>',
@@ -907,7 +907,7 @@ class AbandonStack(format_utils.JsonFormat):
log = logging.getLogger(__name__ + '.AbandonStack')
def get_parser(self, prog_name):
parser = super(AbandonStack, self).get_parser(prog_name)
parser = super().get_parser(prog_name)
parser.add_argument(
'stack',
metavar='<stack>',
@@ -937,7 +937,7 @@ class AbandonStack(format_utils.JsonFormat):
with open(parsed_args.output_file, 'w') as f:
f.write(jsonutils.dumps(stack, indent=2))
return [], None
except IOError as e:
except OSError as e:
raise exc.CommandError(str(e))
data = list(stack.values())
@@ -951,7 +951,7 @@ class ExportStack(format_utils.JsonFormat):
log = logging.getLogger(__name__ + '.ExportStack')
def get_parser(self, prog_name):
parser = super(ExportStack, self).get_parser(prog_name)
parser = super().get_parser(prog_name)
parser.add_argument(
'stack',
metavar='<stack>',
@@ -981,7 +981,7 @@ class ExportStack(format_utils.JsonFormat):
with open(parsed_args.output_file, 'w') as f:
f.write(jsonutils.dumps(data_info, indent=2))
return [], None
except IOError as e:
except OSError as e:
raise exc.CommandError(str(e))
data = list(data_info.values())
@@ -995,7 +995,7 @@ class OutputShowStack(command.ShowOne):
log = logging.getLogger(__name__ + '.OutputShowStack')
def get_parser(self, prog_name):
parser = super(OutputShowStack, self).get_parser(prog_name)
parser = super().get_parser(prog_name)
parser.add_argument(
'stack',
metavar='<stack>',
@@ -1075,7 +1075,7 @@ class OutputListStack(command.Lister):
log = logging.getLogger(__name__ + '.OutputListStack')
def get_parser(self, prog_name):
parser = super(OutputListStack, self).get_parser(prog_name)
parser = super().get_parser(prog_name)
parser.add_argument(
'stack',
metavar='<stack>',
@@ -1112,7 +1112,7 @@ class TemplateShowStack(format_utils.YamlFormat):
log = logging.getLogger(__name__ + '.TemplateShowStack')
def get_parser(self, prog_name):
parser = super(TemplateShowStack, self).get_parser(prog_name)
parser = super().get_parser(prog_name)
parser.add_argument(
'stack',
metavar='<stack>',
@@ -1140,7 +1140,7 @@ class StackActionBase(command.Lister):
log = logging.getLogger(__name__ + '.StackActionBase')
def _get_parser(self, prog_name, stack_help, wait_help):
parser = super(StackActionBase, self).get_parser(prog_name)
parser = super().get_parser(prog_name)
parser.add_argument(
'stack',
metavar='<stack>',
@@ -1341,7 +1341,7 @@ class StackHookPoll(command.Lister):
log = logging.getLogger(__name__ + '.StackHookPoll')
def get_parser(self, prog_name):
parser = super(StackHookPoll, self).get_parser(prog_name)
parser = super().get_parser(prog_name)
parser.add_argument(
'stack',
metavar='<stack>',
@@ -1410,7 +1410,7 @@ class StackHookClear(command.Command):
log = logging.getLogger(__name__ + '.StackHookClear')
def get_parser(self, prog_name):
parser = super(StackHookClear, self).get_parser(prog_name)
parser = super().get_parser(prog_name)
parser.add_argument(
'stack',
metavar='<stack>',

View File

@@ -32,7 +32,7 @@ class ListStackFailures(command.Command):
long=parsed_args.long)
def get_parser(self, prog_name):
parser = super(ListStackFailures, self).get_parser(prog_name)
parser = super().get_parser(prog_name)
parser.add_argument(
'stack',
metavar='<stack>',

View File

@@ -64,7 +64,7 @@ class FunctionList(command.Lister):
log = logging.getLogger(__name__ + '.FunctionList')
def get_parser(self, prog_name):
parser = super(FunctionList, self).get_parser(prog_name)
parser = super().get_parser(prog_name)
parser.add_argument(
'template_version',
metavar='<template-version>',
@@ -105,7 +105,7 @@ class Validate(format_utils.YamlFormat):
log = logging.getLogger(__name__ + ".Validate")
def get_parser(self, prog_name):
parser = super(Validate, self).get_parser(prog_name)
parser = super().get_parser(prog_name)
parser.add_argument(
'-e', '--environment',
metavar='<environment>',

View File

@@ -32,7 +32,7 @@ from heatclient import exc
osprofiler_profiler = importutils.try_import("osprofiler.profiler")
class HeatShell(object):
class HeatShell:
def _append_global_identity_args(self, parser):
# FIXME(gyee): these are global identity (Keystone) arguments which
@@ -592,8 +592,8 @@ class HeatShell(object):
class HelpFormatter(argparse.HelpFormatter):
def start_section(self, heading):
# Title-case the headings
heading = '%s%s' % (heading[0].upper(), heading[1:])
super(HelpFormatter, self).start_section(heading)
heading = '{}{}'.format(heading[0].upper(), heading[1:])
super().start_section(heading)
def main(args=None):

View File

@@ -21,7 +21,7 @@ class OpenStackClientTestBase(base.ClientTestBase):
"""Command line client base functions."""
def setUp(self):
super(OpenStackClientTestBase, self).setUp()
super().setUp()
self.parser = output_parser
def _get_clients(self):
@@ -48,7 +48,7 @@ class OpenStackClientTestBase(base.ClientTestBase):
items = self.parser.listing(output)
for item in items:
obj[item['Field']] = str(item['Value'])
return dict((self._key_name(k), v) for k, v in obj.items())
return {self._key_name(k): v for k, v in obj.items()}
def _key_name(self, key):
return key.lower().replace(' ', '_')
@@ -60,7 +60,7 @@ class OpenStackClientTestBase(base.ClientTestBase):
if item['ID'] == id:
obj = item
break
return dict((self._key_name(k), v) for k, v in obj.items())
return {self._key_name(k): v for k, v in obj.items()}
def _stack_create(self, name, template, parameters=[], wait=True):
cmd = 'stack create ' + name

View File

@@ -23,7 +23,7 @@ class OpenStackClientStackTest(base.OpenStackClientTestBase):
"""
def setUp(self):
super(OpenStackClientStackTest, self).setUp()
super().setUp()
self.stack_name = utils.rand_name(name='test-stack')
def _stack_create_minimal(self, from_url=False):

View File

@@ -14,11 +14,11 @@
from oslo_serialization import jsonutils
class FakeRaw(object):
class FakeRaw:
version = 110
class FakeHTTPResponse(object):
class FakeHTTPResponse:
version = 1.1

View File

@@ -18,7 +18,7 @@ import json
import requests
class FakeStdout(object):
class FakeStdout:
def __init__(self):
self.content = []
@@ -34,7 +34,7 @@ class FakeStdout(object):
class FakeResponse(requests.Response):
def __init__(self, headers={}, status_code=200, data=None, encoding=None):
super(FakeResponse, self).__init__()
super().__init__()
self.status_code = status_code

View File

@@ -51,7 +51,7 @@ class TestCommand(TestCase):
"""Test cliff command classes"""
def setUp(self):
super(TestCommand, self).setUp()
super().setUp()
# Build up a fake app
self.fake_stdout = fakes.FakeStdout()
self.app = mock.MagicMock()

View File

@@ -20,6 +20,6 @@ from heatclient.tests.unit.osc import utils
class TestOrchestrationv1(utils.TestCommand):
def setUp(self):
super(TestOrchestrationv1, self).setUp()
super().setUp()
self.app.client_manager.orchestration = mock.MagicMock()

View File

@@ -28,7 +28,7 @@ class TestBuildInfo(orchestration_fakes.TestOrchestrationv1):
}
def setUp(self):
super(TestBuildInfo, self).setUp()
super().setUp()
self.cmd = osc_build_info.BuildInfo(self.app, None)
self.mock_client = self.app.client_manager.orchestration
self.mock_client.build_info.build_info = mock.Mock(

View File

@@ -27,7 +27,7 @@ load_tests = testscenarios.load_tests_apply_scenarios
class TestEvent(fakes.TestOrchestrationv1):
def setUp(self):
super(TestEvent, self).setUp()
super().setUp()
self.mock_client = self.app.client_manager.orchestration
self.event_client = self.app.client_manager.orchestration.events
self.stack_client = self.app.client_manager.orchestration.stacks
@@ -56,7 +56,7 @@ class TestEventShow(TestEvent):
}
def setUp(self):
super(TestEventShow, self).setUp()
super().setUp()
self.cmd = event.ShowEvent(self.app, None)
def test_event_show(self):
@@ -108,7 +108,7 @@ class TestEventList(TestEvent):
'resource_status_reason', 'event_time', 'physical_resource_id',
'logical_resource_id']
class MockEvent(object):
class MockEvent:
data = {
'event_time': '2015-11-13T10:02:17',
@@ -129,7 +129,7 @@ class TestEventList(TestEvent):
raise AttributeError
def setUp(self):
super(TestEventList, self).setUp()
super().setUp()
self.cmd = event.ListEvent(self.app, None)
self.event = self.MockEvent()
self.event_client.list.return_value = [self.event]

View File

@@ -24,7 +24,7 @@ from heatclient.v1 import resources as v1_resources
class TestResource(orchestration_fakes.TestOrchestrationv1):
def setUp(self):
super(TestResource, self).setUp()
super().setUp()
self.resource_client = self.app.client_manager.orchestration.resources
@@ -49,7 +49,7 @@ class TestStackResourceShow(TestResource):
}
def setUp(self):
super(TestStackResourceShow, self).setUp()
super().setUp()
self.cmd = resource.ResourceShow(self.app, None)
self.resource_client.get.return_value = v1_resources.Resource(
None, self.response)
@@ -117,7 +117,7 @@ class TestStackResourceList(TestResource):
'CREATE_COMPLETE', '2016-02-01T20:20:53']
def setUp(self):
super(TestStackResourceList, self).setUp()
super().setUp()
self.cmd = resource.ResourceList(self.app, None)
self.resource_client.list.return_value = [
v1_resources.Resource(None, self.response)]
@@ -218,7 +218,7 @@ class TestStackResourceList(TestResource):
class TestResourceMetadata(TestResource):
def setUp(self):
super(TestResourceMetadata, self).setUp()
super().setUp()
self.cmd = resource.ResourceMetadata(self.app, None)
self.resource_client.metadata.return_value = {}
@@ -254,7 +254,7 @@ class TestResourceMetadata(TestResource):
class TestResourceSignal(TestResource):
def setUp(self):
super(TestResourceSignal, self).setUp()
super().setUp()
self.cmd = resource.ResourceSignal(self.app, None)
def test_resource_signal(self):
@@ -323,7 +323,7 @@ class TestResourceSignal(TestResource):
class TestResourceMarkUnhealthy(TestResource):
def setUp(self):
super(TestResourceMarkUnhealthy, self).setUp()
super().setUp()
self.cmd = resource.ResourceMarkUnhealthy(self.app, None)
self.resource_client.mark_unhealthy = mock.Mock()

View File

@@ -21,14 +21,14 @@ from heatclient.v1 import resource_types
class TestResourceType(orchestration_fakes.TestOrchestrationv1):
def setUp(self):
super(TestResourceType, self).setUp()
super().setUp()
self.mock_client = self.app.client_manager.orchestration
class TestResourceTypeShow(TestResourceType):
def setUp(self):
super(TestResourceTypeShow, self).setUp()
super().setUp()
self.cmd = resource_type.ResourceTypeShow(self.app, None)
self.mock_client.resource_types.get.return_value = {}
self.mock_client.resource_types.generate_template.return_value = {}
@@ -130,7 +130,7 @@ class TestTypeList(TestResourceType):
]
def setUp(self):
super(TestTypeList, self).setUp()
super().setUp()
self.cmd = resource_type.ResourceTypeList(self.app, None)
self.mock_client.resource_types.list.return_value = self.list_response

View File

@@ -49,7 +49,7 @@ class TestServiceList(orchestration_fakes.TestOrchestrationv1):
'Topic', 'Updated At', 'Status']
def setUp(self):
super(TestServiceList, self).setUp()
super().setUp()
self.cmd = osc_service.ListService(self.app, None)
self.mock_client = self.app.client_manager.orchestration
self.mock_client.services.list.return_value = self.response

View File

@@ -22,14 +22,14 @@ from heatclient.tests.unit.osc.v1 import fakes as orchestration_fakes
class TestStack(orchestration_fakes.TestOrchestrationv1):
def setUp(self):
super(TestStack, self).setUp()
super().setUp()
self.mock_client = self.app.client_manager.orchestration
self.stack_client = self.app.client_manager.orchestration.stacks
class TestListSnapshot(TestStack):
def setUp(self):
super(TestListSnapshot, self).setUp()
super().setUp()
self.cmd = snapshot.ListSnapshot(self.app, None)
self.stack_client.snapshot_list.return_value = {'snapshots': []}
@@ -54,7 +54,7 @@ class TestListSnapshot(TestStack):
class TestSnapshotShow(TestStack):
def setUp(self):
super(TestSnapshotShow, self).setUp()
super().setUp()
self.cmd = snapshot.ShowSnapshot(self.app, None)
def test_snapshot_show(self):
@@ -77,7 +77,7 @@ class TestSnapshotShow(TestStack):
class TestRestoreSnapshot(TestStack):
def setUp(self):
super(TestRestoreSnapshot, self).setUp()
super().setUp()
self.cmd = snapshot.RestoreSnapshot(self.app, None)
def test_snapshot_restore(self):
@@ -110,7 +110,7 @@ class TestSnapshotCreate(TestStack):
}
def setUp(self):
super(TestSnapshotCreate, self).setUp()
super().setUp()
self.cmd = snapshot.CreateSnapshot(self.app, None)
def test_snapshot_create(self):
@@ -141,7 +141,7 @@ class TestSnapshotCreate(TestStack):
class TestSnapshotDelete(TestStack):
def setUp(self):
super(TestSnapshotDelete, self).setUp()
super().setUp()
self.cmd = snapshot.DeleteSnapshot(self.app, None)
def test_snapshot_delete(self):

View File

@@ -24,14 +24,14 @@ from heatclient.v1 import software_configs
class TestConfig(orchestration_fakes.TestOrchestrationv1):
def setUp(self):
super(TestConfig, self).setUp()
super().setUp()
self.mock_client = self.app.client_manager.orchestration
class TestDeleteConfig(TestConfig):
def setUp(self):
super(TestDeleteConfig, self).setUp()
super().setUp()
self.cmd = software_config.DeleteConfig(self.app, None)
self.mock_delete = self.mock_client.software_configs.delete
@@ -68,7 +68,7 @@ class TestDeleteConfig(TestConfig):
class TestListConfig(TestConfig):
def setUp(self):
super(TestListConfig, self).setUp()
super().setUp()
self.cmd = software_config.ListConfig(self.app, None)
self.mock_client.software_configs.list.return_value = [
software_configs.SoftwareConfig(None, {})]
@@ -96,7 +96,7 @@ class TestListConfig(TestConfig):
class TestCreateConfig(TestConfig):
def setUp(self):
super(TestCreateConfig, self).setUp()
super().setUp()
self.cmd = software_config.CreateConfig(self.app, None)
self.mock_client.software_configs.create.return_value = \
software_configs.SoftwareConfig(None, {})
@@ -235,7 +235,7 @@ class TestConfigShow(TestConfig):
response = dict(zip(columns, data))
def setUp(self):
super(TestConfigShow, self).setUp()
super().setUp()
self.cmd = software_config.ShowConfig(self.app, None)
self.mock_client.software_configs.get.return_value = \
software_configs.SoftwareConfig(None, self.response)

View File

@@ -25,7 +25,7 @@ from heatclient.v1 import software_deployments
class TestDeployment(orchestration_fakes.TestOrchestrationv1):
def setUp(self):
super(TestDeployment, self).setUp()
super().setUp()
self.mock_client = self.app.client_manager.orchestration
self.config_client = self.mock_client.software_configs
self.sd_client = self.mock_client.software_deployments
@@ -108,7 +108,7 @@ class TestDeploymentCreate(TestDeployment):
}
def setUp(self):
super(TestDeploymentCreate, self).setUp()
super().setUp()
self.cmd = software_deployment.CreateDeployment(self.app, None)
self.config_client.create.return_value = \
software_configs.SoftwareConfig(None, self.config)
@@ -220,7 +220,7 @@ class TestDeploymentCreate(TestDeployment):
class TestDeploymentDelete(TestDeployment):
def setUp(self):
super(TestDeploymentDelete, self).setUp()
super().setUp()
self.cmd = software_deployment.DeleteDeployment(self.app, None)
def test_deployment_delete_success(self):
@@ -284,7 +284,7 @@ class TestDeploymentList(TestDeployment):
}
def setUp(self):
super(TestDeploymentList, self).setUp()
super().setUp()
self.cmd = software_deployment.ListDeployment(self.app, None)
self.sd_client.list = mock.MagicMock(return_value=[self.data])
@@ -332,7 +332,7 @@ class TestDeploymentShow(TestDeployment):
}}
def setUp(self):
super(TestDeploymentShow, self).setUp()
super().setUp()
self.cmd = software_deployment.ShowDeployment(self.app, None)
def test_deployment_show(self):
@@ -378,7 +378,7 @@ class TestDeploymentShow(TestDeployment):
class TestDeploymentMetadataShow(TestDeployment):
def setUp(self):
super(TestDeploymentMetadataShow, self).setUp()
super().setUp()
self.cmd = software_deployment.ShowMetadataDeployment(self.app, None)
self.sd_client.metadata.return_value = {}
@@ -406,7 +406,7 @@ class TestDeploymentOutputShow(TestDeployment):
}
def setUp(self):
super(TestDeploymentOutputShow, self).setUp()
super().setUp()
self.cmd = software_deployment.ShowOutputDeployment(self.app, None)
def test_deployment_output_show(self):

View File

@@ -34,7 +34,7 @@ load_tests = testscenarios.load_tests_apply_scenarios
class TestStack(orchestration_fakes.TestOrchestrationv1):
def setUp(self):
super(TestStack, self).setUp()
super().setUp()
self.mock_client = self.app.client_manager.orchestration
self.stack_client = self.app.client_manager.orchestration.stacks
self.projects_mock = self.app.client_manager.identity.projects
@@ -56,7 +56,7 @@ class TestStackCreate(TestStack):
}
def setUp(self):
super(TestStackCreate, self).setUp()
super().setUp()
self.cmd = stack.CreateStack(self.app, None)
self.stack_client.create.return_value = {'stack': {'id': '1234'}}
self.stack_client.get.return_value = {
@@ -205,7 +205,7 @@ class TestStackUpdate(TestStack):
}
def setUp(self):
super(TestStackUpdate, self).setUp()
super().setUp()
self.cmd = stack.UpdateStack(self.app, None)
self.stack_client.update.return_value = {'stack': {'id': '1234'}}
self.stack_client.preview_update.return_value = {
@@ -445,7 +445,7 @@ class TestStackShow(TestStack):
}
def setUp(self):
super(TestStackShow, self).setUp()
super().setUp()
self.cmd = stack.ShowStack(self.app, None)
self.stack_client.get.return_value = stacks.Stack(
None, self.get_response)
@@ -509,7 +509,7 @@ class TestStackList(TestStack):
data_with_project['project'] = 'test_project'
def setUp(self):
super(TestStackList, self).setUp()
super().setUp()
self.cmd = stack.ListStack(self.app, None)
self.stack_client.list.return_value = [stacks.Stack(None, self.data)]
utils.get_dict_properties = mock.MagicMock(return_value='')
@@ -664,7 +664,7 @@ class TestStackList(TestStack):
class TestStackDelete(TestStack):
def setUp(self):
super(TestStackDelete, self).setUp()
super().setUp()
self.cmd = stack.DeleteStack(self.app, None)
self.stack_client.get.side_effect = heat_exc.HTTPNotFound
@@ -764,9 +764,9 @@ class TestStackAdopt(TestStack):
adopt_file = 'heatclient/tests/test_templates/adopt.json'
adopt_with_files = ('heatclient/tests/test_templates/adopt_with_file.json')
with open(adopt_file, 'r') as f:
with open(adopt_file) as f:
adopt_data = f.read()
with open(adopt_with_files, 'r') as f:
with open(adopt_with_files) as f:
adopt_with_files_data = f.read()
defaults = {
@@ -792,7 +792,7 @@ class TestStackAdopt(TestStack):
}
def setUp(self):
super(TestStackAdopt, self).setUp()
super().setUp()
self.cmd = stack.AdoptStack(self.app, None)
self.stack_client.create.return_value = {'stack': {'id': '1234'}}
@@ -866,7 +866,7 @@ class TestStackExport(TestStack):
response = dict(zip(columns, data))
def setUp(self):
super(TestStackExport, self).setUp()
super().setUp()
self.cmd = stack.ExportStack(self.app, None)
self.stack_client.export.return_value = self.response
@@ -902,7 +902,7 @@ class TestStackAbandon(TestStack):
response = dict(zip(columns, data))
def setUp(self):
super(TestStackAbandon, self).setUp()
super().setUp()
self.cmd = stack.AbandonStack(self.app, None)
self.stack_client.abandon.return_value = self.response
@@ -959,7 +959,7 @@ class TestStackOutputShow(TestStack):
}
def setUp(self):
super(TestStackOutputShow, self).setUp()
super().setUp()
self.cmd = stack.OutputShowStack(self.app, None)
self.stack_client.get.return_value = stacks.Stack(None, self.response)
@@ -1056,7 +1056,7 @@ class TestStackOutputList(TestStack):
}
def setUp(self):
super(TestStackOutputList, self).setUp()
super().setUp()
self.cmd = stack.OutputListStack(self.app, None)
self.stack_client.get = mock.MagicMock(
return_value=stacks.Stack(None, self.response))
@@ -1098,7 +1098,7 @@ class TestStackTemplateShow(TestStack):
'parameters', 'resources', 'outputs']
def setUp(self):
super(TestStackTemplateShow, self).setUp()
super().setUp()
self.cmd = stack.TemplateShowStack(self.app, None)
def test_stack_template_show_full_template(self):
@@ -1133,7 +1133,7 @@ class TestStackTemplateShow(TestStack):
self.assertRaises(exc.CommandError, self.cmd.take_action, parsed_args)
class _TestStackCheckBase(object):
class _TestStackCheckBase:
stack = stacks.Stack(None, {
"id": '1234',
@@ -1219,7 +1219,7 @@ class _TestStackCheckBase(object):
class TestStackSuspend(_TestStackCheckBase, TestStack):
def setUp(self):
super(TestStackSuspend, self).setUp()
super().setUp()
self._setUp(
stack.SuspendStack(self.app, None),
self.mock_client.actions.suspend,
@@ -1245,7 +1245,7 @@ class TestStackSuspend(_TestStackCheckBase, TestStack):
class TestStackResume(_TestStackCheckBase, TestStack):
def setUp(self):
super(TestStackResume, self).setUp()
super().setUp()
self._setUp(
stack.ResumeStack(self.app, None),
self.mock_client.actions.resume,
@@ -1279,7 +1279,7 @@ class TestStackCancel(_TestStackCheckBase, TestStack):
})
def setUp(self):
super(TestStackCancel, self).setUp()
super().setUp()
self._setUp(
stack.CancelStack(self.app, None),
self.mock_client.actions.cancel_update,
@@ -1343,7 +1343,7 @@ class TestStackCancel(_TestStackCheckBase, TestStack):
class TestStackCheck(_TestStackCheckBase, TestStack):
def setUp(self):
super(TestStackCheck, self).setUp()
super().setUp()
self._setUp(
stack.CheckStack(self.app, None),
self.mock_client.actions.check,
@@ -1418,7 +1418,7 @@ class TestStackHookPoll(TestStack):
)
def setUp(self):
super(TestStackHookPoll, self).setUp()
super().setUp()
self.cmd = stack.StackHookPoll(self.app, None)
self.mock_client.stacks.get.return_value = self.stack
self.mock_client.events.list.return_value = [self.event0, self.event1]
@@ -1463,7 +1463,7 @@ class TestStackHookClear(TestStack):
})
def setUp(self):
super(TestStackHookClear, self).setUp()
super().setUp()
self.cmd = stack.StackHookClear(self.app, None)
self.mock_client.stacks.get.return_value = self.stack
self.mock_client.resources.list.return_value = [self.resource]
@@ -1514,7 +1514,7 @@ class TestEnvironmentStackShow(TestStack):
}
def setUp(self):
super(TestEnvironmentStackShow, self).setUp()
super().setUp()
self.cmd = stack.EnvironmentShowStack(self.app, None)
def test_stack_environment_show(self):

View File

@@ -24,7 +24,7 @@ from heatclient.tests.unit.osc.v1 import fakes as orchestration_fakes
class ListStackFailuresTest(orchestration_fakes.TestOrchestrationv1):
def setUp(self):
super(ListStackFailuresTest, self).setUp()
super().setUp()
self.cmd = stack_failures.ListStackFailures(self.app, None)
self.cmd.heat_client = self.app.client_manager.orchestration
self.stack_client = self.app.client_manager.orchestration.stacks

View File

@@ -22,7 +22,7 @@ from heatclient.v1 import template_versions
class TestTemplate(fakes.TestOrchestrationv1):
def setUp(self):
super(TestTemplate, self).setUp()
super().setUp()
self.mock_client = self.app.client_manager.orchestration
self.template_versions = self.mock_client.template_versions
@@ -72,7 +72,7 @@ class TestTemplateFunctionList(TestTemplate):
]
def setUp(self):
super(TestTemplateFunctionList, self).setUp()
super().setUp()
self.tv1 = template_versions.TemplateVersion(None, self.defaults[0])
self.tv2 = template_versions.TemplateVersion(None, self.defaults[1])
self.tv_with_cf = template_versions.TemplateVersion(
@@ -124,7 +124,7 @@ class TestTemplateValidate(TestTemplate):
}
def setUp(self):
super(TestTemplateValidate, self).setUp()
super().setUp()
self.stack_client = self.app.client_manager.orchestration.stacks
self.stack_client.validate = mock.MagicMock(return_value={})
self.cmd = template.Validate(self.app, None)

View File

@@ -20,11 +20,11 @@ from heatclient.v1 import actions
class ActionManagerTest(testtools.TestCase):
def setUp(self):
super(ActionManagerTest, self).setUp()
super().setUp()
def _base_test(self, expect_args, expect_kwargs):
class FakeAPI(object):
class FakeAPI:
"""Fake API and ensure request url is correct."""
def json_request(self, *args, **kwargs):

View File

@@ -24,7 +24,7 @@ from heatclient.v1 import build_info
class BuildInfoManagerTest(testtools.TestCase):
def setUp(self):
super(BuildInfoManagerTest, self).setUp()
super().setUp()
self.client = mock.Mock()
self.client.get.return_value = fakes.FakeHTTPResponse(
200,

View File

@@ -1,4 +1,3 @@
# -*- coding:utf-8 -*-
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
@@ -557,12 +556,12 @@ class HttpClientTest(testtools.TestCase):
client = http.HTTPClient('http://somewhere')
client.log_curl_request("GET", '', kwargs=kwargs)
mock_log.assert_called_once_with(
u"curl -g -i -X GET -H 'Key: foo㊎' http://somewhere")
"curl -g -i -X GET -H 'Key: foo㊎' http://somewhere")
class SessionClientTest(testtools.TestCase):
def setUp(self):
super(SessionClientTest, self).setUp()
super().setUp()
self.request = mock.patch.object(adapter.LegacyJsonAdapter,
'request').start()

View File

@@ -19,7 +19,7 @@ from heatclient.v1 import events as hc_ev
from heatclient.v1 import resources as hc_res
class FakeWebSocket(object):
class FakeWebSocket:
def __init__(self, events):
self.events = events
@@ -64,10 +64,11 @@ class ShellTestEventUtils(testtools.TestCase):
def _mock_stack_event(event_id, stack_name,
stack_status='CREATE_COMPLETE'):
stack_id = 'abcdef'
ev_info = {"links": [{"href": "http://heat/foo", "rel": "self"},
{"href": "http://heat/stacks/%s/%s" % (stack_name,
stack_id),
"rel": "stack"}],
ev_info = {"links": [
{"href": "http://heat/foo", "rel": "self"},
{"href": "http://heat/stacks/{}/{}".format(stack_name,
stack_id),
"rel": "stack"}],
"logical_resource_id": stack_name,
"physical_resource_id": stack_id,
"resource_name": stack_name,

View File

@@ -106,7 +106,7 @@ class EventManagerTest(testtools.TestCase):
'resource_name': 'testresource',
'event_id': '1'}
class FakeAPI(object):
class FakeAPI:
"""Fake API and ensure request url is correct."""
def json_request(self, *args, **kwargs):
@@ -133,7 +133,7 @@ class EventManagerTest(testtools.TestCase):
'resource_name': '\u5de5\u4f5c',
'event_id': '1'}
class FakeAPI(object):
class FakeAPI:
"""Fake API and ensure request url is correct."""
def json_request(self, *args, **kwargs):

View File

@@ -84,7 +84,7 @@ OS::Heat::RandomString" ];
'''
def setUp(self):
super(TestStackResourceListDotFormat, self).setUp()
super().setUp()
self.resource_client = self.app.client_manager.orchestration.resources
self.cmd = resource.ResourceList(self.app, None)
with open(self.response_path) as f:

View File

@@ -23,7 +23,7 @@ class ResourceTypeManagerTest(testtools.TestCase):
def _base_test(self, expect, key):
class FakeAPI(object):
class FakeAPI:
"""Fake API and ensure request url is correct."""
def get(self, *args, **kwargs):
@@ -60,11 +60,11 @@ class ResourceTypeManagerTest(testtools.TestCase):
key = 'resource_types'
expect = ('GET', '/resource_types')
class FakeResponse(object):
class FakeResponse:
def json(self):
return {key: {}}
class FakeClient(object):
class FakeClient:
def get(self, *args, **kwargs):
assert ('GET', args[0]) == expect
return FakeResponse()

View File

@@ -21,7 +21,7 @@ from heatclient.common import utils
from heatclient.v1 import resources
class FakeAPI(object):
class FakeAPI:
"""Fake API and ensure request url is correct."""
def __init__(self, expect, key):
@@ -105,11 +105,11 @@ class ResourceManagerTest(testtools.TestCase):
def _test_list(self, fields, expect):
key = 'resources'
class FakeResponse(object):
class FakeResponse:
def json(self):
return {key: {}}
class FakeClient(object):
class FakeClient:
def get(self, *args, **kwargs):
assert args[0] == expect
return FakeResponse()
@@ -161,7 +161,7 @@ class ResourceManagerTest(testtools.TestCase):
expect = ('GET', '/resource_types/testresource/template')
key = None
class FakeAPI(object):
class FakeAPI:
"""Fake API and ensure request url is correct."""
def get(self, *args, **kwargs):

View File

@@ -21,14 +21,14 @@ from heatclient.v1 import services
class ManageServiceTest(testtools.TestCase):
def setUp(self):
super(ManageServiceTest, self).setUp()
super().setUp()
def test_service_list(self):
class FakeResponse(object):
class FakeResponse:
def json(self):
return {'services': []}
class FakeClient(object):
class FakeClient:
def get(self, *args, **kwargs):
assert args[0] == ('/services')
return FakeResponse()
@@ -37,7 +37,7 @@ class ManageServiceTest(testtools.TestCase):
self.assertEqual([], manager.list())
def test_service_list_403(self):
class FakeClient403(object):
class FakeClient403:
def get(self, *args, **kwargs):
assert args[0] == ('/services')
@@ -48,7 +48,7 @@ class ManageServiceTest(testtools.TestCase):
manager.list)
def test_service_list_503(self):
class FakeClient503(object):
class FakeClient503:
def get(self, *args, **kwargs):
assert args[0] == ('/services')
raise exc.HTTPServiceUnavailable()

View File

@@ -69,7 +69,7 @@ class TestCase(testtools.TestCase):
tokenid = uuid.uuid4().hex
def setUp(self):
super(TestCase, self).setUp()
super().setUp()
self.requests = self.useFixture(rm_fixture.Fixture())
# httpretty doesn't work as expected if http proxy environmen
# variable is set.
@@ -192,7 +192,7 @@ class TestCase(testtools.TestCase):
"logical_resource_id": "myDeployment",
"physical_resource_id": "bce15ec4-8919-4a02-8a90-680960fb3731",
"resource_name": rn,
"resource_status": "%s_%s" % (action, final_state),
"resource_status": "{}_{}".format(action, final_state),
"resource_status_reason": "state changed"}]}
if resource_name is None:
@@ -227,7 +227,7 @@ class TestCase(testtools.TestCase):
"logical_resource_id": "aResource",
"physical_resource_id": 'foo3',
"resource_name": stack_name,
"resource_status": "%s_%s" % (action, final_state),
"resource_status": "{}_{}".format(action, final_state),
"resource_status_reason": "state changed"})
return resp_dict
@@ -320,7 +320,7 @@ class ShellParamValidationTest(TestCase):
if self.with_tmpl:
template_file = os.path.join(TEST_VAR_DIR, 'minimal.template')
cmd = '%s --template-file=%s ' % (self.command, template_file)
cmd = '{} --template-file={} '.format(self.command, template_file)
self.shell_error(cmd, self.err, exception=exc.CommandError)
@@ -379,7 +379,7 @@ class ShellBase(TestCase):
(JSON, RAW, SESSION) = ('json', 'raw', 'session')
def setUp(self):
super(ShellBase, self).setUp()
super().setUp()
self._calls = {self.JSON: [], self.RAW: [], self.SESSION: []}
self._results = {self.JSON: [], self.RAW: [], self.SESSION: []}
self.useFixture(fixtures.MockPatchObject(
@@ -406,7 +406,7 @@ class ShellBase(TestCase):
http.HTTPClient.json_request.assert_has_calls(self._calls[self.JSON])
http.HTTPClient.raw_request.assert_has_calls(self._calls[self.RAW])
http.SessionClient.request.assert_has_calls(self._calls[self.SESSION])
super(ShellBase, self).tearDown()
super().tearDown()
def shell(self, argstr):
orig = sys.stdout
@@ -509,7 +509,7 @@ class ShellTestNoMoxBase(TestCase):
# NOTE(dhu): This class is reserved for no Mox usage. Instead,
# use requests_mock to expose errors from json_request.
def setUp(self):
super(ShellTestNoMoxBase, self).setUp()
super().setUp()
self._set_fake_env()
def _set_fake_env(self):
@@ -614,7 +614,7 @@ class ShellTestNoMoxV3(ShellTestNoMox):
class ShellTestEndpointType(TestCase):
def setUp(self):
super(ShellTestEndpointType, self).setUp()
super().setUp()
self.useFixture(fixtures.MockPatchObject(http,
'_construct_http_client'))
self.useFixture(fixtures.MockPatchObject(heatclient.v1.shell,
@@ -687,7 +687,7 @@ class ShellTestEndpointType(TestCase):
class ShellTestCommon(ShellBase):
def setUp(self):
super(ShellTestCommon, self).setUp()
super().setUp()
self.client = http.SessionClient
self.set_fake_env(FAKE_ENV_KEYSTONE_V2)
@@ -754,7 +754,7 @@ class ShellTestCommon(ShellBase):
class ShellTestUserPass(ShellBase):
def setUp(self):
super(ShellTestUserPass, self).setUp()
super().setUp()
if self.client is None:
self.client = http.SessionClient
self._set_fake_env()
@@ -932,7 +932,7 @@ class ShellTestUserPass(ShellBase):
"description": "test output 2",
},
{
"output_value": u"test\u2665",
"output_value": "test\u2665",
"output_key": "output_uni",
"description": "test output unicode",
},
@@ -983,7 +983,7 @@ class ShellTestUserPass(ShellBase):
def test_template_show_cfn_unicode(self):
self.register_keystone_auth_fixture()
resp_dict = {"AWSTemplateFormatVersion": "2010-09-09",
"Description": u"test\u2665",
"Description": "test\u2665",
"Outputs": {},
"Resources": {},
"Parameters": {}}
@@ -2485,7 +2485,7 @@ class ShellTestUserPass(ShellBase):
class ShellTestActions(ShellBase):
def setUp(self):
super(ShellTestActions, self).setUp()
super().setUp()
self.set_fake_env(FAKE_ENV_KEYSTONE_V2)
def test_stack_cancel_update(self):
@@ -2576,7 +2576,7 @@ class ShellTestActions(ShellBase):
class ShellTestEvents(ShellBase):
def setUp(self):
super(ShellTestEvents, self).setUp()
super().setUp()
self.set_fake_env(FAKE_ENV_KEYSTONE_V2)
scenarios = [
@@ -2597,13 +2597,13 @@ class ShellTestEvents(ShellBase):
stack_id = 'teststack/1'
resource_name = 'testresource/1'
self.mock_request_get(
'/stacks/%s/resources/%s/events?sort_dir=asc' % (
'/stacks/{}/resources/{}/events?sort_dir=asc'.format(
parse.quote(stack_id),
parse.quote(encodeutils.safe_encode(
resource_name))),
resp_dict)
event_list_text = self.shell('event-list {0} --resource {1}'.format(
event_list_text = self.shell('event-list {} --resource {}'.format(
stack_id, resource_name))
required = [
@@ -2636,7 +2636,7 @@ class ShellTestEvents(ShellBase):
self.mock_request_get('/stacks/%s/events?sort_dir=asc' % stack_id,
resp_dict)
event_list_text = self.shell('event-list {0} --format log'.format(
event_list_text = self.shell('event-list {} --format log'.format(
stack_id))
expected = ('2013-12-05 14:14:31 [aResource]: '
@@ -2678,7 +2678,7 @@ class ShellTestEvents(ShellBase):
),
resp_dict)
event_list_text = self.shell('event-show {0} {1} {2}'.format(
event_list_text = self.shell('event-show {} {} {}'.format(
stack_id, resource_name,
self.event_id_one))
@@ -2711,7 +2711,7 @@ class ShellTestEvents(ShellBase):
class ShellTestEventsNested(ShellBase):
def setUp(self):
super(ShellTestEventsNested, self).setUp()
super().setUp()
self.set_fake_env(FAKE_ENV_KEYSTONE_V2)
def test_shell_nested_depth_invalid_xor(self):
@@ -2721,7 +2721,7 @@ class ShellTestEventsNested(ShellBase):
error = self.assertRaises(
exc.CommandError, self.shell,
'event-list {0} --resource {1} --nested-depth 5'.format(
'event-list {} --resource {} --nested-depth 5'.format(
stack_id, resource_name))
self.assertIn('--nested-depth cannot be specified with --resource',
str(error))
@@ -2731,7 +2731,7 @@ class ShellTestEventsNested(ShellBase):
stack_id = 'teststack/1'
error = self.assertRaises(
exc.CommandError, self.shell,
'event-list {0} --nested-depth Z'.format(stack_id))
'event-list {} --nested-depth Z'.format(stack_id))
self.assertIn('--nested-depth invalid value Z', str(error))
def test_shell_nested_depth_zero(self):
@@ -2946,7 +2946,7 @@ class ShellTestEventsNested(ShellBase):
class ShellTestHookFunctions(ShellBase):
def setUp(self):
super(ShellTestHookFunctions, self).setUp()
super().setUp()
self.set_fake_env(FAKE_ENV_KEYSTONE_V2)
def _stub_stack_response(self, stack_id, action='CREATE',
@@ -2955,7 +2955,7 @@ class ShellTestHookFunctions(ShellBase):
resp_dict = {"stack": {
"id": stack_id.split("/")[1],
"stack_name": stack_id.split("/")[0],
"stack_status": '%s_%s' % (action, status),
"stack_status": '{}_{}'.format(action, status),
"creation_time": "2014-01-06T16:14:00Z",
}}
self.mock_request_get('/stacks/teststack/1', resp_dict)
@@ -3091,7 +3091,7 @@ class ShellTestHookFunctions(ShellBase):
class ShellTestResources(ShellBase):
def setUp(self):
super(ShellTestResources, self).setUp()
super().setUp()
self.set_fake_env(FAKE_ENV_KEYSTONE_V2)
def _test_resource_list(self, with_resource_name):
@@ -3113,7 +3113,7 @@ class ShellTestResources(ShellBase):
stack_id = 'teststack/1'
self.mock_request_get('/stacks/%s/resources' % stack_id, resp_dict)
resource_list_text = self.shell('resource-list {0}'.format(stack_id))
resource_list_text = self.shell('resource-list {}'.format(stack_id))
required = [
'physical_resource_id',
@@ -3147,7 +3147,7 @@ class ShellTestResources(ShellBase):
stack_id = 'teststack/1'
self.mock_request_get('/stacks/%s/resources' % stack_id, resp_dict)
resource_list_text = self.shell('resource-list {0}'.format(stack_id))
resource_list_text = self.shell('resource-list {}'.format(stack_id))
self.assertEqual('''\
+---------------+----------------------+---------------+-----------------+\
@@ -3174,10 +3174,10 @@ class ShellTestResources(ShellBase):
}],
}]}
stack_id = 'teststack/1'
self.mock_request_get('/stacks/%s/resources?%s' % (
self.mock_request_get('/stacks/{}/resources?{}'.format(
stack_id, query_args), resp_dict)
shell_cmd = 'resource-list %s %s' % (stack_id, cmd_args)
shell_cmd = 'resource-list {} {}'.format(stack_id, cmd_args)
resource_list_text = self.shell(shell_cmd)
@@ -3234,7 +3234,7 @@ class ShellTestResources(ShellBase):
), resp_dict)
resource_show_text = self.shell(
'resource-show {0} {1} --with-attr attr_a '
'resource-show {} {} --with-attr attr_a '
'--with-attr attr_b'.format(
stack_id, resource_name))
@@ -3297,7 +3297,7 @@ class ShellTestResources(ShellBase):
)
text = self.shell(
'resource-signal {0} {1}'.format(stack_id, resource_name))
'resource-signal {} {}'.format(stack_id, resource_name))
self.assertEqual("", text)
def test_resource_signal_no_json(self):
@@ -3307,7 +3307,7 @@ class ShellTestResources(ShellBase):
error = self.assertRaises(
exc.CommandError, self.shell,
'resource-signal {0} {1} -D [2'.format(
'resource-signal {} {} -D [2'.format(
stack_id, resource_name))
self.assertIn('Data should be in JSON format', str(error))
@@ -3318,7 +3318,7 @@ class ShellTestResources(ShellBase):
error = self.assertRaises(
exc.CommandError, self.shell,
'resource-signal {0} {1} -D "message"'.format(
'resource-signal {} {} -D "message"'.format(
stack_id, resource_name))
self.assertEqual('Data should be a JSON dict', str(error))
@@ -3329,7 +3329,7 @@ class ShellTestResources(ShellBase):
error = self.assertRaises(
exc.CommandError, self.shell,
'resource-signal {0} {1} -D "message" -f foo'.format(
'resource-signal {} {} -D "message" -f foo'.format(
stack_id, resource_name))
self.assertEqual('Can only specify one of data and data-file',
str(error))
@@ -3353,7 +3353,7 @@ class ShellTestResources(ShellBase):
data_file.write(b'{"message":"Content"}')
data_file.flush()
text = self.shell(
'resource-signal {0} {1} -f {2}'.format(
'resource-signal {} {} -f {}'.format(
stack_id, resource_name, data_file.name))
self.assertEqual("", text)
@@ -3374,7 +3374,7 @@ class ShellTestResources(ShellBase):
'resource_status_reason': 'Any'})
text = self.shell(
'resource-mark-unhealthy {0} {1} Any'.format(
'resource-mark-unhealthy {} {} Any'.format(
stack_id, resource_name))
self.assertEqual("", text)
@@ -3395,7 +3395,7 @@ class ShellTestResources(ShellBase):
'resource_status_reason': 'Any'})
text = self.shell(
'resource-mark-unhealthy --reset {0} {1} Any'.format(
'resource-mark-unhealthy --reset {} {} Any'.format(
stack_id, resource_name))
self.assertEqual("", text)
@@ -3416,14 +3416,14 @@ class ShellTestResources(ShellBase):
'resource_status_reason': ''})
text = self.shell(
'resource-mark-unhealthy {0} {1}'.format(
'resource-mark-unhealthy {} {}'.format(
stack_id, resource_name))
self.assertEqual("", text)
class ShellTestResourceTypes(ShellBase):
def setUp(self):
super(ShellTestResourceTypes, self).setUp()
super().setUp()
self.set_fake_env(FAKE_ENV_KEYSTONE_V3)
def test_resource_type_template_yaml(self):
@@ -3476,7 +3476,7 @@ class ShellTestResourceTypes(ShellBase):
class ShellTestConfig(ShellBase):
def setUp(self):
super(ShellTestConfig, self).setUp()
super().setUp()
self._set_fake_env()
def _set_fake_env(self):
@@ -3621,7 +3621,7 @@ class ShellTestConfig(ShellBase):
class ShellTestDeployment(ShellBase):
def setUp(self):
super(ShellTestDeployment, self).setUp()
super().setUp()
self.client = http.SessionClient
self._set_fake_env()
@@ -3928,7 +3928,7 @@ class ShellTestDeployment(ShellBase):
class ShellTestBuildInfo(ShellBase):
def setUp(self):
super(ShellTestBuildInfo, self).setUp()
super().setUp()
self._set_fake_env()
def _set_fake_env(self):
@@ -3963,7 +3963,7 @@ class ShellTestToken(ShellTestUserPass):
# Rerun all ShellTestUserPass test with token auth
def setUp(self):
self.token = 'a_token'
super(ShellTestToken, self).setUp()
super().setUp()
def _set_fake_env(self):
fake_env = {
@@ -3986,10 +3986,10 @@ class ShellTestUserPassKeystoneV3(ShellTestUserPass):
self.set_fake_env(FAKE_ENV_KEYSTONE_V3)
class StandaloneTokenMixin(object):
class StandaloneTokenMixin:
def setUp(self):
self.token = 'a_token'
super(StandaloneTokenMixin, self).setUp()
super().setUp()
self.client = http.HTTPClient
def _set_fake_env(self):
@@ -4067,7 +4067,7 @@ class ShellTestStandaloneTokenArgs(StandaloneTokenMixin, ShellTestNoMoxBase):
class MockShellBase(TestCase):
def setUp(self):
super(MockShellBase, self).setUp()
super().setUp()
self.jreq_mock = self.patch(
'heatclient.common.http.HTTPClient.json_request')
self.session_jreq_mock = self.patch(
@@ -4100,7 +4100,7 @@ class MockShellBase(TestCase):
class MockShellTestUserPass(MockShellBase):
def setUp(self):
super(MockShellTestUserPass, self).setUp()
super().setUp()
self._set_fake_env()
def _set_fake_env(self):
@@ -4174,7 +4174,7 @@ class MockShellTestToken(MockShellTestUserPass):
# Rerun all ShellTestUserPass test with token auth
def setUp(self):
self.token = 'a_token'
super(MockShellTestToken, self).setUp()
super().setUp()
def _set_fake_env(self):
fake_env = {
@@ -4203,7 +4203,7 @@ class MockShellTestStandaloneToken(MockShellTestUserPass):
# specify --os-no-client-auth, a token and Heat endpoint
def setUp(self):
self.token = 'a_token'
super(MockShellTestStandaloneToken, self).setUp()
super().setUp()
def _set_fake_env(self):
fake_env = {
@@ -4224,7 +4224,7 @@ class MockShellTestStandaloneToken(MockShellTestUserPass):
class ShellTestManageService(ShellBase):
def setUp(self):
super(ShellTestManageService, self).setUp()
super().setUp()
self.set_fake_env(FAKE_ENV_KEYSTONE_V2)
def _set_fake_env(self):

View File

@@ -21,7 +21,7 @@ from heatclient.v1 import software_configs
class SoftwareConfigTest(testtools.TestCase):
def setUp(self):
super(SoftwareConfigTest, self).setUp()
super().setUp()
config_id = 'bca6871d-86c0-4aff-b792-58a1f6947b57'
self.config = software_configs.SoftwareConfig(mock.MagicMock(),
info={'id': config_id})
@@ -45,7 +45,7 @@ class SoftwareConfigTest(testtools.TestCase):
class SoftwareConfigManagerTest(testtools.TestCase):
def setUp(self):
super(SoftwareConfigManagerTest, self).setUp()
super().setUp()
self.manager = software_configs.SoftwareConfigManager(mock.MagicMock())
def test_list(self):

View File

@@ -21,7 +21,7 @@ from heatclient.v1 import software_deployments
class SoftwareDeploymentTest(testtools.TestCase):
def setUp(self):
super(SoftwareDeploymentTest, self).setUp()
super().setUp()
deployment_id = 'bca6871d-86c0-4aff-b792-58a1f6947b57'
self.deployment = software_deployments.SoftwareDeployment(
mock.MagicMock(), info={'id': deployment_id})
@@ -48,7 +48,7 @@ class SoftwareDeploymentTest(testtools.TestCase):
class SoftwareDeploymentManagerTest(testtools.TestCase):
def setUp(self):
super(SoftwareDeploymentManagerTest, self).setUp()
super().setUp()
self.manager = software_deployments.SoftwareDeploymentManager(
mock.MagicMock())

View File

@@ -26,7 +26,7 @@ def mock_stack(manager, stack_name, stack_id):
"id": stack_id,
"stack_name": stack_name,
"links": [{
"href": "http://192.0.2.1:8004/v1/1234/stacks/%s/%s" % (
"href": "http://192.0.2.1:8004/v1/1234/stacks/{}/{}".format(
stack_name, stack_id),
"rel": "self"}],
"description": "No description",
@@ -54,7 +54,7 @@ class StackStatusActionTest(testtools.TestCase):
])
def test_status_action(self):
stack_status = '%s_%s' % (self.action, self.status)
stack_status = '{}_{}'.format(self.action, self.status)
stack = mock_stack(None, 'stack_1', 'abcd1234')
stack.stack_status = stack_status
self.assertEqual(self.action, stack.action)
@@ -346,7 +346,7 @@ class StackManagerPaginationTest(testtools.TestCase):
class StackManagerValidateTest(testtools.TestCase):
def setUp(self):
super(StackManagerValidateTest, self).setUp()
super().setUp()
self.mock_response = mock.MagicMock()
self.mock_response.json.return_value = {'result': 'fake_response'}

View File

@@ -716,7 +716,7 @@ class TestGetTemplateContents(testtools.TestCase):
def check_non_utf8_content(self, filename, content):
base_url = 'file:///tmp'
url = '%s/%s' % (base_url, filename)
url = '{}/{}'.format(base_url, filename)
template = {'resources':
{'one_init':
{'type': 'OS::Heat::CloudConfig',

View File

@@ -19,17 +19,17 @@ from heatclient.v1 import template_versions
class TemplateVersionManagerTest(testtools.TestCase):
def setUp(self):
super(TemplateVersionManagerTest, self).setUp()
super().setUp()
def test_list_versions(self):
expect = ('GET', '/template_versions')
class FakeResponse(object):
class FakeResponse:
def json(self):
return {'template_versions': [{'version': '2013-05-23',
'type': 'hot'}]}
class FakeClient(object):
class FakeClient:
def get(self, *args, **kwargs):
assert ('GET', args[0]) == expect
return FakeResponse()
@@ -43,11 +43,11 @@ class TemplateVersionManagerTest(testtools.TestCase):
expect = ('GET', '/template_versions/heat_template_version.2015-04-30'
'/functions')
class FakeResponse(object):
class FakeResponse:
def json(self):
return {'template_functions': [{'function': 'get_attr'}]}
class FakeClient(object):
class FakeClient:
def get(self, *args, **kwargs):
assert ('GET', args[0]) == expect
return FakeResponse()

View File

@@ -146,7 +146,7 @@ class ShellTest(testtools.TestCase):
self.assertEqual('{\n "foo": "bar"\n}',
utils.json_formatter({"foo": "bar"}))
self.assertEqual('{\n "Uni": "test\u2665"\n}',
utils.json_formatter({"Uni": u"test\u2665"}))
utils.json_formatter({"Uni": "test\u2665"}))
def test_yaml_formatter(self):
self.assertEqual('null\n...\n', utils.yaml_formatter(None))
@@ -162,8 +162,8 @@ class ShellTest(testtools.TestCase):
self.assertEqual(
'one two three four five six seven eight nine ten eleven\ntwelve',
utils.text_wrap_formatter(
('one two three four five six seven '
'eight nine ten eleven twelve')))
'one two three four five six seven '
'eight nine ten eleven twelve'))
def test_newline_list_formatter(self):
self.assertEqual('', utils.newline_list_formatter(None))
@@ -380,7 +380,7 @@ class ShellTestParameterFiles(testtools.TestCase):
class TestURLFunctions(testtools.TestCase):
def setUp(self):
super(TestURLFunctions, self).setUp()
super().setUp()
self.m = mock.MagicMock()
self.addCleanup(self.m.UnsetStubs)

View File

@@ -21,7 +21,7 @@ import heatclient.v1.shell as shell
class TestHooks(testtools.TestCase):
def setUp(self):
super(TestHooks, self).setUp()
super().setUp()
self.client = mock.Mock()
nested_stack = mock.Mock()
self.client.resources.get = mock.Mock(name='thingy',

View File

@@ -26,7 +26,7 @@ from heatclient.v1 import stacks
from heatclient.v1 import template_versions
class Client(object):
class Client:
"""Client for the Heat v1 API.
:param string endpoint: A user-supplied endpoint URL for the heat

View File

@@ -61,7 +61,7 @@ class EventManager(stacks.StackChildManager):
url = '/stacks/%s/events' % stack_id
else:
stack_id = self._resolve_stack_id(stack_id)
url = '/stacks/%s/resources/%s/events' % (
url = '/stacks/{}/resources/{}/events'.format(
parse.quote(stack_id),
parse.quote(encodeutils.safe_encode(resource_name)))
if params:
@@ -79,7 +79,7 @@ class EventManager(stacks.StackChildManager):
:param event_id: ID of event to get the details for
"""
stack_id = self._resolve_stack_id(stack_id)
url_str = '/stacks/%s/resources/%s/events/%s' % (
url_str = '/stacks/{}/resources/{}/events/{}'.format(
parse.quote(stack_id),
parse.quote(encodeutils.safe_encode(resource_name)),
parse.quote(event_id, ''))

View File

@@ -65,7 +65,7 @@ class ResourceTypeManager(base.BaseManager):
:param resource_type: name of the resource type to get the details for
:param with_description: return result with description or not
"""
url_str = '/%s/%s' % (
url_str = '/{}/{}'.format(
self.KEY,
parse.quote(encodeutils.safe_encode(resource_type)))
resp = self.client.get(url_str,
@@ -74,7 +74,7 @@ class ResourceTypeManager(base.BaseManager):
return body
def generate_template(self, resource_type, template_type='cfn'):
url_str = '/%s/%s/template' % (
url_str = '/{}/{}/template'.format(
self.KEY,
parse.quote(encodeutils.safe_encode(resource_type)))
if template_type:

View File

@@ -77,7 +77,7 @@ class ResourceManager(stacks.StackChildManager):
:param with_attr: Attributes to show
"""
stack_id = self._resolve_stack_id(stack_id)
url_str = '/stacks/%s/resources/%s' % (
url_str = '/stacks/{}/resources/{}'.format(
parse.quote(stack_id),
parse.quote(encodeutils.safe_encode(resource_name)))
if with_attr:
@@ -95,7 +95,7 @@ class ResourceManager(stacks.StackChildManager):
:param resource_name: ID of resource to get metadata for
"""
stack_id = self._resolve_stack_id(stack_id)
url_str = '/stacks/%s/resources/%s/metadata' % (
url_str = '/stacks/{}/resources/{}/metadata'.format(
parse.quote(stack_id),
parse.quote(encodeutils.safe_encode(resource_name)))
resp = self.client.get(url_str)
@@ -109,7 +109,7 @@ class ResourceManager(stacks.StackChildManager):
:param resource_name: ID of resource to send signal to
"""
stack_id = self._resolve_stack_id(stack_id)
url_str = '/stacks/%s/resources/%s/signal' % (
url_str = '/stacks/{}/resources/{}/signal'.format(
parse.quote(stack_id),
parse.quote(encodeutils.safe_encode(resource_name)))
resp = self.client.post(url_str, data=data)
@@ -126,7 +126,7 @@ class ResourceManager(stacks.StackChildManager):
:param resource_status_reason: Reason for resource status change.
"""
stack_id = self._resolve_stack_id(stack_id)
url_str = '/stacks/%s/resources/%s' % (
url_str = '/stacks/{}/resources/{}'.format(
parse.quote(stack_id),
parse.quote(encodeutils.safe_encode(resource_name)))
resp = self.client.patch(

View File

@@ -363,7 +363,7 @@ def do_stack_abandon(hc, args):
try:
with open(args.output_file, "w") as f:
f.write(result)
except IOError as err:
except OSError as err:
print(result)
raise exc.CommandError(str(err))
else:

View File

@@ -91,7 +91,7 @@ class Stack(base.Resource):
@property
def identifier(self):
return '%s/%s' % (self.stack_name, self.id)
return '{}/{}'.format(self.stack_name, self.id)
class StackChildManager(base.BaseManager):
@@ -245,8 +245,8 @@ class StackManager(StackChildManager):
def snapshot_show(self, stack_id, snapshot_id):
stack_identifier = self._resolve_stack_id(stack_id)
resp = self.client.get('/stacks/%s/snapshots/%s' % (stack_identifier,
snapshot_id))
resp = self.client.get('/stacks/{}/snapshots/{}'.format(
stack_identifier, snapshot_id))
body = utils.get_response_body(resp)
return body
@@ -278,10 +278,10 @@ class StackManager(StackChildManager):
def output_show(self, stack_id, output_key):
stack_identifier = self._resolve_stack_id(stack_id)
resp = self.client.get('/stacks/%(id)s/outputs/%(key)s' % {
'id': stack_identifier,
'key': output_key
})
resp = self.client.get('/stacks/{id}/outputs/{key}'.format(
id=stack_identifier,
key=output_key
))
body = utils.get_response_body(resp)
return body

View File

@@ -1,4 +1,3 @@
# -*- coding: utf-8 -*-
# Licensed under the Apache License, Version 2.0 (the "License"); you may
# not use this file except in compliance with the License. You may obtain
# a copy of the License at