Ejemplo n.º 1
0
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()
Ejemplo n.º 2
0
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()
Ejemplo n.º 3
0
    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, {})
Ejemplo n.º 4
0
    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, {})
Ejemplo n.º 5
0
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()
Ejemplo n.º 6
0
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()