summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMichael Johnson <johnsomor@gmail.com>2023-02-15 21:42:17 +0000
committerErik Olof Gunnar Andersson <eandersson@blizzard.com>2023-02-21 20:12:04 +0000
commit8910a2014be52808cb3f4a42953b2176e852d0ad (patch)
treea7f607b6d5f07dd6f231574b63a1d6949648f16c
parentfbfb1b0dd80bbcc2a6d1f09259972657d66fd998 (diff)
downloaddesignate-8910a2014be52808cb3f4a42953b2176e852d0ad.tar.gz
Add hacking check for line continuation backslash16.0.0.0rc116.0.0
This patch adds a hacking check for line continuation backslashes and fixes the occurences that existed in the code. Change-Id: I1d1269de231f6e747248a9d816a1d64e3968c69b
-rw-r--r--contrib/archive/backends/impl_ipa/__init__.py4
-rw-r--r--designate/api/v2/controllers/floatingips.py6
-rw-r--r--designate/api/v2/controllers/zones/tasks/__init__.py20
-rw-r--r--designate/api/v2/controllers/zones/tasks/exports.py3
-rw-r--r--designate/backend/private_codes.py2
-rw-r--r--designate/central/service.py12
-rw-r--r--designate/common/policies/base.py8
-rw-r--r--designate/exceptions.py8
-rw-r--r--designate/hacking/checks.py24
-rw-r--r--designate/objects/adapters/api_v2/validation_error.py7
-rw-r--r--designate/objects/base.py4
-rw-r--r--designate/objects/zone.py4
-rw-r--r--designate/producer/tasks.py4
-rw-r--r--designate/schema/format.py31
-rw-r--r--designate/sink/service.py4
-rw-r--r--designate/sqlalchemy/utils.py3
-rw-r--r--designate/tests/test_api/test_v2/test_blacklists.py4
-rw-r--r--designate/tests/test_api/test_v2/test_pools.py3
-rw-r--r--designate/tests/test_api/test_v2/test_recordsets.py4
-rw-r--r--designate/tests/test_api/test_v2/test_tlds.py4
-rw-r--r--designate/tests/test_central/test_service.py37
-rw-r--r--designate/tests/test_mdns/test_handler.py14
-rw-r--r--designate/tests/test_notification_handler/test_neutron.py3
-rw-r--r--designate/tests/test_notification_handler/test_nova.py3
-rw-r--r--designate/tests/unit/backend/test_akamai_v2.py8
-rw-r--r--designate/tests/unit/test_central/test_basic.py45
-rw-r--r--devstack/networking_test.py12
-rw-r--r--tox.ini1
28 files changed, 147 insertions, 135 deletions
diff --git a/contrib/archive/backends/impl_ipa/__init__.py b/contrib/archive/backends/impl_ipa/__init__.py
index a909ca10..0c29a146 100644
--- a/contrib/archive/backends/impl_ipa/__init__.py
+++ b/contrib/archive/backends/impl_ipa/__init__.py
@@ -194,9 +194,9 @@ class IPABackend(base.Backend):
self.request = requests.Session()
authclassname = cfg.CONF[self.name].ipa_auth_driver_class
authclass = importutils.import_class(authclassname)
- self.request.auth = \
+ self.request.auth = (
authclass(cfg.CONF[self.name].ipa_client_keytab,
- cfg.CONF[self.name].ipa_host)
+ cfg.CONF[self.name].ipa_host))
ipa_base_url = cfg.CONF[self.name].ipa_base_url
if ipa_base_url.startswith("http"): # full URL
self.baseurl = ipa_base_url
diff --git a/designate/api/v2/controllers/floatingips.py b/designate/api/v2/controllers/floatingips.py
index 5c984e97..9b0455c7 100644
--- a/designate/api/v2/controllers/floatingips.py
+++ b/designate/api/v2/controllers/floatingips.py
@@ -25,9 +25,9 @@ from designate.objects.adapters import DesignateAdapter
LOG = logging.getLogger(__name__)
-FIP_REGEX = '^(?P<region>[A-Za-z0-9\\.\\-_]{1,100}):' \
- '(?P<id>[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-' \
- '[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$'
+FIP_REGEX = ('^(?P<region>[A-Za-z0-9\\.\\-_]{1,100}):'
+ '(?P<id>[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-'
+ '[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$')
def fip_key_to_data(key):
diff --git a/designate/api/v2/controllers/zones/tasks/__init__.py b/designate/api/v2/controllers/zones/tasks/__init__.py
index 28f1d207..ab49cd3e 100644
--- a/designate/api/v2/controllers/zones/tasks/__init__.py
+++ b/designate/api/v2/controllers/zones/tasks/__init__.py
@@ -16,16 +16,16 @@
from oslo_log import log as logging
from designate.api.v2.controllers.zones.tasks import abandon
-from designate.api.v2.controllers.zones.tasks.exports \
- import ZoneExportCreateController
-from designate.api.v2.controllers.zones.tasks.exports \
- import ZoneExportsController
-from designate.api.v2.controllers.zones.tasks.imports \
- import ZoneImportController
-from designate.api.v2.controllers.zones.tasks.transfer_accepts \
- import TransferAcceptsController as TRA
-from designate.api.v2.controllers.zones.tasks.transfer_requests \
- import TransferRequestsController as TRC
+from designate.api.v2.controllers.zones.tasks.exports import (
+ ZoneExportCreateController)
+from designate.api.v2.controllers.zones.tasks.exports import (
+ ZoneExportsController)
+from designate.api.v2.controllers.zones.tasks.imports import (
+ ZoneImportController)
+from designate.api.v2.controllers.zones.tasks.transfer_accepts import (
+ TransferAcceptsController as TRA)
+from designate.api.v2.controllers.zones.tasks.transfer_requests import (
+ TransferRequestsController as TRC)
from designate.api.v2.controllers.zones.tasks.xfr import XfrController
LOG = logging.getLogger(__name__)
diff --git a/designate/api/v2/controllers/zones/tasks/exports.py b/designate/api/v2/controllers/zones/tasks/exports.py
index 56119f31..1ec196f6 100644
--- a/designate/api/v2/controllers/zones/tasks/exports.py
+++ b/designate/api/v2/controllers/zones/tasks/exports.py
@@ -42,8 +42,7 @@ class ZoneExportController(rest.RestController):
export = self.central_api.get_zone_export(context, export_id)
if export.location and export.location.startswith('designate://'):
- return self.central_api.\
- export_zone(context, export['zone_id'])
+ return self.central_api.export_zone(context, export['zone_id'])
else:
msg = 'Zone can not be exported synchronously'
raise exceptions.BadRequest(msg)
diff --git a/designate/backend/private_codes.py b/designate/backend/private_codes.py
index 1e1d83f7..8f88acb1 100644
--- a/designate/backend/private_codes.py
+++ b/designate/backend/private_codes.py
@@ -43,7 +43,7 @@ DELETE = 65283
# opcode 14 used in the Designate agent framework until the agent framework
# can be removed or fixed.
# [1] https://www.rfc-editor.org/rfc/rfc6895.html#section-2.2
-# [2] https://www.iana.org/assignments/dns-parameters/ \
+# [2] https://www.iana.org/assignments/dns-parameters/
# dns-parameters.xhtml#dns-parameters-5
#
# Based on dns.opcode.Opcode:
diff --git a/designate/central/service.py b/designate/central/service.py
index b44216e9..fa7be5f3 100644
--- a/designate/central/service.py
+++ b/designate/central/service.py
@@ -234,8 +234,8 @@ class Service(service.RPCService):
except Exception:
continue
else:
- msg = 'RecordSet belongs in a child zone: %s' % \
- child_zone['name']
+ msg = ('RecordSet belongs in a child zone: %s' %
+ child_zone['name'])
raise exceptions.InvalidRecordSetLocation(msg)
def _is_valid_recordset_records(self, recordset):
@@ -2497,9 +2497,9 @@ class Service(service.RPCService):
self._is_valid_project_id(zone_transfer_request.tenant_id)
- created_zone_transfer_request = \
+ created_zone_transfer_request = (
self.storage.create_zone_transfer_request(
- context, zone_transfer_request)
+ context, zone_transfer_request))
return created_zone_transfer_request
@@ -2622,9 +2622,9 @@ class Service(service.RPCService):
self._is_valid_project_id(zone_transfer_accept.tenant_id)
- created_zone_transfer_accept = \
+ created_zone_transfer_accept = (
self.storage.create_zone_transfer_accept(
- context, zone_transfer_accept)
+ context, zone_transfer_accept))
try:
zone = self.storage.get_zone(
diff --git a/designate/common/policies/base.py b/designate/common/policies/base.py
index ef2fdca7..90e3fda2 100644
--- a/designate/common/policies/base.py
+++ b/designate/common/policies/base.py
@@ -80,9 +80,11 @@ RULE_ZONE_TRANSFER = (
# TODO(johnsom) remove when the deprecated RBAC rules are removed.
RULE_ADMIN = 'rule:admin'
RULE_ADMIN_OR_OWNER = 'rule:admin_or_owner'
-LEGACY_RULE_ZONE_TRANSFER = "rule:admin_or_owner OR " \
- "project_id:%(target_tenant_id)s " \
- "OR None:%(target_tenant_id)s"
+LEGACY_RULE_ZONE_TRANSFER = (
+ "rule:admin_or_owner OR "
+ "project_id:%(target_tenant_id)s "
+ "OR None:%(target_tenant_id)s"
+)
RULE_ADMIN_OR_OWNER_OR_SHARED = (
RULE_ADMIN_OR_OWNER + ' or ("True":%(zone_shared)s)'
)
diff --git a/designate/exceptions.py b/designate/exceptions.py
index 406220f6..e140f276 100644
--- a/designate/exceptions.py
+++ b/designate/exceptions.py
@@ -46,8 +46,8 @@ class RelationNotLoaded(DesignateException):
super(RelationNotLoaded, self).__init__(*args, **kwargs)
- self.error_message = "%(relation)s is not loaded on %(object)s" % \
- {"relation": self.relation, "object": self.object.obj_name()}
+ self.error_message = ("%(relation)s is not loaded on %(object)s" %
+ {"relation": self.relation, "object": self.object.obj_name()})
def __str__(self):
return self.error_message
@@ -502,8 +502,8 @@ class ResourceNotFound(NotFound):
class MissingProjectID(BadRequest):
# Note: This should be 400, but is 401 for compatibility with
# previous versions of the API.
- # https://github.com/openstack/designate/blob/stable/wallaby/ \
- # designate/api/middleware.py#L132
+ # https://github.com/openstack/designate/blob/stable/wallaby/
+ # designate/api/middleware.py#L132
error_code = 401
error_type = 'missing_project_id'
diff --git a/designate/hacking/checks.py b/designate/hacking/checks.py
index 0a3a6c2d..53de95ce 100644
--- a/designate/hacking/checks.py
+++ b/designate/hacking/checks.py
@@ -27,6 +27,7 @@ import pycodestyle
# D708: Do not use xrange. Use range for large loops.
# D709: LOG.audit is deprecated, please use LOG.info!
# D710: LOG.warn() is not allowed. Use LOG.warning()
+# D711: Don't use backslashes for line continuation.
UNDERSCORE_IMPORT_FILES = []
@@ -44,6 +45,7 @@ graduated_oslo_libraries_import_re = re.compile(
r"^\s*(?:import|from) designate\.openstack\.common\.?.*?"
r"(gettextutils|rpc)"
r".*?")
+no_line_continuation_backslash_re = re.compile(r'.*(\\)\n')
@core.flake8ext
@@ -161,3 +163,25 @@ def check_no_log_warn(logical_line):
"""
if logical_line.startswith('LOG.warn('):
yield(0, "D710:Use LOG.warning() rather than LOG.warn()")
+
+
+@core.flake8ext
+def check_line_continuation_no_backslash(logical_line, tokens):
+ """D711 - Don't use backslashes for line continuation.
+
+ :param logical_line: The logical line to check. Not actually used.
+ :param tokens: List of tokens to check.
+ :returns: None if the tokens don't contain any issues, otherwise a tuple
+ is yielded that contains the offending index in the logical
+ line and a message describe the check validation failure.
+ """
+ backslash = None
+ for token_type, text, start, end, orig_line in tokens:
+ m = no_line_continuation_backslash_re.match(orig_line)
+ if m:
+ backslash = (start[0], m.start(1))
+ break
+
+ if backslash is not None:
+ msg = 'D711 Backslash line continuations not allowed'
+ yield backslash, msg
diff --git a/designate/objects/adapters/api_v2/validation_error.py b/designate/objects/adapters/api_v2/validation_error.py
index 4e4d5199..9ea45b68 100644
--- a/designate/objects/adapters/api_v2/validation_error.py
+++ b/designate/objects/adapters/api_v2/validation_error.py
@@ -113,10 +113,9 @@ class ValidationErrorAPIv2Adapter(base.APIv2Adapter):
# No need to continue the loop
break
- if not isinstance(
- value.get(
- 'rename', NotSpecifiedSential()), NotSpecifiedSential)\
- and path_segment == value.get('rename'):
+ if (not isinstance(value.get('rename', NotSpecifiedSential()),
+ NotSpecifiedSential) and
+ path_segment == value.get('rename')):
# Just do the rename
path_segment = key
diff --git a/designate/objects/base.py b/designate/objects/base.py
index 876cd95e..77d1c596 100644
--- a/designate/objects/base.py
+++ b/designate/objects/base.py
@@ -328,8 +328,8 @@ class ListObjectMixin(base.ObjectListBase):
instance._changed_fields = set(
primitive.get('designate_object.changes', []))
- instance._obj_original_values = \
- primitive.get('designate_object.original_values', {})
+ instance._obj_original_values = primitive.get(
+ 'designate_object.original_values', {})
return instance
diff --git a/designate/objects/zone.py b/designate/objects/zone.py
index 69ee20e3..fae67bc5 100644
--- a/designate/objects/zone.py
+++ b/designate/objects/zone.py
@@ -127,8 +127,8 @@ class Zone(base.DesignateObject, base.DictObjectMixin,
e.path = ['type']
e.validator = 'not_allowed'
e.validator_value = i
- e.message = "'%s' can't be specified when type is " \
- "SECONDARY" % i
+ e.message = ("'%s' can't be specified when type is "
+ "SECONDARY" % i)
errors.append(e)
self._raise(errors)
diff --git a/designate/producer/tasks.py b/designate/producer/tasks.py
index 93134b29..521d378e 100644
--- a/designate/producer/tasks.py
+++ b/designate/producer/tasks.py
@@ -206,8 +206,8 @@ class PeriodicSecondaryRefreshTask(PeriodicTask):
transferred = timeutils.parse_isotime(zone.transferred_at)
seconds = timeutils.delta_seconds(transferred, now)
if seconds > zone.refresh:
- msg = "Zone %(id)s has %(seconds)d seconds since last " \
- "transfer, executing AXFR"
+ msg = ("Zone %(id)s has %(seconds)d seconds since last "
+ "transfer, executing AXFR")
LOG.debug(msg, {"id": zone.id, "seconds": seconds})
self.central_api.xfr_zone(ctxt, zone.id)
diff --git a/designate/schema/format.py b/designate/schema/format.py
index 72f968c4..5382e650 100644
--- a/designate/schema/format.py
+++ b/designate/schema/format.py
@@ -26,24 +26,24 @@ import jsonschema
RE_ZONENAME = r'^(?!.{255,})(?:(?!\-)[A-Za-z0-9_\-]{1,63}(?<!\-)\.)+\Z'
RE_HOSTNAME = r'^(?!.{255,})(?:(?:^\*|(?!\-)[A-Za-z0-9_\-]{1,63})(?<!\-)\.)+\Z'
-RE_SRV_HOST_NAME = r'^(?:(?!\-)(?:\_[A-Za-z0-9_\-]{1,63}\.){2})(?!.{255,})' \
- r'(?:(?!\-)[A-Za-z0-9_\-]{1,63}(?<!\-)\.)+\Z'
+RE_SRV_HOST_NAME = (r'^(?:(?!\-)(?:\_[A-Za-z0-9_\-]{1,63}\.){2})(?!.{255,})'
+ r'(?:(?!\-)[A-Za-z0-9_\-]{1,63}(?<!\-)\.)+\Z')
# The TLD name will not end in a period.
-RE_TLDNAME = r'^(?!.{255,})(?:(?!\-)[A-Za-z0-9_\-]{1,63}(?<!\-))' \
- r'(?:\.(?:(?!\-)[A-Za-z0-9_\-]{1,63}(?<!\-)))*\Z'
+RE_TLDNAME = (r'^(?!.{255,})(?:(?!\-)[A-Za-z0-9_\-]{1,63}(?<!\-))'
+ r'(?:\.(?:(?!\-)[A-Za-z0-9_\-]{1,63}(?<!\-)))*\Z')
-RE_UUID = r'^(?:[0-9a-fA-F]){8}-(?:[0-9a-fA-F]){4}-(?:[0-9a-fA-F]){4}-' \
- r'(?:[0-9a-fA-F]){4}-(?:[0-9a-fA-F]){12}\Z'
+RE_UUID = (r'^(?:[0-9a-fA-F]){8}-(?:[0-9a-fA-F]){4}-(?:[0-9a-fA-F]){4}-'
+ r'(?:[0-9a-fA-F]){4}-(?:[0-9a-fA-F]){12}\Z')
-RE_IP_AND_PORT = r'^(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}' \
- r'(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)' \
- r'(?::(?:6553[0-5]|655[0-2]\d|65[0-4]\d\d|6[0-4]\d{3}' \
- r'|[1-5]\d{4}|[1-9]\d{0,3}|0))?\Z'
+RE_IP_AND_PORT = (r'^(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}'
+ r'(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)'
+ r'(?::(?:6553[0-5]|655[0-2]\d|65[0-4]\d\d|6[0-4]\d{3}'
+ r'|[1-5]\d{4}|[1-9]\d{0,3}|0))?\Z')
-RE_FIP_ID = r'^(?P<region>[A-Za-z0-9\.\-_]{1,100}):' \
- r'(?P<id>[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-' \
- r'[0-9a-fA-F]{4}-[0-9a-fA-F]{12})\Z'
+RE_FIP_ID = (r'^(?P<region>[A-Za-z0-9\.\-_]{1,100}):'
+ r'(?P<id>[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-'
+ r'[0-9a-fA-F]{4}-[0-9a-fA-F]{12})\Z')
RE_SSHFP_FINGERPRINT = r'^([0-9A-Fa-f]{10,40}|[0-9A-Fa-f]{64})\Z'
@@ -115,9 +115,8 @@ def is_ip_or_host(instance):
if not isinstance(instance, str):
return True
- if not re.match(RE_ZONENAME, instance)\
- and not is_ipv4(instance)\
- and not is_ipv6(instance):
+ if (not re.match(RE_ZONENAME, instance) and
+ not is_ipv4(instance) and not is_ipv6(instance)):
return False
return True
diff --git a/designate/sink/service.py b/designate/sink/service.py
index 9b918326..71580b49 100644
--- a/designate/sink/service.py
+++ b/designate/sink/service.py
@@ -45,8 +45,8 @@ class Service(service.Service):
def _init_extensions():
"""Loads and prepares all enabled extensions"""
- enabled_notification_handlers = \
- cfg.CONF['service:sink'].enabled_notification_handlers
+ enabled_notification_handlers = cfg.CONF[
+ 'service:sink'].enabled_notification_handlers
notification_handlers = notification_handler.get_notification_handlers(
enabled_notification_handlers)
diff --git a/designate/sqlalchemy/utils.py b/designate/sqlalchemy/utils.py
index c6560ae8..2965e9d2 100644
--- a/designate/sqlalchemy/utils.py
+++ b/designate/sqlalchemy/utils.py
@@ -99,8 +99,7 @@ def sort_query(query, table, sort_keys, sort_dir=None, sort_dirs=None):
assert(len(sort_dirs) == len(sort_keys))
- for current_sort_key, current_sort_dir in \
- zip(sort_keys, sort_dirs):
+ for current_sort_key, current_sort_dir in zip(sort_keys, sort_dirs):
try:
sort_dir_func = {
'asc': sqlalchemy.asc,
diff --git a/designate/tests/test_api/test_v2/test_blacklists.py b/designate/tests/test_api/test_v2/test_blacklists.py
index f42778a6..32619c43 100644
--- a/designate/tests/test_api/test_v2/test_blacklists.py
+++ b/designate/tests/test_api/test_v2/test_blacklists.py
@@ -148,9 +148,7 @@ class ApiV2BlacklistsTest(ApiV2TestCase):
correct_results = [1, 2]
- for get_url, correct_result in \
- zip(get_urls, correct_results):
-
+ for get_url, correct_result in zip(get_urls, correct_results):
self.policy({'find_blacklists': '@'})
response = self.client.get(get_url)
diff --git a/designate/tests/test_api/test_v2/test_pools.py b/designate/tests/test_api/test_v2/test_pools.py
index 00d8d64c..f4ff5dfb 100644
--- a/designate/tests/test_api/test_v2/test_pools.py
+++ b/designate/tests/test_api/test_v2/test_pools.py
@@ -189,8 +189,7 @@ class ApiV2PoolsTest(ApiV2TestCase):
correct_results = [1, 1, 0]
- for get_url, correct_result in \
- zip(get_urls, correct_results):
+ for get_url, correct_result in zip(get_urls, correct_results):
response = self.client.get(get_url)
diff --git a/designate/tests/test_api/test_v2/test_recordsets.py b/designate/tests/test_api/test_v2/test_recordsets.py
index a2fdd7c3..c9d750f6 100644
--- a/designate/tests/test_api/test_v2/test_recordsets.py
+++ b/designate/tests/test_api/test_v2/test_recordsets.py
@@ -379,9 +379,7 @@ class ApiV2RecordSetsTest(ApiV2TestCase):
correct_results = [1, 1, 2, 1, 1, 2, 1, 1]
- for get_url, correct_result in \
- zip(get_urls, correct_results):
-
+ for get_url, correct_result in zip(get_urls, correct_results):
response = self.client.get(get_url)
# Check the headers are what we expect
diff --git a/designate/tests/test_api/test_v2/test_tlds.py b/designate/tests/test_api/test_v2/test_tlds.py
index ff082335..3339affe 100644
--- a/designate/tests/test_api/test_v2/test_tlds.py
+++ b/designate/tests/test_api/test_v2/test_tlds.py
@@ -179,9 +179,7 @@ class ApiV2TldsTest(ApiV2TestCase):
correct_results = [1, 2]
- for get_url, correct_result in \
- zip(get_urls, correct_results):
-
+ for get_url, correct_result in zip(get_urls, correct_results):
self.policy({'find_tlds': '@'})
response = self.client.get(get_url)
diff --git a/designate/tests/test_central/test_service.py b/designate/tests/test_central/test_service.py
index 08527d7e..5e6c3dff 100644
--- a/designate/tests/test_central/test_service.py
+++ b/designate/tests/test_central/test_service.py
@@ -1141,9 +1141,8 @@ class CentralServiceTest(CentralTestCase):
def _delete_zone(self, zone, mock_deletion_time):
# Set a zone as deleted
zid = zone.id.replace('-', '')
- query = tables.zones.update().\
- where(tables.zones.c.id == zid).\
- values(
+ query = tables.zones.update().where(
+ tables.zones.c.id == zid).values(
action='NONE',
deleted=zid,
deleted_at=mock_deletion_time,
@@ -2881,14 +2880,14 @@ class CentralServiceTest(CentralTestCase):
# Compare the actual values of attributes and ns_records
expected_attributes = values['attributes'][0]
- actual_attributes = \
- pools[1]['attributes'][0].to_primitive()['designate_object.data']
+ actual_attributes = pools[1][
+ 'attributes'][0].to_primitive()['designate_object.data']
for k in expected_attributes:
self.assertEqual(expected_attributes[k], actual_attributes[k])
expected_ns_records = values['ns_records'][0]
- actual_ns_records = \
- pools[1]['ns_records'][0].to_primitive()['designate_object.data']
+ actual_ns_records = pools[1][
+ 'ns_records'][0].to_primitive()['designate_object.data']
for k in expected_ns_records:
self.assertEqual(expected_ns_records[k], actual_ns_records[k])
@@ -3370,15 +3369,15 @@ class CentralServiceTest(CentralTestCase):
zone, context=tenant_1_context)
zone_transfer_accept = objects.ZoneTransferAccept()
- zone_transfer_accept.zone_transfer_request_id =\
- zone_transfer_request.id
+ zone_transfer_accept.zone_transfer_request_id = (
+ zone_transfer_request.id)
zone_transfer_accept.key = zone_transfer_request.key
zone_transfer_accept.zone_id = zone.id
- zone_transfer_accept = \
+ zone_transfer_accept = (
self.central_service.create_zone_transfer_accept(
- tenant_2_context, zone_transfer_accept)
+ tenant_2_context, zone_transfer_accept))
result = {}
result['zone'] = self.central_service.get_zone(
@@ -3422,15 +3421,15 @@ class CentralServiceTest(CentralTestCase):
target_tenant_id='2')
zone_transfer_accept = objects.ZoneTransferAccept()
- zone_transfer_accept.zone_transfer_request_id =\
- zone_transfer_request.id
+ zone_transfer_accept.zone_transfer_request_id = (
+ zone_transfer_request.id)
zone_transfer_accept.key = zone_transfer_request.key
zone_transfer_accept.zone_id = zone.id
- zone_transfer_accept = \
+ zone_transfer_accept = (
self.central_service.create_zone_transfer_accept(
- tenant_2_context, zone_transfer_accept)
+ tenant_2_context, zone_transfer_accept))
result = {}
result['zone'] = self.central_service.get_zone(
@@ -3473,8 +3472,8 @@ class CentralServiceTest(CentralTestCase):
target_tenant_id="2")
zone_transfer_accept = objects.ZoneTransferAccept()
- zone_transfer_accept.zone_transfer_request_id =\
- zone_transfer_request.id
+ zone_transfer_accept.zone_transfer_request_id = (
+ zone_transfer_request.id)
zone_transfer_accept.key = 'WRONG KEY'
zone_transfer_accept.zone_id = zone.id
@@ -3500,8 +3499,8 @@ class CentralServiceTest(CentralTestCase):
target_tenant_id="2")
zone_transfer_accept = objects.ZoneTransferAccept()
- zone_transfer_accept.zone_transfer_request_id =\
- zone_transfer_request.id
+ zone_transfer_accept.zone_transfer_request_id = (
+ zone_transfer_request.id)
zone_transfer_accept.key = zone_transfer_request.key
zone_transfer_accept.zone_id = zone.id
diff --git a/designate/tests/test_mdns/test_handler.py b/designate/tests/test_mdns/test_handler.py
index f354f902..d8eeaac1 100644
--- a/designate/tests/test_mdns/test_handler.py
+++ b/designate/tests/test_mdns/test_handler.py
@@ -528,13 +528,13 @@ class MdnsRequestHandlerTest(MdnsTestCase):
# example.com. 3600 IN NS ns1.example.org.
# ;AUTHORITY
# ;ADDITIONAL
- expected_response = \
- (b"49c384000001000400000000076578616d706c6503636f6d0000fc0001c0"
- b"0c0006000100000e10002f036e7331076578616d706c65036f7267000765786"
- b"16d706c65c00c551c063900000e10000002580001518000000e10c00c000200"
- b"0100000e100002c029046d61696cc00c0001000100000e100004c0000201c00"
- b"c0006000100000e100018c029c03a551c063900000e10000002580001518000"
- b"000e10")
+ expected_response = (
+ b"49c384000001000400000000076578616d706c6503636f6d0000fc0001c0"
+ b"0c0006000100000e10002f036e7331076578616d706c65036f7267000765786"
+ b"16d706c65c00c551c063900000e10000002580001518000000e10c00c000200"
+ b"0100000e100002c029046d61696cc00c0001000100000e100004c0000201c00"
+ b"c0006000100000e100018c029c03a551c063900000e10000002580001518000"
+ b"000e10")
zone = objects.Zone.from_dict({
'name': 'example.com.',
diff --git a/designate/tests/test_notification_handler/test_neutron.py b/designate/tests/test_notification_handler/test_neutron.py
index 8d15063d..e16851f2 100644
--- a/designate/tests/test_notification_handler/test_neutron.py
+++ b/designate/tests/test_notification_handler/test_neutron.py
@@ -16,8 +16,7 @@
from oslo_log import log as logging
from designate.notification_handler.neutron import NeutronFloatingHandler
-from designate.tests.test_notification_handler import \
- NotificationHandlerMixin
+from designate.tests.test_notification_handler import NotificationHandlerMixin
from designate.tests import TestCase
LOG = logging.getLogger(__name__)
diff --git a/designate/tests/test_notification_handler/test_nova.py b/designate/tests/test_notification_handler/test_nova.py
index 367bde03..5254cb77 100644
--- a/designate/tests/test_notification_handler/test_nova.py
+++ b/designate/tests/test_notification_handler/test_nova.py
@@ -19,8 +19,7 @@ from unittest import mock
from oslo_log import log as logging
from designate.notification_handler.nova import NovaFixedHandler
-from designate.tests.test_notification_handler import \
- NotificationHandlerMixin
+from designate.tests.test_notification_handler import NotificationHandlerMixin
from designate.tests import TestCase
LOG = logging.getLogger(__name__)
diff --git a/designate/tests/unit/backend/test_akamai_v2.py b/designate/tests/unit/backend/test_akamai_v2.py
index 4725ff70..918bddf5 100644
--- a/designate/tests/unit/backend/test_akamai_v2.py
+++ b/designate/tests/unit/backend/test_akamai_v2.py
@@ -346,8 +346,8 @@ class AkamaiBackendTestCase(oslotest.base.BaseTestCase):
self.gen_response(200, 'Success', {'isComplete': True})
]
- with fixtures.random_seed(0), \
- mock.patch.object(akamai.time, 'sleep') as mock_sleep:
+ with fixtures.random_seed(0), mock.patch.object(akamai.time,
+ 'sleep') as mock_sleep:
mock_sleep.return_value = None
backend.delete_zone(self.admin_context, self.zone)
@@ -396,8 +396,8 @@ class AkamaiBackendTestCase(oslotest.base.BaseTestCase):
self.gen_response(200, 'Success', {'isComplete': False})
]
- with fixtures.random_seed(0), \
- mock.patch.object(akamai.time, 'sleep') as mock_sleep:
+ with fixtures.random_seed(0), mock.patch.object(akamai.time,
+ 'sleep') as mock_sleep:
mock_sleep.return_value = None
self.assertRaisesRegex(
exceptions.Backend,
diff --git a/designate/tests/unit/test_central/test_basic.py b/designate/tests/unit/test_central/test_basic.py
index 0d153b39..8a8068e5 100644
--- a/designate/tests/unit/test_central/test_basic.py
+++ b/designate/tests/unit/test_central/test_basic.py
@@ -277,7 +277,7 @@ class CentralBasic(TestCase):
class CentralServiceTestCase(CentralBasic):
def test_conf_fixture(self):
- assert 'service:central' in designate.central.service.cfg.CONF
+ assert 'service:central' in cfg.CONF
def test_init(self):
self.assertTrue(self.service.check_for_tlds)
@@ -616,8 +616,7 @@ class CentralZoneTestCase(CentralBasic):
def test_is_valid_recordset_name_too_long(self):
zone = RoObject(name='example.org.')
- designate.central.service.cfg.CONF['service:central'].\
- max_recordset_name_len = 255
+ cfg.CONF['service:central'].max_recordset_name_len = 255
rs_name = 'a' * 255 + '.org.'
with testtools.ExpectedException(exceptions.InvalidRecordSetName) as e:
self.service._is_valid_recordset_name(self.context, zone, rs_name)
@@ -758,8 +757,8 @@ class CentralZoneTestCase(CentralBasic):
RoObject(type='PRIMARY', name='example.org.'),
[RoObject(), RoObject(), RoObject()]
)
- ctx, zone, rset = \
- self.service._create_recordset_in_storage.call_args[0]
+ ctx, zone, rset = (
+ self.service._create_recordset_in_storage.call_args[0])
self.assertEqual('example.org.', rset.name)
self.assertEqual('NS', rset.type)
@@ -805,8 +804,8 @@ class CentralZoneTestCase(CentralBasic):
RoObject(name='foo', id=CentralZoneTestCase.zone__id),
RoObject(name='bar')
)
- ctx, zone, rset = \
- self.service._update_recordset_in_storage.call_args[0]
+ ctx, zone, rset = (
+ self.service._update_recordset_in_storage.call_args[0])
self.assertEqual(len(rset.records), 1)
self.assertTrue(rset.records[0].managed)
self.assertEqual('bar', rset.records[0].data.name)
@@ -922,8 +921,8 @@ class CentralZoneTestCase(CentralBasic):
self.service.storage.find_zones = mock.Mock()
self.service.find_zones(self.context)
self.assertTrue(self.service.storage.find_zones.called)
- pcheck, ctx, target = \
- designate.central.service.policy.check.call_args[0]
+ pcheck, ctx, target = (
+ designate.central.service.policy.check.call_args[0])
self.assertEqual('find_zones', pcheck)
def test_delete_zone_has_subzone(self):
@@ -941,8 +940,8 @@ class CentralZoneTestCase(CentralBasic):
self.context,
CentralZoneTestCase.zone__id)
- pcheck, ctx, target = \
- designate.central.service.policy.check.call_args[0]
+ pcheck, ctx, target = (
+ designate.central.service.policy.check.call_args[0])
self.assertEqual('delete_zone', pcheck)
def test_delete_zone_abandon(self):
@@ -987,13 +986,13 @@ class CentralZoneTestCase(CentralBasic):
self.assertFalse(self.service.storage.delete_zone.called)
self.assertTrue(self.service.worker_api.delete_zone.called)
self.assertTrue(designate.central.service.policy.check.called)
- ctx, deleted_dom = \
- self.service.worker_api.delete_zone.call_args[0]
+ ctx, deleted_dom = (
+ self.service.worker_api.delete_zone.call_args[0])
self.assertEqual('foo', deleted_dom.name)
self.assertEqual('foo', out.name)
- pcheck, ctx, target = \
- designate.central.service.policy.check.call_args[0]
+ pcheck, ctx, target = (
+ designate.central.service.policy.check.call_args[0])
self.assertEqual('delete_zone', pcheck)
@@ -1016,13 +1015,13 @@ class CentralZoneTestCase(CentralBasic):
self.assertFalse(self.service.storage.delete_zone.called)
self.assertTrue(self.service.worker_api.delete_zone.called)
self.assertTrue(designate.central.service.policy.check.called)
- ctx, deleted_dom = \
- self.service.worker_api.delete_zone.call_args[0]
+ ctx, deleted_dom = (
+ self.service.worker_api.delete_zone.call_args[0])
self.assertEqual('foo', deleted_dom.name)
self.assertEqual('foo', out.name)
- pcheck, ctx, target = \
- designate.central.service.policy.check.call_args[0]
+ pcheck, ctx, target = (
+ designate.central.service.policy.check.call_args[0])
self.assertEqual('delete_zone', pcheck)
@@ -1725,8 +1724,8 @@ class CentralZoneExportTests(CentralBasic):
self.service.find_zone_exports(self.context)
self.assertTrue(self.service.storage.find_zone_exports.called)
- pcheck, ctx, target = \
- designate.central.service.policy.check.call_args[0]
+ pcheck, ctx, target = (
+ designate.central.service.policy.check.call_args[0])
self.assertEqual('find_zone_exports', pcheck)
def test_delete_zone_export(self):
@@ -1756,8 +1755,8 @@ class CentralZoneExportTests(CentralBasic):
self.assertEqual('t', out.tenant_id)
self.assertTrue(designate.central.service.policy.check.called)
- pcheck, ctx, target = \
- designate.central.service.policy.check.call_args[0]
+ pcheck, ctx, target = (
+ designate.central.service.policy.check.call_args[0])
self.assertEqual('delete_zone_export', pcheck)
self.assertEqual(pcheck, 'delete_zone_export')
diff --git a/devstack/networking_test.py b/devstack/networking_test.py
index 0e279af7..3b34eac3 100644
--- a/devstack/networking_test.py
+++ b/devstack/networking_test.py
@@ -289,8 +289,8 @@ COMMIT
packet_loss_perc):
"""Setup tc htb entry, netem and filter"""
assert proto in ('tcp', 'udp')
- cmd = "class add dev lo parent 1: classid %s htb rate 1000Mbps" % \
- class_id
+ cmd = ("class add dev lo parent 1: classid %s htb rate 1000Mbps" %
+ class_id)
self.run_tc(cmd)
self._setup_netem(class_id, latency_ms, latency_ms, packet_loss_perc)
self._setup_filter(proto, 'sport %d' % port, class_id)
@@ -316,8 +316,8 @@ COMMIT
"""
protocol_nums = dict(tcp=6, udp=17)
pnum = protocol_nums[protocol]
- cmd = "filter add dev lo protocol ip prio 1 u32 match ip protocol " \
- "%(pnum)d 0xff match ip %(filter)s 0xffff flowid %(flowid)s"
+ cmd = ("filter add dev lo protocol ip prio 1 u32 match ip protocol "
+ "%(pnum)d 0xff match ip %(filter)s 0xffff flowid %(flowid)s")
self.run_tc(cmd % dict(pnum=pnum, filter=filter, flowid=flowid))
@@ -400,8 +400,8 @@ class Digger(object):
assert self.prober_is_running is True
self._progress_report_time = 0
now = time.time()
- while (self.goals or not self.prober_can_stop) and \
- now < self.prober_timeout_time:
+ while ((self.goals or not self.prober_can_stop) and
+ now < self.prober_timeout_time):
for goal in tuple(self.goals):
goal_type = goal[0]
diff --git a/tox.ini b/tox.ini
index ff5c7f00..0cce2436 100644
--- a/tox.ini
+++ b/tox.ini
@@ -176,6 +176,7 @@ extension =
D708 = checks:check_python3_xrange
D709 = checks:check_no_log_audit
D710 = checks:check_no_log_warn
+ D711 = checks:check_line_continuation_no_backslash
paths = ./designate/hacking
[testenv:dnspython-latest]