예제 #1
0
def test_complex_expr():
    expr = "not food or (leaves and animals)"
    assert parse_selection(expr) == ({'food'}, ['leaves', 'animals'])
예제 #2
0
def test_possible_characters(char):
    sel = parse_selection("food and a{}".format(char))
    assert isinstance(sel, list)
예제 #3
0
def test_not(terms):
    expr = 'not ({})'.format(' and '.join(terms))
    assert parse_selection(expr) == [{el} for el in terms]
예제 #4
0
def test_or(terms):
    expr = ' or '.join(terms)
    assert parse_selection(expr) == terms
예제 #5
0
def test_and(terms):
    expr = ' and '.join(terms)
    assert parse_selection(expr) == terms
예제 #6
0
def test_type_operation(expr, typename):
    sel = parse_selection(expr)
    assert isinstance(sel, typename)
예제 #7
0
def test_names(expr):
    assert parse_selection(expr) == expr