コード例 #1
0
class TestAWSConnection(unittest.TestCase):
    @patch('requests.get', requests_get)
    def setUp(self):
        self.conn = AWSConnection('test')

    def test_on_role_change(self):
        self.assertTrue(self.conn.on_role_change('master'))
        with patch.object(MockEc2Connection, 'get_all_volumes',
                          Mock(return_value=[])):
            self.conn._retry.max_tries = 1
            self.assertFalse(self.conn.on_role_change('master'))

    @patch('requests.get', Mock(side_effect=RequestException('foo')))
    def test_non_aws(self):
        conn = AWSConnection('test')
        self.assertFalse(conn.on_role_change("master"))

    @patch('requests.get', Mock(return_value=MockResponse('foo')))
    def test_aws_bizare_response(self):
        conn = AWSConnection('test')
        self.assertFalse(conn.aws_available())

    @patch('requests.get', requests_get)
    @patch('sys.exit', Mock())
    def test_main(self):
        self.assertIsNone(_main())
        sys.argv = ['aws.py', 'on_start', 'replica', 'foo']
        self.assertIsNone(_main())
コード例 #2
0
class TestAWSConnection(unittest.TestCase):

    @patch('patroni.scripts.aws.requests_get', Mock(return_value=urllib3.HTTPResponse(
        status=200, body=b'{"instanceId": "012345", "region": "eu-west-1"}')))
    def setUp(self):
        self.conn = AWSConnection('test')

    def test_on_role_change(self):
        self.assertTrue(self.conn.on_role_change('master'))
        with patch.object(MockVolumes, 'filter', Mock(return_value=[])):
            self.conn._retry.max_tries = 1
            self.assertFalse(self.conn.on_role_change('master'))

    @patch('patroni.scripts.aws.requests_get', Mock(side_effect=Exception('foo')))
    def test_non_aws(self):
        conn = AWSConnection('test')
        self.assertFalse(conn.on_role_change("master"))

    @patch('patroni.scripts.aws.requests_get', Mock(return_value=urllib3.HTTPResponse(status=200, body=b'foo')))
    def test_aws_bizare_response(self):
        conn = AWSConnection('test')
        self.assertFalse(conn.aws_available())

    @patch('patroni.scripts.aws.requests_get', Mock(return_value=urllib3.HTTPResponse(status=503, body=b'Error')))
    @patch('sys.exit', Mock())
    def test_main(self):
        self.assertIsNone(_main())
        sys.argv = ['aws.py', 'on_start', 'replica', 'foo']
        self.assertIsNone(_main())
コード例 #3
0
ファイル: test_aws.py プロジェクト: jberkus/patroni
class TestAWSConnection(unittest.TestCase):

    @patch('requests.get', requests_get)
    def setUp(self):
        self.conn = AWSConnection('test')

    def test_on_role_change(self):
        self.assertTrue(self.conn.on_role_change('master'))
        with patch.object(MockEc2Connection, 'get_all_volumes', Mock(return_value=[])):
            self.conn._retry.max_tries = 1
            self.assertFalse(self.conn.on_role_change('master'))

    @patch('requests.get', Mock(side_effect=RequestException('foo')))
    def test_non_aws(self):
        conn = AWSConnection('test')
        self.assertFalse(conn.on_role_change("master"))

    @patch('requests.get', Mock(return_value=MockResponse('foo')))
    def test_aws_bizare_response(self):
        conn = AWSConnection('test')
        self.assertFalse(conn.aws_available())

    @patch('requests.get', requests_get)
    @patch('sys.exit', Mock())
    def test_main(self):
        self.assertIsNone(_main())
        sys.argv = ['aws.py', 'on_start', 'replica', 'foo']
        self.assertIsNone(_main())
コード例 #4
0
ファイル: test_aws.py プロジェクト: valeriap/patroni
class TestAWSConnection(unittest.TestCase):

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

    def requests_get(self, url, **kwargs):
        if self.error:
            raise RequestException("foo")
        result = namedtuple('Request', 'ok content')
        result.ok = True
        if url.split('/')[-1] == 'document' and not self.json_error:
            result = {"instanceId": "012345", "region": "eu-west-1"}
        else:
            result = 'foo'
        return MockResponse(result)

    def setUp(self):
        self.error = False
        self.json_error = False
        requests.get = self.requests_get
        boto.ec2.connect_to_region = self.boto_ec2_connect_to_region
        self.conn = AWSConnection('test')

    def test_aws_available(self):
        self.assertTrue(self.conn.aws_available())

    def test_on_role_change(self):
        self.assertTrue(self.conn.on_role_change('master'))
        self.conn.retry = Mock(side_effect=RetryFailedError("retry failed"))
        self.assertFalse(self.conn.on_role_change('master'))

    def test_non_aws(self):
        self.error = True
        conn = AWSConnection('test')
        self.assertFalse(conn.on_role_change("master"))

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

    @patch('sys.exit', Mock())
    def test_main(self):
        self.assertIsNone(_main())
        sys.argv = ['aws.py', 'on_start', 'replica', 'foo']
        self.assertIsNone(_main())
コード例 #5
0
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)

    def requests_get(self, url, **kwargs):
        if self.error:
            raise RequestException("foo")
        result = namedtuple('Request', 'ok content')
        result.ok = True
        if url.split('/')[-1] == 'document' and not self.json_error:
            result = {"instanceId": "012345", "region": "eu-west-1"}
        else:
            result = 'foo'
        return MockResponse(result)

    def setUp(self):
        self.error = False
        self.json_error = False
        requests.get = self.requests_get
        boto.ec2.connect_to_region = self.boto_ec2_connect_to_region
        self.conn = AWSConnection('test')

    def test_aws_available(self):
        self.assertTrue(self.conn.aws_available())

    def test_on_role_change(self):
        self.assertTrue(self.conn._tag_ebs('master'))
        self.assertTrue(self.conn._tag_ec2('master'))
        self.assertTrue(self.conn.on_role_change('master'))

    def test_non_aws(self):
        self.set_error()
        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()
        conn = AWSConnection('test')
        self.assertFalse(conn.aws_available())

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

    def test_aws_tag_ec2_error(self):
        self.set_error()
        self.assertFalse(self.conn._tag_ec2("master"))
コード例 #6
0
ファイル: test_aws.py プロジェクト: perlchild/patroni-compose
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)

    def requests_get(self, url, **kwargs):
        if self.error:
            raise RequestException("foo")
        result = namedtuple('Request', 'ok content')
        result.ok = True
        if url.split('/')[-1] == 'document' and not self.json_error:
            result = {"instanceId": "012345", "region": "eu-west-1"}
        else:
            result = 'foo'
        return MockResponse(result)

    def setUp(self):
        self.error = False
        self.json_error = False
        requests.get = self.requests_get
        boto.ec2.connect_to_region = self.boto_ec2_connect_to_region
        self.conn = AWSConnection('test')

    def test_aws_available(self):
        self.assertTrue(self.conn.aws_available())

    def test_on_role_change(self):
        self.assertTrue(self.conn._tag_ebs('master'))
        self.assertTrue(self.conn._tag_ec2('master'))
        self.assertTrue(self.conn.on_role_change('master'))

    def test_non_aws(self):
        self.set_error()
        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()
        conn = AWSConnection('test')
        self.assertFalse(conn.aws_available())

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

    def test_aws_tag_ec2_error(self):
        self.set_error()
        self.assertFalse(self.conn._tag_ec2("master"))
コード例 #7
0
ファイル: test_aws.py プロジェクト: Jollyturns/patroni
class TestAWSConnection(unittest.TestCase):

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

    def requests_get(self, url, **kwargs):
        if self.error:
            raise RequestException("foo")
        result = namedtuple('Request', 'ok content')
        result.ok = True
        if url.split('/')[-1] == 'document' and not self.json_error:
            result = {"instanceId": "012345", "region": "eu-west-1"}
        else:
            result = 'foo'
        return MockResponse(result)

    def setUp(self):
        self.error = False
        self.json_error = False
        requests.get = self.requests_get
        boto.ec2.connect_to_region = self.boto_ec2_connect_to_region
        self.conn = AWSConnection('test')

    def test_aws_available(self):
        self.assertTrue(self.conn.aws_available())

    def test_on_role_change(self):
        self.assertTrue(self.conn._tag_ebs('master'))
        self.assertTrue(self.conn._tag_ec2('master'))
        self.assertTrue(self.conn.on_role_change('master'))

    def test_non_aws(self):
        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.json_error = True
        conn = AWSConnection('test')
        self.assertFalse(conn.aws_available())

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

    def test_aws_tag_ec2_error(self):
        self.error = True
        self.assertFalse(self.conn._tag_ec2("master"))

    @patch('sys.exit', Mock())
    def test_main(self):
        self.assertIsNone(_main())
        sys.argv = ['aws.py', 'on_start', 'replica', 'foo']
        self.assertIsNone(_main())
コード例 #8
0
 def setUp(self):
     self.conn = AWSConnection('test')
コード例 #9
0
ファイル: test_aws.py プロジェクト: jberkus/patroni
 def test_aws_bizare_response(self):
     conn = AWSConnection('test')
     self.assertFalse(conn.aws_available())
コード例 #10
0
ファイル: test_aws.py プロジェクト: jberkus/patroni
 def test_non_aws(self):
     conn = AWSConnection('test')
     self.assertFalse(conn.on_role_change("master"))
コード例 #11
0
ファイル: test_aws.py プロジェクト: jberkus/patroni
 def setUp(self):
     self.conn = AWSConnection('test')
コード例 #12
0
ファイル: test_aws.py プロジェクト: perlchild/patroni-compose
 def test_aws_bizare_response(self):
     self.set_json_error()
     conn = AWSConnection('test')
     self.assertFalse(conn.aws_available())
 def test_non_aws(self):
     self.error = True
     conn = AWSConnection('test')
     self.assertFalse(conn.aws_available())
     self.assertFalse(conn._tag_ebs('master'))
     self.assertFalse(conn._tag_ec2('master'))
コード例 #14
0
ファイル: test_aws.py プロジェクト: Jollyturns/patroni
 def setUp(self):
     self.error = False
     self.json_error = False
     requests.get = self.requests_get
     boto.ec2.connect_to_region = self.boto_ec2_connect_to_region
     self.conn = AWSConnection('test')
コード例 #15
0
 def test_aws_bizare_response(self):
     self.set_json_error()
     conn = AWSConnection('test')
     self.assertFalse(conn.aws_available())
コード例 #16
0
 def test_non_aws(self):
     conn = AWSConnection('test')
     self.assertFalse(conn.on_role_change("master"))
コード例 #17
0
 def test_aws_bizare_response(self):
     conn = AWSConnection('test')
     self.assertFalse(conn.aws_available())
コード例 #18
0
ファイル: test_aws.py プロジェクト: valeriap/patroni
 def setUp(self):
     self.error = False
     self.json_error = False
     requests.get = self.requests_get
     boto.ec2.connect_to_region = self.boto_ec2_connect_to_region
     self.conn = AWSConnection('test')