def test_http_call_failed(self, mock_conn, mock_presto_config): client = PrestoClient('any_host', 'any_user') mock_conn.side_effect = HTTPException("Error") self.assertFalse(client.run_sql("any_sql")) mock_conn.side_effect = socket.error("Error") self.assertFalse(client.run_sql("any_sql"))
def test_default_request_called(self, mock_conn, mock_presto_config): client = PrestoClient('any_host', 'any_user') headers = {"X-Presto-Catalog": "hive", "X-Presto-Schema": "default", "X-Presto-User": '******', "X-Presto-Source": "presto-admin"} client.run_sql("any_sql") mock_conn.assert_called_with('any_host', 8080, False, URL_TIMEOUT_MS) mock_conn().request.assert_called_with("POST", "/v1/statement", "any_sql", headers) self.assertTrue(mock_conn().getresponse.called)
def testrun_sql_get_port(self, sudo_mock, conn_mock, mock_presto_config): client = PrestoClient('any_host', 'any_user') client.rows = ['hello'] client.next_uri = 'hello' client.response_from_server = {'hello': 'hello'} sudo_mock.return_value = _AttributeString('http-server.http.port=8080') sudo_mock.return_value.failed = False sudo_mock.return_value.return_code = 0 client.run_sql('select * from nation') self.assertEqual(client.port, 8080) self.assertEqual(client.rows, []) self.assertEqual(client.next_uri, '') self.assertEqual(client.response_from_server, {})
def test_default_request_called(self, mock_conn, mock_presto_config): client = PrestoClient('any_host', 'any_user') headers = { "X-Presto-Catalog": "hive", "X-Presto-Schema": "default", "X-Presto-User": '******', "X-Presto-Source": "presto-admin" } client.run_sql("any_sql") mock_conn.assert_called_with('any_host', 8080, False, URL_TIMEOUT_MS) mock_conn().request.assert_called_with("POST", "/v1/statement", "any_sql", headers) self.assertTrue(mock_conn().getresponse.called)
def test_http_answer_valid(self, mock_response, mock_request, mock_presto_config): client = PrestoClient('any_host', 'any_user') mock_response.return_value.read.return_value = '{}' type(mock_response.return_value).status = \ PropertyMock(return_value=200) self.assertEquals(client.run_sql('any_sql'), [])
def test_connection_failed(self, mock_conn, mock_presto_config): client = PrestoClient('any_host', 'any_user') client.run_sql("any_sql") self.assertTrue(mock_conn().close.called) self.assertFalse(client.run_sql("any_sql"))