def test_basic_queries(self): from xotl.ql.expressions import count query = these((parent.title + parent.name, count(child.toys)) for parent in this('parent') if parent.age < 40 for child in parent.children if child.age > 5) self.assertTrue(provides_any(query, IQueryObject)) (parent_full_name, child_toys) = query.selection full_name_expectation = this('parent').title + this('parent').name # child_name_expectation = this('parent').children.name child_toys_expectation = count(this('parent').children.toys) parent_age_test = this('parent').age < 40 children_age_test = this('parent').children.age > 5 parent_token = this('parent') children_token = this('parent').children with context(UNPROXIFING_CONTEXT): self.assertEqual(parent_full_name, full_name_expectation) # self.assertEqual(child_name, child_name_expectation) self.assertEqual(child_toys, child_toys_expectation) filters = query.filters self.assertEqual(2, len(filters)) self.assertIn(parent_age_test, filters) self.assertIn(children_age_test, filters) tokens = query.tokens self.assertEqual(2, len(tokens)) self.assertIn(parent_token, tokens) self.assertIn(children_token, tokens)
def test_basic_queries(): from xotl.ql.expressions import count query = these((parent.title + parent.name, count(child.toys)) for parent in this('parent') if parent.age < 40 for child in parent.children if child.age > 5) assert provides_any(query, IQueryObject) (parent_full_name, child_toys) = query.selection full_name_expectation = this('parent').title + this('parent').name child_toys_expectation = count(this('parent').children.toys) parent_age_test = this('parent').age < 40 children_age_test = this('parent').children.age > 5 parent_token = this('parent') children_token = this('parent').children with context(UNPROXIFING_CONTEXT): assert parent_full_name == full_name_expectation assert child_toys == child_toys_expectation filters = query.filters assert len(filters) == 2 assert parent_age_test in filters assert children_age_test in filters tokens = [tk.expression for tk in query.tokens] assert len(tokens) == 2 assert parent_token in tokens assert children_token in tokens
def test_most_basic_query(self): query = these(parent for parent in this('parent') if parent.age > 40) self.assertTrue(provides_any(query, IQueryObject)) (p, ) = query.selection token_expectation = p_expected = this('parent') filter_expectation = this('parent').age > 40 with context(UNPROXIFING_CONTEXT): self.assertEqual(p, p_expected) filters = query.filters self.assertEqual(1, len(filters)) self.assertIn(filter_expectation, filters) tokens = query.tokens self.assertEqual(1, len(tokens)) self.assertIn(token_expectation, tuple(tokens))
def test_most_basic_query(): query = these(parent for parent in this('parent') if parent.age > 40) assert provides_any(query, IQueryObject) # Since the query selects a single object, a single object must be # placed as the selection (not a tuple!). p = query.selection token_expectation = p_expected = this('parent') filter_expectation = this('parent').age > 40 with context(UNPROXIFING_CONTEXT): assert p == p_expected filters = query.filters assert len(filters) == 1 assert filter_expectation in filters tokens = [tk.expression for tk in query.tokens] assert len(tokens) == 1 assert token_expectation in tuple(tokens)