Skip to content

Commit

Permalink
make codacy and quantifiedcode happier
Browse files Browse the repository at this point in the history
  • Loading branch information
Alexander Kukushkin committed Feb 12, 2016
1 parent 141f2bc commit a767496
Show file tree
Hide file tree
Showing 7 changed files with 24 additions and 40 deletions.
7 changes: 3 additions & 4 deletions patroni/ctl.py
Expand Up @@ -74,9 +74,8 @@ def load_config(path, dcs):

def store_config(config, path):
dir_path = os.path.dirname(path)
if dir_path:
if not os.path.isdir(dir_path):
os.makedirs(dir_path)
if dir_path and not os.path.isdir(dir_path):
os.makedirs(dir_path)
with open(path, 'w') as fd:
yaml.dump(config, fd)

Expand Down Expand Up @@ -376,7 +375,7 @@ def remove(config_file, cluster_name, format, dcs):
if confirm != cluster.leader.name:
raise PatroniCtlException('You did not specify the current master of the cluster')

dcs.client.delete(dcs._base_path, recursive=True)
dcs.client.delete(dcs.client_path(''), recursive=True)


def wait_for_leader(dcs, timeout=30):
Expand Down
18 changes: 5 additions & 13 deletions tests/test_aws.py
@@ -1,6 +1,7 @@
import unittest
import requests
import boto.ec2

from collections import namedtuple
from patroni.scripts.aws import AWSConnection
from requests.exceptions import RequestException
Expand Down Expand Up @@ -35,15 +36,6 @@ def json(self):

class TestAWSConnection(unittest.TestCase):

def __init__(self, method_name='runTest'):
super(TestAWSConnection, self).__init__(method_name)

def set_error(self):
self.error = True

def set_json_error(self):
self.json_error = True

def boto_ec2_connect_to_region(self, region):
return MockEc2Connection(self.error)

Expand Down Expand Up @@ -74,21 +66,21 @@ def test_on_role_change(self):
self.assertTrue(self.conn.on_role_change('master'))

def test_non_aws(self):
self.set_error()
self.error = True
conn = AWSConnection('test')
self.assertFalse(conn.aws_available())
self.assertFalse(conn._tag_ebs('master'))
self.assertFalse(conn._tag_ec2('master'))

def test_aws_bizare_response(self):
self.set_json_error()
self.json_error = True
conn = AWSConnection('test')
self.assertFalse(conn.aws_available())

def test_aws_tag_ebs_error(self):
self.set_error()
self.error = True
self.assertFalse(self.conn._tag_ebs("master"))

def test_aws_tag_ec2_error(self):
self.set_error()
self.error = True
self.assertFalse(self.conn._tag_ec2("master"))
5 changes: 2 additions & 3 deletions tests/test_ctl.py
Expand Up @@ -188,9 +188,8 @@ def test_query(self):
assert 'mutually exclusive' in str(result.output)

with runner.isolated_filesystem():
dummy_file = open('dummy', 'w')
dummy_file.write('SELECT 1')
dummy_file.close()
with open('dummy', 'w') as dummy_file:
dummy_file.write('SELECT 1')

result = runner.invoke(ctl, [
'query',
Expand Down
6 changes: 3 additions & 3 deletions tests/test_etcd.py
Expand Up @@ -86,9 +86,9 @@ def etcd_watch(key, index=None, timeout=None, recursive=None):
def etcd_write(key, value, **kwargs):
if key == '/service/exists/leader':
raise etcd.EtcdAlreadyExist
if key == '/service/test/leader' or key == '/patroni/test/leader':
if kwargs.get('prevValue') == 'foo' or not kwargs.get('prevExist', True):
return True
if key in ['/service/test/leader', '/patroni/test/leader'] and \
(kwargs.get('prevValue') == 'foo' or not kwargs.get('prevExist', True)):
return True
raise etcd.EtcdException


Expand Down
9 changes: 4 additions & 5 deletions tests/test_postgresql.py
Expand Up @@ -155,6 +155,10 @@ def psycopg2_connect(*args, **kwargs):
return MockConnect()


def fake_listdir(path):
return ["a", "b", "c"] if path.endswith('pg_xlog/archive_status') else []


@patch('subprocess.call', Mock(return_value=0))
@patch('psycopg2.connect', psycopg2_connect)
class TestPostgresql(unittest.TestCase):
Expand Down Expand Up @@ -437,11 +441,6 @@ def test_single_user_mode(self, subprocess_popen_mock):
subprocess_popen_mock.return_value = None
self.assertEquals(self.p.single_user_mode(), 1)

def fake_listdir(path):
if path.endswith(os.path.join('pg_xlog', 'archive_status')):
return ["a", "b", "c"]
return []

@patch('os.listdir', MagicMock(side_effect=fake_listdir))
@patch('os.path.isdir', MagicMock(return_value=True))
@patch('os.unlink', return_value=True)
Expand Down
14 changes: 5 additions & 9 deletions tests/test_utils.py
Expand Up @@ -41,37 +41,33 @@ def inner():
raise PatroniException('Failed!')
return inner

@staticmethod
def _makeOne(*args, **kwargs):
return Retry(*args, **kwargs)

def test_reset(self):
retry = self._makeOne(delay=0, max_tries=2)
retry = Retry(delay=0, max_tries=2)
retry(self._fail())
self.assertEquals(retry._attempts, 1)
retry.reset()
self.assertEquals(retry._attempts, 0)

def test_too_many_tries(self):
retry = self._makeOne(delay=0)
retry = Retry(delay=0)
self.assertRaises(RetryFailedError, retry, self._fail(times=999))
self.assertEquals(retry._attempts, 1)

def test_maximum_delay(self):
retry = self._makeOne(delay=10, max_tries=100)
retry = Retry(delay=10, max_tries=100)
retry(self._fail(times=10))
self.assertTrue(retry._cur_delay < 4000, retry._cur_delay)
# gevent's sleep function is picky about the type
self.assertEquals(type(retry._cur_delay), float)

def test_deadline(self):
retry = self._makeOne(deadline=0.0001)
retry = Retry(deadline=0.0001)
self.assertRaises(RetryFailedError, retry, self._fail(times=100))

def test_copy(self):
def _sleep(t):
pass

retry = self._makeOne(sleep_func=_sleep)
retry = Retry(sleep_func=_sleep)
rcopy = retry.copy()
self.assertTrue(rcopy.sleep_func is _sleep)
5 changes: 2 additions & 3 deletions tests/test_zookeeper.py
Expand Up @@ -72,9 +72,8 @@ def set(path, value, version=-1):
raise TypeError("Invalid type for 'value' (must be a byte string)")
if path == '/service/bla/optime/leader':
raise Exception
if path == '/service/test/members/bar':
if value == b'retry':
return
if path == '/service/test/members/bar' and value == b'retry':
return
if path == '/service/test/failover':
if value == b'Exception':
raise Exception
Expand Down

0 comments on commit a767496

Please sign in to comment.