예제 #1
0
def test_token_before_filter():
    query = these((parent, child)
                  for parent in this
                  if parent.children
                  for child in parent.children
                  if child.age < 5
                  for dummy in parent.children)


    parent, child = query.selection
    parent_token, children_token, dummy_token = query.tokens
    expr1, expr2 = query.filters

    def ok(e1, e2):
        with context(UNPROXIFING_CONTEXT):
            assert e1 == e2
    ok(expr1, parent.children)
    ok(expr2, child.age < 5)

    assert UNPROXIFING_CONTEXT not in context
    assert not token_before_filter(children_token, expr1), repr((children_token, expr1, expr2))
    assert token_before_filter(children_token, expr2, True)
    assert token_before_filter(parent_token, expr2, True)
    assert not token_before_filter(dummy_token, expr2, True)
    assert UNPROXIFING_CONTEXT not in context
예제 #2
0
def test_regression_test_token_before_filter_20130401():
    assert UNPROXIFING_CONTEXT not in context
    query = these(who
                  for who in Entity
                  if who.name.starswith('Manuel'))
    is_entity_filter, name_filter = query.filters
    token = query.tokens[0]
    assert len(query.tokens) == 1
    assert token_before_filter(token, is_entity_filter, True)
    assert token_before_filter(token, name_filter, True)