def xtest_token_query(self): schema = self.schemas['schema1'] dao = SqlAlchemyDAO(connection=self.connection, schema=schema) # Generate data. self.connection.execute( schema['sources']['substrate'].insert(), [{'id': 'S1', 'label': 's1'}] ) tkn1 = {'ID': 'tkn1', 'EXPRESSION': '__substrate__id'} token_registry = {'tkn1': tkn1} query_def = { 'ID': 'test', 'SELECT': [ {'ID': 'tkn_id', 'EXPRESSION': '___TOKENS__tkn1'} ] } dao.execute_queries([query_def], token_registry=token_registry)
def test_keyed_query(self): schema = self.schemas['schema1'] dao = SqlAlchemyDAO(connection=self.connection, schema=schema) key_def = { 'LABEL_ENTITY': { 'ID': 'substrate_name' }, 'QUERY': { 'SELECT': [ {'EXPRESSION': '__substrate__id', 'ID': 'substrate_id'}, {'EXPRESSION': '__substrate__label', 'ID': 'substrate_name'} ] }, 'KEY_ENTITY': { 'ID': 'substrate_id', 'EXPRESSION': '__result__id' } } query_def = { 'GROUP_BY': [], 'FROM': [ { 'SOURCE': { 'GROUP_BY': [ {'ID': 'cell_id'}, {'ID': 'substrate_id'} ], 'WHERE': [ [{'TYPE': 'ENTITY', 'EXPRESSION': '__result__t', 'ID': 't'}, '==', 2] ], 'ID': 'inner', 'SELECT': [ {'EXPRESSION': '__result__cell_id', 'ID': 'cell_id'}, #{'EXPRESSION': '__result__substrate_id', 'ID': 'substrate_id'} {'EXPRESSION': '___TOKENS__KEY', 'ID': 'substrate_id'} ], 'SELECT_GROUP_BY': True }, 'ID': 'inner' }, { 'SOURCE': 'cell', 'JOINS': [ ['inner', [{'TYPE': 'ENTITY', 'EXPRESSION': '__inner__cell_id'}, '==', {'TYPE': 'ENTITY', 'EXPRESSION': '__cell__id'}]] ] }, { 'SOURCE': 'substrate', 'JOINS': [ ['inner', [{'TYPE': 'ENTITY', 'EXPRESSION': '__inner__substrate_id'}, '==', {'TYPE': 'ENTITY', 'EXPRESSION': '__substrate__id'}]] ] } ], 'ID': 'outer', 'SELECT': [ {'EXPRESSION': 'func.sum(__cell__area)', 'ID': 'sum_cell_area'}, {'EXPRESSION': '__substrate__label', 'ID': 'substrate_name'} ] } dao.get_keyed_results(key_def=key_def, query_defs=[query_def])
def __init__(self, session=None, **kwargs): SqlAlchemyDAO.__init__(self, connection=session.connection(), **kwargs) self.session = session