From 7e89583ec7348bf0be177c9a76b51be4ea82bc12 Mon Sep 17 00:00:00 2001 From: Alexander Kukushkin Date: Mon, 31 Jul 2023 09:08:46 +0200 Subject: [PATCH] Please new flake8 (#2789) it stopped liking lack of space character between `,` and `\` ```python foo,\ bar ``` --- features/environment.py | 2 +- features/steps/basic_replication.py | 8 ++++---- features/steps/citus.py | 2 +- features/steps/patroni_api.py | 4 ++-- patroni/dcs/consul.py | 2 +- patroni/dcs/etcd.py | 2 +- patroni/dcs/etcd3.py | 2 +- patroni/dcs/kubernetes.py | 4 ++-- tests/test_api.py | 4 ++-- tests/test_bootstrap.py | 18 +++++++++--------- tests/test_citus.py | 4 ++-- tests/test_etcd.py | 4 ++-- tests/test_etcd3.py | 7 ++++--- tests/test_ha.py | 10 +++++----- tests/test_kubernetes.py | 20 ++++++++++---------- tests/test_log.py | 2 +- tests/test_postgresql.py | 6 +++--- tests/test_raft.py | 2 +- tests/test_rewind.py | 6 +++--- tests/test_slots.py | 14 +++++++------- tests/test_zookeeper.py | 2 +- 21 files changed, 63 insertions(+), 62 deletions(-) diff --git a/features/environment.py b/features/environment.py index ec503bb5..e3c21252 100644 --- a/features/environment.py +++ b/features/environment.py @@ -59,7 +59,7 @@ class AbstractController(abc.ABC): break time.sleep(1) else: - assert False,\ + assert False, \ "{0} instance is not available for queries after {1} seconds".format(self._name, max_wait_limit) def stop(self, kill=False, timeout=15, _=False): diff --git a/features/steps/basic_replication.py b/features/steps/basic_replication.py index 6499a03f..6718cb01 100644 --- a/features/steps/basic_replication.py +++ b/features/steps/basic_replication.py @@ -21,7 +21,7 @@ def start_duplicate_patroni(context, name, port): context.pctl.start('dup-' + name, custom_config=config) assert False, "Process was expected to fail" except AssertionError as e: - assert 'is not running after being started' in str(e),\ + assert 'is not running after being started' in str(e), \ "No error was raised by duplicate start of {0} ".format(name) @@ -88,14 +88,14 @@ def table_is_present_on(context, table_name, pg_name, max_replication_delay): break sleep(1) else: - assert False,\ + assert False, \ "Table {0} is not present on {1} after {2} seconds".format(table_name, pg_name, max_replication_delay) @then('{pg_name:w} role is the {pg_role:w} after {max_promotion_timeout:d} seconds') def check_role(context, pg_name, pg_role, max_promotion_timeout): max_promotion_timeout *= context.timeout_multiplier - assert context.pctl.check_role_has_changed_to(pg_name, pg_role, timeout=int(max_promotion_timeout)),\ + assert context.pctl.check_role_has_changed_to(pg_name, pg_role, timeout=int(max_promotion_timeout)), \ "{0} role didn't change to {1} after {2} seconds".format(pg_name, pg_role, max_promotion_timeout) @@ -111,5 +111,5 @@ def replication_works(context, primary, replica, time_limit): @then('there is a "{message}" {level:w} in the {node} patroni log') def check_patroni_log(context, message, level, node): messsages_of_level = context.pctl.read_patroni_log(node, level) - assert any(message in line for line in messsages_of_level),\ + assert any(message in line for line in messsages_of_level), \ "There was no {0} {1} in the {2} patroni log".format(message, level, node) diff --git a/features/steps/citus.py b/features/steps/citus.py index 1af70a30..644219c7 100644 --- a/features/steps/citus.py +++ b/features/steps/citus.py @@ -125,5 +125,5 @@ def check_transaction(context, name): @step("a transaction finishes in {timeout:d} seconds") def check_transaction_timeout(context, timeout): - assert (datetime.now(tzutc) - context.xact_start).seconds > timeout,\ + assert (datetime.now(tzutc) - context.xact_start).seconds > timeout, \ "a transaction finished earlier than in {0} seconds".format(timeout) diff --git a/features/steps/patroni_api.py b/features/steps/patroni_api.py index a745b192..2c76d32d 100644 --- a/features/steps/patroni_api.py +++ b/features/steps/patroni_api.py @@ -98,7 +98,7 @@ def do_run(context, cmd): @then('I receive a response {component:w} {data}') def check_response(context, component, data): if component == 'code': - assert context.status_code == int(data),\ + assert context.status_code == int(data), \ "status code {0} != {1}, response: {2}".format(context.status_code, data, context.response) elif component == 'returncode': assert context.status_code == int(data), "return code {0} != {1}, {2}".format(context.status_code, @@ -158,7 +158,7 @@ def check_http_response(context, url, value, timeout, negate=False): break time.sleep(1) else: - assert False,\ + assert False, \ "Value {0} is {1} present in response after {2} seconds".format(value, "not" if not negate else "", timeout) diff --git a/patroni/dcs/consul.py b/patroni/dcs/consul.py index 73755a41..7b310d15 100644 --- a/patroni/dcs/consul.py +++ b/patroni/dcs/consul.py @@ -15,7 +15,7 @@ from urllib3.exceptions import HTTPError from urllib.parse import urlencode, urlparse, quote from typing import Any, Callable, Dict, List, Mapping, NamedTuple, Optional, Union, Tuple, TYPE_CHECKING -from . import AbstractDCS, Cluster, ClusterConfig, Failover, Leader, Member, SyncState,\ +from . import AbstractDCS, Cluster, ClusterConfig, Failover, Leader, Member, SyncState, \ TimelineHistory, ReturnFalseException, catch_return_false_exception, citus_group_re from ..exceptions import DCSError from ..utils import deep_compare, parse_bool, Retry, RetryFailedError, split_host_port, uri, USER_AGENT diff --git a/patroni/dcs/etcd.py b/patroni/dcs/etcd.py index 94e546ac..447c7dab 100644 --- a/patroni/dcs/etcd.py +++ b/patroni/dcs/etcd.py @@ -21,7 +21,7 @@ from urllib.parse import urlparse from urllib3 import Timeout from urllib3.exceptions import HTTPError, ReadTimeoutError, ProtocolError -from . import AbstractDCS, Cluster, ClusterConfig, Failover, Leader, Member, SyncState,\ +from . import AbstractDCS, Cluster, ClusterConfig, Failover, Leader, Member, SyncState, \ TimelineHistory, ReturnFalseException, catch_return_false_exception, citus_group_re from ..exceptions import DCSError from ..request import get as requests_get diff --git a/patroni/dcs/etcd3.py b/patroni/dcs/etcd3.py index 32d00359..0bfc4fae 100644 --- a/patroni/dcs/etcd3.py +++ b/patroni/dcs/etcd3.py @@ -15,7 +15,7 @@ from urllib3.exceptions import ReadTimeoutError, ProtocolError from threading import Condition, Lock, Thread from typing import Any, Callable, Collection, Dict, Iterator, List, Optional, Tuple, Type, TYPE_CHECKING, Union -from . import ClusterConfig, Cluster, Failover, Leader, Member, SyncState,\ +from . import ClusterConfig, Cluster, Failover, Leader, Member, SyncState, \ TimelineHistory, catch_return_false_exception, citus_group_re from .etcd import AbstractEtcdClientWithFailover, AbstractEtcd, catch_etcd_errors, DnsCachingResolver, Retry from ..exceptions import DCSError, PatroniException diff --git a/patroni/dcs/kubernetes.py b/patroni/dcs/kubernetes.py index bda4bdc8..96097338 100644 --- a/patroni/dcs/kubernetes.py +++ b/patroni/dcs/kubernetes.py @@ -19,10 +19,10 @@ from urllib3.exceptions import HTTPError from threading import Condition, Lock, Thread from typing import Any, Callable, Collection, Dict, List, Optional, Tuple, Type, Union, TYPE_CHECKING -from . import AbstractDCS, Cluster, ClusterConfig, Failover, Leader, Member, SyncState,\ +from . import AbstractDCS, Cluster, ClusterConfig, Failover, Leader, Member, SyncState, \ TimelineHistory, CITUS_COORDINATOR_GROUP_ID, citus_group_re from ..exceptions import DCSError -from ..utils import deep_compare, iter_response_objects, keepalive_socket_options,\ +from ..utils import deep_compare, iter_response_objects, keepalive_socket_options, \ Retry, RetryFailedError, tzutc, uri, USER_AGENT if TYPE_CHECKING: # pragma: no cover from ..config import Config diff --git a/tests/test_api.py b/tests/test_api.py index f9d0b1c1..eb19ebca 100644 --- a/tests/test_api.py +++ b/tests/test_api.py @@ -226,7 +226,7 @@ class TestRestApiHandler(unittest.TestCase): self.assertIsNotNone(MockRestApiServer(RestApiHandler, 'GET /primary')) with patch.object(RestApiServer, 'query', Mock(return_value=[('', 1, '', '', '', '', False, None, None, '')])): self.assertIsNotNone(MockRestApiServer(RestApiHandler, 'GET /patroni')) - with patch.object(GlobalConfig, 'is_standby_cluster', Mock(return_value=True)),\ + with patch.object(GlobalConfig, 'is_standby_cluster', Mock(return_value=True)), \ patch.object(GlobalConfig, 'is_paused', Mock(return_value=True)): MockRestApiServer(RestApiHandler, 'GET /standby_leader') @@ -559,7 +559,7 @@ class TestRestApiHandler(unittest.TestCase): request = post + '103\n\n{"leader": "postgresql1", "member": "postgresql2",' +\ ' "scheduled_at": "6016-02-15T18:13:30.568224+01:00"}' MockRestApiServer(RestApiHandler, request) - with patch.object(GlobalConfig, 'is_paused', PropertyMock(return_value=True)),\ + with patch.object(GlobalConfig, 'is_paused', PropertyMock(return_value=True)), \ patch.object(MockPatroni, 'dcs') as d: d.manual_failover.return_value = False MockRestApiServer(RestApiHandler, request) diff --git a/tests/test_bootstrap.py b/tests/test_bootstrap.py index 4c7c0fcc..9f98fecb 100644 --- a/tests/test_bootstrap.py +++ b/tests/test_bootstrap.py @@ -155,9 +155,9 @@ class TestBootstrap(BaseTestPostgresql): config = {'users': {'replicator': {'password': 'rep-pass', 'options': ['replication']}}} - with patch.object(Postgresql, 'is_running', Mock(return_value=False)),\ - patch.object(Postgresql, 'get_major_version', Mock(return_value=140000)),\ - patch('multiprocessing.Process', Mock(side_effect=Exception)),\ + with patch.object(Postgresql, 'is_running', Mock(return_value=False)), \ + patch.object(Postgresql, 'get_major_version', Mock(return_value=140000)), \ + patch('multiprocessing.Process', Mock(side_effect=Exception)), \ patch('multiprocessing.get_context', Mock(side_effect=Exception), create=True): self.assertRaises(Exception, self.b.bootstrap, config) with open(os.path.join(self.p.data_dir, 'pg_hba.conf')) as f: @@ -185,12 +185,12 @@ class TestBootstrap(BaseTestPostgresql): self.assertFalse(self.b.bootstrap(config)) mock_cancellable_subprocess_call.return_value = 0 - with patch('multiprocessing.Process', Mock(side_effect=Exception("42"))),\ - patch('multiprocessing.get_context', Mock(side_effect=Exception("42")), create=True),\ - patch('os.path.isfile', Mock(return_value=True)),\ - patch('os.unlink', Mock()),\ - patch.object(ConfigHandler, 'save_configuration_files', Mock()),\ - patch.object(ConfigHandler, 'restore_configuration_files', Mock()),\ + with patch('multiprocessing.Process', Mock(side_effect=Exception("42"))), \ + patch('multiprocessing.get_context', Mock(side_effect=Exception("42")), create=True), \ + patch('os.path.isfile', Mock(return_value=True)), \ + patch('os.unlink', Mock()), \ + patch.object(ConfigHandler, 'save_configuration_files', Mock()), \ + patch.object(ConfigHandler, 'restore_configuration_files', Mock()), \ patch.object(ConfigHandler, 'write_recovery_conf', Mock()): with self.assertRaises(Exception) as e: self.b.bootstrap(config) diff --git a/tests/test_citus.py b/tests/test_citus.py index 40d4df8a..7c2d63bb 100644 --- a/tests/test_citus.py +++ b/tests/test_citus.py @@ -52,7 +52,7 @@ class TestCitus(BaseTestPostgresql): 'leader': 'leader', 'timeout': 30, 'cooldown': 10}) def test_add_task(self): - with patch('patroni.postgresql.citus.logger.error') as mock_logger,\ + with patch('patroni.postgresql.citus.logger.error') as mock_logger, \ patch('patroni.postgresql.citus.urlparse', Mock(side_effect=Exception)): self.c.add_task('', 1, None) mock_logger.assert_called_once() @@ -107,7 +107,7 @@ class TestCitus(BaseTestPostgresql): self.c.process_tasks() self.c.add_task('after_promote', 0, 'postgres://host3:5432/postgres') - with patch('patroni.postgresql.citus.logger.error') as mock_logger,\ + with patch('patroni.postgresql.citus.logger.error') as mock_logger, \ patch.object(CitusHandler, 'query', Mock(side_effect=Exception)): self.c.process_tasks() mock_logger.assert_called_once() diff --git a/tests/test_etcd.py b/tests/test_etcd.py index b5add201..f9e07144 100644 --- a/tests/test_etcd.py +++ b/tests/test_etcd.py @@ -172,12 +172,12 @@ class TestClient(unittest.TestCase): self.assertRaises(etcd.EtcdWatchTimedOut, self.client.api_execute, '/timeout', 'POST', params={'wait': 'true'}) self.assertRaises(etcd.EtcdWatchTimedOut, self.client.api_execute, '/timeout', 'POST', params={'wait': 'true'}) - with patch.object(EtcdClient, '_calculate_timeouts', Mock(side_effect=[(1, 1, 0), (1, 1, 0), (0, 1, 0)])),\ + with patch.object(EtcdClient, '_calculate_timeouts', Mock(side_effect=[(1, 1, 0), (1, 1, 0), (0, 1, 0)])), \ patch.object(EtcdClient, '_load_machines_cache', Mock(side_effect=Exception)): self.client.http.request = Mock(side_effect=socket.error) self.assertRaises(etcd.EtcdException, rtry, self.client.api_execute, '/', 'GET', params={'retry': rtry}) - with patch.object(EtcdClient, '_calculate_timeouts', Mock(side_effect=[(1, 1, 0), (1, 1, 0), (0, 1, 0)])),\ + with patch.object(EtcdClient, '_calculate_timeouts', Mock(side_effect=[(1, 1, 0), (1, 1, 0), (0, 1, 0)])), \ patch.object(EtcdClient, '_load_machines_cache', Mock(return_value=True)): self.assertRaises(etcd.EtcdException, rtry, self.client.api_execute, '/', 'GET', params={'retry': rtry}) diff --git a/tests/test_etcd3.py b/tests/test_etcd3.py index a737f199..ace59a62 100644 --- a/tests/test_etcd3.py +++ b/tests/test_etcd3.py @@ -5,8 +5,9 @@ import urllib3 from mock import Mock, PropertyMock, patch from patroni.dcs.etcd import DnsCachingResolver -from patroni.dcs.etcd3 import PatroniEtcd3Client, Cluster, Etcd3Client, Etcd3Error, Etcd3ClientError, RetryFailedError,\ - InvalidAuthToken, Unavailable, Unknown, UnsupportedEtcdVersion, UserEmpty, AuthFailed, base64_encode, Etcd3 +from patroni.dcs.etcd3 import PatroniEtcd3Client, Cluster, Etcd3, Etcd3Client, \ + Etcd3Error, Etcd3ClientError, RetryFailedError, InvalidAuthToken, Unavailable, \ + Unknown, UnsupportedEtcdVersion, UserEmpty, AuthFailed, base64_encode from threading import Thread from . import SleepException, MockResponse @@ -241,7 +242,7 @@ class TestEtcd3(BaseTestEtcd3): self.etcd3.update_leader(leader, '123', failsafe={'foo': 'bar'}) self.etcd3._last_lease_refresh = 0 self.etcd3.update_leader(leader, '124') - with patch.object(PatroniEtcd3Client, 'lease_keepalive', Mock(return_value=True)),\ + with patch.object(PatroniEtcd3Client, 'lease_keepalive', Mock(return_value=True)), \ patch('time.time', Mock(side_effect=[0, 100, 200, 300])): self.assertRaises(Etcd3Error, self.etcd3.update_leader, leader, '126') self.etcd3._lease = leader.session diff --git a/tests/test_ha.py b/tests/test_ha.py index 7cdb00e1..1f5f903d 100644 --- a/tests/test_ha.py +++ b/tests/test_ha.py @@ -307,7 +307,7 @@ class TestHa(PostgresInit): self.p.is_running = false self.p.controldata = lambda: {'Database cluster state': 'in production', 'Database system identifier': SYSID} self.assertEqual(self.ha.run_cycle(), 'doing crash recovery in a single user mode') - with patch('patroni.async_executor.AsyncExecutor.busy', PropertyMock(return_value=True)),\ + with patch('patroni.async_executor.AsyncExecutor.busy', PropertyMock(return_value=True)), \ patch.object(Ha, 'check_timeline', Mock(return_value=False)): self.ha._async_executor.schedule('doing crash recovery in a single user mode') self.ha.state_handler.cancellable._process = Mock() @@ -340,7 +340,7 @@ class TestHa(PostgresInit): self.ha._rewind.check_leader_is_not_in_recovery = true with patch.object(Rewind, 'rewind_or_reinitialize_needed_and_possible', Mock(return_value=True)): self.assertEqual(self.ha.run_cycle(), 'running pg_rewind from leader') - with patch.object(Rewind, 'rewind_or_reinitialize_needed_and_possible', Mock(return_value=False)),\ + with patch.object(Rewind, 'rewind_or_reinitialize_needed_and_possible', Mock(return_value=False)), \ patch.object(Ha, 'is_synchronous_mode', Mock(return_value=True)): self.p.follow = true self.assertEqual(self.ha.run_cycle(), 'starting as a secondary') @@ -608,7 +608,7 @@ class TestHa(PostgresInit): self.e.initialize = true self.ha.bootstrap() self.p.is_leader = true - with patch.object(Watchdog, 'activate', Mock(return_value=False)),\ + with patch.object(Watchdog, 'activate', Mock(return_value=False)), \ patch('patroni.ha.logger.error') as mock_logger: self.assertEqual(self.ha.post_bootstrap(), 'running post_bootstrap') self.assertRaises(PatroniFatalException, self.ha.post_bootstrap) @@ -669,9 +669,9 @@ class TestHa(PostgresInit): self.ha.update_lock = false self.p.set_role('primary') - with patch('patroni.async_executor.CriticalTask.cancel', Mock(return_value=False)),\ + with patch('patroni.async_executor.CriticalTask.cancel', Mock(return_value=False)), \ patch('patroni.async_executor.CriticalTask.result', - PropertyMock(return_value=PostmasterProcess(os.getpid())), create=True),\ + PropertyMock(return_value=PostmasterProcess(os.getpid())), create=True), \ patch('patroni.postgresql.Postgresql.terminate_starting_postmaster') as mock_terminate: self.assertEqual(self.ha.run_cycle(), 'lost leader lock during restart') mock_terminate.assert_called() diff --git a/tests/test_kubernetes.py b/tests/test_kubernetes.py index f79539a7..662e22a8 100644 --- a/tests/test_kubernetes.py +++ b/tests/test_kubernetes.py @@ -8,8 +8,8 @@ import unittest import urllib3 from mock import Mock, PropertyMock, mock_open, patch -from patroni.dcs.kubernetes import Cluster, k8s_client, k8s_config, K8sConfig, K8sConnectionFailed,\ - K8sException, K8sObject, Kubernetes, KubernetesError, KubernetesRetriableException,\ +from patroni.dcs.kubernetes import Cluster, k8s_client, k8s_config, K8sConfig, K8sConnectionFailed, \ + K8sException, K8sObject, Kubernetes, KubernetesError, KubernetesRetriableException, \ Retry, RetryFailedError, SERVICE_HOST_ENV_NAME, SERVICE_PORT_ENV_NAME from threading import Thread from . import MockResponse, SleepException @@ -86,8 +86,8 @@ class TestK8sConfig(unittest.TestCase): with patch('os.environ', env): self.assertRaises(k8s_config.ConfigException, k8s_config.load_incluster_config) - with patch('os.environ', {SERVICE_HOST_ENV_NAME: 'a', SERVICE_PORT_ENV_NAME: '1'}),\ - patch('os.path.isfile', Mock(side_effect=[False, True, True, False, True, True, True, True])),\ + with patch('os.environ', {SERVICE_HOST_ENV_NAME: 'a', SERVICE_PORT_ENV_NAME: '1'}), \ + patch('os.path.isfile', Mock(side_effect=[False, True, True, False, True, True, True, True])), \ patch('builtins.open', Mock(side_effect=[ mock_open()(), mock_open(read_data='a')(), mock_open(read_data='a')(), mock_open()(), mock_open(read_data='a')(), mock_open(read_data='a')()])): @@ -98,8 +98,8 @@ class TestK8sConfig(unittest.TestCase): self.assertEqual(k8s_config.headers.get('authorization'), 'Bearer a') def test_refresh_token(self): - with patch('os.environ', {SERVICE_HOST_ENV_NAME: 'a', SERVICE_PORT_ENV_NAME: '1'}),\ - patch('os.path.isfile', Mock(side_effect=[True, True, False, True, True, True])),\ + with patch('os.environ', {SERVICE_HOST_ENV_NAME: 'a', SERVICE_PORT_ENV_NAME: '1'}), \ + patch('os.path.isfile', Mock(side_effect=[True, True, False, True, True, True])), \ patch('builtins.open', Mock(side_effect=[ mock_open(read_data='cert')(), mock_open(read_data='a')(), mock_open()(), mock_open(read_data='b')(), mock_open(read_data='c')()])): @@ -138,10 +138,10 @@ class TestK8sConfig(unittest.TestCase): config["users"][0]["user"]["client-key-data"] = base64.b64encode(b'foobar').decode('utf-8') config["clusters"][0]["cluster"]["certificate-authority-data"] = base64.b64encode(b'foobar').decode('utf-8') - with patch('builtins.open', mock_open(read_data=json.dumps(config))),\ - patch('os.write', Mock()), patch('os.close', Mock()),\ - patch('os.remove') as mock_remove,\ - patch('atexit.register') as mock_atexit,\ + with patch('builtins.open', mock_open(read_data=json.dumps(config))), \ + patch('os.write', Mock()), patch('os.close', Mock()), \ + patch('os.remove') as mock_remove, \ + patch('atexit.register') as mock_atexit, \ patch('tempfile.mkstemp') as mock_mkstemp: mock_mkstemp.side_effect = [(3, '1.tmp'), (4, '2.tmp')] k8s_config.load_kube_config() diff --git a/tests/test_log.py b/tests/test_log.py index 1a383908..ebdb4945 100644 --- a/tests/test_log.py +++ b/tests/test_log.py @@ -43,7 +43,7 @@ class TestPatroniLogger(unittest.TestCase): _LOG.exception('test') logger.start() - with patch.object(logging.Handler, 'format', Mock(side_effect=Exception)),\ + with patch.object(logging.Handler, 'format', Mock(side_effect=Exception)), \ patch('_pytest.logging.LogCaptureHandler.emit', Mock()): logging.error('test') diff --git a/tests/test_postgresql.py b/tests/test_postgresql.py index c759cde0..036e225b 100644 --- a/tests/test_postgresql.py +++ b/tests/test_postgresql.py @@ -333,7 +333,7 @@ class TestPostgresql(BaseTestPostgresql): mock_read_auto = mock_open(read_data=read_data) mock_read_auto.return_value.__iter__ = lambda o: iter(o.readline, '') - with patch('builtins.open', Mock(side_effect=[mock_open()(), mock_read_auto(), IOError])),\ + with patch('builtins.open', Mock(side_effect=[mock_open()(), mock_read_auto(), IOError])), \ patch('os.chmod', Mock()): self.p.config.write_postgresql_conf() @@ -496,8 +496,8 @@ class TestPostgresql(BaseTestPostgresql): self.p.remove_data_directory() with patch('os.path.isfile', Mock(return_value=True)): self.p.remove_data_directory() - with patch('os.path.islink', Mock(side_effect=[False, False, True, True])),\ - patch('os.listdir', Mock(return_value=['12345'])),\ + with patch('os.path.islink', Mock(side_effect=[False, False, True, True])), \ + patch('os.listdir', Mock(return_value=['12345'])), \ patch('os.path.realpath', Mock(side_effect=['../foo', '../foo_tsp'])): self.p.remove_data_directory() diff --git a/tests/test_raft.py b/tests/test_raft.py index ab68c2e6..1fe8733c 100644 --- a/tests/test_raft.py +++ b/tests/test_raft.py @@ -4,7 +4,7 @@ import tempfile import time from mock import Mock, PropertyMock, patch -from patroni.dcs.raft import Cluster, DynMemberSyncObj, KVStoreTTL,\ +from patroni.dcs.raft import Cluster, DynMemberSyncObj, KVStoreTTL, \ Raft, RaftError, SyncObjUtility, TCPTransport, _TCPTransport from pysyncobj import SyncObjConf, FAIL_REASON diff --git a/tests/test_rewind.py b/tests/test_rewind.py index a4fafcff..22181266 100644 --- a/tests/test_rewind.py +++ b/tests/test_rewind.py @@ -65,14 +65,14 @@ class TestRewind(BaseTestPostgresql): def test_pg_rewind(self): r = {'user': '', 'host': '', 'port': '', 'database': '', 'password': ''} - with patch.object(Postgresql, 'major_version', PropertyMock(return_value=150000)),\ + with patch.object(Postgresql, 'major_version', PropertyMock(return_value=150000)), \ patch.object(CancellableSubprocess, 'call', Mock(return_value=None)): with patch('subprocess.check_output', Mock(return_value=b'boo')): self.assertFalse(self.r.pg_rewind(r)) with patch('subprocess.check_output', Mock(side_effect=Exception)): self.assertFalse(self.r.pg_rewind(r)) - with patch.object(Postgresql, 'major_version', PropertyMock(return_value=120000)),\ + with patch.object(Postgresql, 'major_version', PropertyMock(return_value=120000)), \ patch('subprocess.check_output', Mock(return_value=b'foo %f %p %r %% % %')): with patch.object(CancellableSubprocess, 'call', mock_cancellable_call): self.assertFalse(self.r.pg_rewind(r)) @@ -91,7 +91,7 @@ class TestRewind(BaseTestPostgresql): 'Latest checkpoint location': '0/'})): self.r.rewind_or_reinitialize_needed_and_possible(self.leader) - with patch.object(Postgresql, 'is_running', Mock(return_value=True)),\ + with patch.object(Postgresql, 'is_running', Mock(return_value=True)), \ patch.object(MockCursor, 'fetchone', Mock(side_effect=[(0, 0, 1, 1, 0, 0, 0, 0, 0, None, None, None), Exception])): self.r.rewind_or_reinitialize_needed_and_possible(self.leader) diff --git a/tests/test_slots.py b/tests/test_slots.py index 3f21998f..6d3f17d3 100644 --- a/tests/test_slots.py +++ b/tests/test_slots.py @@ -43,12 +43,12 @@ class TestSlotsHandler(BaseTestPostgresql): with mock.patch('patroni.postgresql.Postgresql._query', Mock(side_effect=psycopg.OperationalError)): self.s.sync_replication_slots(cluster, False) self.p.set_role('standby_leader') - with patch.object(SlotsHandler, 'drop_replication_slot', Mock(return_value=(True, False))),\ + with patch.object(SlotsHandler, 'drop_replication_slot', Mock(return_value=(True, False))), \ patch('patroni.postgresql.slots.logger.debug') as mock_debug: self.s.sync_replication_slots(cluster, False) mock_debug.assert_called_once() self.p.set_role('replica') - with patch.object(Postgresql, 'is_leader', Mock(return_value=False)),\ + with patch.object(Postgresql, 'is_leader', Mock(return_value=False)), \ patch.object(SlotsHandler, 'drop_replication_slot') as mock_drop: self.s.sync_replication_slots(cluster, False, paused=True) mock_drop.assert_not_called() @@ -96,8 +96,8 @@ class TestSlotsHandler(BaseTestPostgresql): with patch.object(SlotsHandler, 'check_logical_slots_readiness', Mock(return_value=False)): self.assertEqual(self.s.sync_replication_slots(self.cluster, False), []) self.s._schedule_load_slots = False - with patch.object(MockCursor, 'execute', Mock(side_effect=psycopg.OperationalError)),\ - patch.object(SlotsAdvanceThread, 'schedule', Mock(return_value=(True, ['ls']))),\ + with patch.object(MockCursor, 'execute', Mock(side_effect=psycopg.OperationalError)), \ + patch.object(SlotsAdvanceThread, 'schedule', Mock(return_value=(True, ['ls']))), \ patch.object(psycopg.OperationalError, 'diag') as mock_diag: type(mock_diag).sqlstate = PropertyMock(return_value='58P01') self.assertEqual(self.s.sync_replication_slots(self.cluster, False), ['ls']) @@ -119,10 +119,10 @@ class TestSlotsHandler(BaseTestPostgresql): @patch.object(Postgresql, 'is_leader', Mock(return_value=False)) def test_check_logical_slots_readiness(self): self.s.copy_logical_slots(self.cluster, ['ls']) - with patch.object(MockCursor, '__iter__', Mock(return_value=iter([('postgresql0', None)]))),\ + with patch.object(MockCursor, '__iter__', Mock(return_value=iter([('postgresql0', None)]))), \ patch.object(MockCursor, 'fetchone', Mock(side_effect=Exception)): self.assertFalse(self.s.check_logical_slots_readiness(self.cluster, None)) - with patch.object(MockCursor, '__iter__', Mock(return_value=iter([('postgresql0', None)]))),\ + with patch.object(MockCursor, '__iter__', Mock(return_value=iter([('postgresql0', None)]))), \ patch.object(MockCursor, 'fetchone', Mock(return_value=(False,))): self.assertFalse(self.s.check_logical_slots_readiness(self.cluster, None)) with patch.object(MockCursor, '__iter__', Mock(return_value=iter([('ls', 100)]))): @@ -144,7 +144,7 @@ class TestSlotsHandler(BaseTestPostgresql): self.assertRaises(OSError, fsync_dir, 'foo') def test_slots_advance_thread(self): - with patch.object(MockCursor, 'execute', Mock(side_effect=psycopg.OperationalError)),\ + with patch.object(MockCursor, 'execute', Mock(side_effect=psycopg.OperationalError)), \ patch.object(psycopg.OperationalError, 'diag') as mock_diag: type(mock_diag).sqlstate = PropertyMock(return_value='58P01') self.s.schedule_advance_slots({'foo': {'bar': 100}}) diff --git a/tests/test_zookeeper.py b/tests/test_zookeeper.py index baf9ad10..c72fefe9 100644 --- a/tests/test_zookeeper.py +++ b/tests/test_zookeeper.py @@ -7,7 +7,7 @@ from kazoo.handlers.threading import SequentialThreadingHandler from kazoo.protocol.states import KeeperState, ZnodeStat from kazoo.retry import RetryFailedError from mock import Mock, PropertyMock, patch -from patroni.dcs.zookeeper import Cluster, Leader, PatroniKazooClient,\ +from patroni.dcs.zookeeper import Cluster, Leader, PatroniKazooClient, \ PatroniSequentialThreadingHandler, ZooKeeper, ZooKeeperError