예제 #1
0
class TestClient(unittest.TestCase):

    @patch('dns.resolver.query', dns_query)
    @patch('socket.getaddrinfo', socket_getaddrinfo)
    @patch('requests.get', requests_get)
    def setUp(self):
        with patch.object(Client, 'machines') as mock_machines:
            mock_machines.__get__ = Mock(return_value=['http://*****:*****@patch.object(Client, 'machines')
    def test_api_execute(self, mock_machines):
        mock_machines.__get__ = Mock(return_value=['http://*****:*****@patch.object(Client, 'machines')
    def test__load_machines_cache(self, mock_machines):
        mock_machines.__get__ = Mock(return_value=['http://localhost:2379'])
        self.client._config = {}
        self.assertRaises(Exception, self.client._load_machines_cache)
        self.client._config = {'srv': 'blabla'}
        self.assertRaises(etcd.EtcdException, self.client._load_machines_cache)
예제 #2
0
class TestClient(unittest.TestCase):

    @patch('dns.resolver.query', dns_query)
    @patch('requests.get', requests_get)
    def setUp(self):
        with patch.object(Client, 'machines') as mock_machines:
            mock_machines.__get__ = Mock(return_value=['http://*****:*****@patch.object(Client, 'machines')
    def test_api_execute(self, mock_machines):
        mock_machines.__get__ = Mock(return_value=['http://*****:*****@patch.object(Client, 'machines')
    def test__load_machines_cache(self, mock_machines):
        mock_machines.__get__ = Mock(return_value=['http://localhost:2379'])
        self.client._config = {}
        self.assertRaises(Exception, self.client._load_machines_cache)
        self.client._config = {'discovery_srv': 'blabla'}
        self.assertRaises(etcd.EtcdException, self.client._load_machines_cache)
class TestClient(unittest.TestCase):

    @patch('dns.resolver.query', dns_query)
    @patch('requests.get', requests_get)
    def setUp(self):
        with patch.object(etcd.Client, 'machines') as mock_machines:
            mock_machines.__get__ = Mock(return_value=['http://localhost:2379', 'http://localhost:4001'])
            self.client = Client({'discovery_srv': 'test'})
            self.client.http.request = http_request
            self.client.http.request_encode_body = http_request

    def test_api_execute(self):
        self.client._base_uri = 'http://localhost:4001'
        self.client._machines_cache = ['http://localhost:2379']
        self.assertRaises(etcd.EtcdWatchTimedOut, self.client.api_execute, '/timeout', 'POST', params={'wait': 'true'})
        self.client._update_machines_cache = False
        self.client.api_execute('/', 'POST', timeout=0)
        self.client._update_machines_cache = False
        self.client._base_uri = 'http://localhost:4001'
        self.client._machines_cache = []
        self.assertRaises(etcd.EtcdConnectionFailed, self.client.api_execute, '/', 'GET')
        self.assertTrue(self.client._update_machines_cache)
        self.assertRaises(etcd.EtcdException, self.client.api_execute, '/', 'GET')
        self.assertRaises(etcd.EtcdException, self.client.api_execute, '/', '')
        self.assertRaises(ValueError, self.client.api_execute, '', '')

    def test_get_srv_record(self):
        self.assertEquals(self.client.get_srv_record('blabla'), [])
        self.assertEquals(self.client.get_srv_record('exception'), [])

    def test__get_machines_cache_from_srv(self):
        self.client.get_srv_record = Mock(return_value=[('localhost', 2380)])
        self.client._get_machines_cache_from_srv('blabla')

    def test__get_machines_cache_from_dns(self):
        self.client._get_machines_cache_from_dns('error:2379')

    def test__load_machines_cache(self):
        self.client._config = {}
        self.assertRaises(Exception, self.client._load_machines_cache)
        self.client._config = {'discovery_srv': 'blabla'}
        self.assertRaises(etcd.EtcdException, self.client._load_machines_cache)
예제 #4
0
class TestClient(unittest.TestCase):
    @patch('dns.resolver.query', dns_query)
    @patch('socket.getaddrinfo', socket_getaddrinfo)
    @patch('requests.get', requests_get)
    def setUp(self):
        with patch.object(Client, 'machines') as mock_machines:
            mock_machines.__get__ = Mock(return_value=[
                'http://*****:*****@patch.object(Client, 'machines')
    def test_api_execute(self, mock_machines):
        mock_machines.__get__ = Mock(return_value=['http://*****:*****@patch.object(Client, 'machines')
    def test__load_machines_cache(self, mock_machines):
        mock_machines.__get__ = Mock(return_value=['http://*****:*****@patch.object(socket.socket, 'connect')
    def test_create_connection_patched(self, mock_connect):
        self.assertRaises(socket.error,
                          urllib3.util.connection.create_connection,
                          ('fail', 2379))
        urllib3.util.connection.create_connection(('[localhost]', 2379))
        mock_connect.side_effect = socket.error
        self.assertRaises(socket.error,
                          urllib3.util.connection.create_connection,
                          ('[localhost]', 2379),
                          timeout=1,
                          source_address=('localhost', 53333),
                          socket_options=[(socket.SOL_SOCKET,
                                           socket.SO_REUSEADDR, 1)])