Esempio n. 1
0
 def verify_presto_column(self, column, expected_results):
     inspector = mock.Mock()
     inspector.engine.dialect.identifier_preparer.quote_identifier = mock.Mock()
     keymap = {
         "Column": (None, None, 0),
         "Type": (None, None, 1),
         "Null": (None, None, 2),
     }
     row = RowProxy(mock.Mock(), column, [None, None, None, None], keymap)
     inspector.bind.execute = mock.Mock(return_value=[row])
     results = PrestoEngineSpec.get_columns(inspector, "", "")
     self.assertEqual(len(expected_results), len(results))
     for expected_result, result in zip(expected_results, results):
         self.assertEqual(expected_result[0], result["name"])
         self.assertEqual(expected_result[1], str(result["type"]))
Esempio n. 2
0
    def _rowproxy_fixture(self, keys, processors, row):
        class MockMeta(object):

            def __init__(self):
                pass

        metadata = MockMeta()

        keymap = {}
        for index, (keyobjs, processor, values) in \
                enumerate(list(zip(keys, processors, row))):
            for key in keyobjs:
                keymap[key] = (processor, key, index)
            keymap[index] = (processor, key, index)
        return RowProxy(metadata, row, processors, keymap)
Esempio n. 3
0
 async def fetch_all(self,
                     query: ClauseElement) -> typing.List[typing.Mapping]:
     assert self._connection is not None, "Connection is not acquired"
     query, args, context = self._compile(query)
     cursor = await self._connection.cursor()
     try:
         await cursor.execute(query, args)
         rows = await cursor.fetchall()
         metadata = ResultMetaData(context, cursor.description)
         return [
             RowProxy(metadata, row, metadata._processors, metadata._keymap)
             for row in rows
         ]
     finally:
         await cursor.close()
Esempio n. 4
0
 async def fetch_all(self, query: Union[ClauseElement,
                                        str]) -> List[RowProxy]:
     assert self._connection is not None, "Connection is not acquired"
     query, args, context = self._compile(query)
     async with self._connection.cursor() as cursor:
         if args:
             await cursor.execute(query, *args)
         else:
             await cursor.execute(query)
         rows = await cursor.fetchall()
         metadata: ResultMetaData = ResultMetaData(context,
                                                   cursor.description)
         return [
             RowProxy(metadata, row, metadata._processors, metadata._keymap)
             for row in rows
         ]