def setUp(self): with patch.object(EtcdClient, 'machines') as mock_machines: mock_machines.__get__ = Mock(return_value=[ 'http://localhost:2379', 'http://localhost:4001' ]) self.client = EtcdClient({ 'srv': 'test', 'retry_timeout': 3 }, DnsCachingResolver()) self.client.http.request = http_request self.client.http.request_encode_body = http_request
class TestClient(unittest.TestCase): @patch('dns.resolver.query', dns_query) @patch('socket.getaddrinfo', socket_getaddrinfo) @patch('patroni.dcs.etcd.requests_get', requests_get) def setUp(self): with patch.object(EtcdClient, 'machines') as mock_machines: mock_machines.__get__ = Mock(return_value=[ 'http://*****:*****@patch.object(EtcdClient, 'machines') def test_api_execute(self, mock_machines): mock_machines.__get__ = Mock( return_value=['http://*****:*****@patch.object(EtcdClient, 'machines') def test__refresh_machines_cache(self, mock_machines): mock_machines.__get__ = Mock(side_effect=etcd.EtcdConnectionFailed) self.assertIsNone(self.client._refresh_machines_cache()) self.assertRaises(etcd.EtcdException, self.client._refresh_machines_cache, True) def test__load_machines_cache(self): 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) @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)]) def test___del__(self): self.client.http.clear = Mock(side_effect=TypeError) del self.client