def buildExpression(filter, fields): """ Convert the supplied calendar-query into an expression tree. @param filter: the L{Filter} for the calendar-query to convert. @return: a L{baseExpression} for the expression tree. """ # Lets assume we have a valid filter from the outset. # Top-level filter contains exactly one comp-filter element assert filter.child is not None vcalfilter = filter.child assert isinstance(vcalfilter, ComponentFilter) assert vcalfilter.filter_name == "VCALENDAR" if len(vcalfilter.filters) > 0: # Determine logical expression grouping logical = expression.andExpression if vcalfilter.filter_test == "allof" else expression.orExpression # Only comp-filters are handled for _ignore in [x for x in vcalfilter.filters if not isinstance(x, ComponentFilter)]: raise ValueError return compfilterListExpression(vcalfilter.filters, fields, logical) else: return expression.allExpression()
def buildExpression(filter, fields): """ Convert the supplied calendar-query into an expression tree. @param filter: the L{Filter} for the calendar-query to convert. @return: a L{baseExpression} for the expression tree. """ # Lets assume we have a valid filter from the outset. # Top-level filter contains exactly one comp-filter element assert filter.child is not None vcalfilter = filter.child assert isinstance(vcalfilter, ComponentFilter) assert vcalfilter.filter_name == "VCALENDAR" if len(vcalfilter.filters) > 0: # Determine logical expression grouping logical = expression.andExpression if vcalfilter.filter_test == "allof" else expression.orExpression # Only comp-filters are handled for _ignore in [ x for x in vcalfilter.filters if not isinstance(x, ComponentFilter) ]: raise ValueError return compfilterListExpression(vcalfilter.filters, fields, logical) else: return expression.allExpression()
def test_all_query(self): expr = expression.allExpression() resource = self.FakeHomeChild() select, args = SQLQueryGenerator(expr, resource, resource.id()).generate() self.assertEqual(select.toSQL(), SQLFragment("select distinct RESOURCE_NAME, ICALENDAR_UID from CALENDAR_OBJECT where CALENDAR_RESOURCE_ID = ?", [1234])) self.assertEqual(args, {})
def test_all_query(self): expr = expression.allExpression() resource = self.FakeHomeChild() select, args = SQLQueryGenerator(expr, resource, resource.id()).generate() self.assertEqual( select.toSQL(), SQLFragment( "select distinct RESOURCE_NAME, ICALENDAR_UID from CALENDAR_OBJECT where CALENDAR_RESOURCE_ID = ?", [1234])) self.assertEqual(args, {})
def buildExpression(filter, fields): """ Convert the supplied addressbook-query into an expression tree. @param filter: the L{Filter} for the addressbook-query to convert. @return: a L{baseExpression} for the expression tree. """ # Lets assume we have a valid filter from the outset. # Top-level filter contains zero or more prop-filter element if len(filter.children) > 0: return propfilterListExpression(filter.children, fields) else: return expression.allExpression()