class QueryInspectionTest(unittest.TestCase): def setUp(self): class Root(Node): attr = 'value' query = Q.attr + Q.attr def my_action(self): pass self.env = Env(Root()) self.env_insp = Inspector(self.env) self.node_insp = Inspector(Root()) def test_has_query(self): self.assertEqual(self.env_insp.has_query('query'), True) self.assertEqual(self.env_insp.has_query('not_a_query'), False) self.assertEqual(self.node_insp.has_query('query'), True) self.assertEqual(self.node_insp.has_query('not_a_query'), False) def test_get_query(self): self.assertIsInstance(self.node_insp.get_query('query'), Action) self.assertRaises(AttributeError, self.node_insp.get_query, 'not_a_query') def test_trace_query(self): # trace_query is private because it's for internal use. (In the # shell.) result = self.env_insp.trace_query('query') self.assertIsInstance(result, QueryResult) self.assertEqual(result.result, 'valuevalue')
def run(): yield termcolor.colored(' Node: ', 'cyan') + \ termcolor.colored(Inspector(self.node).get_full_name(), 'yellow') yield termcolor.colored(' Filename: ', 'cyan') + \ termcolor.colored(query._filename, 'yellow') yield termcolor.colored(' Line: ', 'cyan') + \ termcolor.colored(query._line, 'yellow') yield termcolor.colored(' Expression: ', 'cyan') + \ termcolor.colored(repr(query.query), 'yellow') yield '' # Execute query in sandboxed environment. yield 'Trace query:' try: insp = Inspector(self._get_env()) result = insp.trace_query(self.attr_name) except Exception, e: yield 'Failed to execute query: %r' % e return
def run(): yield termcolor.colored(' Node: ', 'cyan') + \ termcolor.colored(Inspector(self.node).get_full_name(), 'yellow') yield termcolor.colored(' Filename: ', 'cyan') + \ termcolor.colored(query._filename, 'yellow') yield termcolor.colored(' Line: ', 'cyan') + \ termcolor.colored(query._line, 'yellow') yield termcolor.colored(' Expression: ', 'cyan') + \ termcolor.colored(repr(query.query), 'yellow') yield '' # Execute query in sandboxed environment. yield 'Trace query:' try: insp = Inspector(self._get_env()) result = insp.trace_query(self.attr_name) except Exception as e: yield 'Failed to execute query: %r' % e return # Print query and all subqueries with their results. for subquery in result.walk_through_subqueries(): yield termcolor.colored(repr(subquery[0]), 'cyan') yield ' %s' % subquery[1]
def run(): yield termcolor.colored(' Node: ', 'cyan') + \ termcolor.colored(Inspector(self.node).get_full_name(), 'yellow') yield termcolor.colored(' Filename: ', 'cyan') + \ termcolor.colored(query._filename, 'yellow') yield termcolor.colored(' Line: ', 'cyan') + \ termcolor.colored(query._line, 'yellow') yield termcolor.colored(' Expression: ', 'cyan') + \ termcolor.colored(repr(query.query), 'yellow') yield '' # Execute query in sandboxed environment. yield 'Trace query:' try: insp = Inspector(self._get_env()) result = insp.trace_query(self.attr_name) except Exception as e: yield 'Failed to execute query: %r' % e return # Print query and all subqueries with their results. for subquery in result.walk_through_subqueries(): yield termcolor.colored(repr(subquery[0]), 'cyan') yield ' %s' % subquery[1]