def test_complex_expr(): expr = "not food or (leaves and animals)" assert parse_selection(expr) == ({'food'}, ['leaves', 'animals'])
def test_possible_characters(char): sel = parse_selection("food and a{}".format(char)) assert isinstance(sel, list)
def test_not(terms): expr = 'not ({})'.format(' and '.join(terms)) assert parse_selection(expr) == [{el} for el in terms]
def test_or(terms): expr = ' or '.join(terms) assert parse_selection(expr) == terms
def test_and(terms): expr = ' and '.join(terms) assert parse_selection(expr) == terms
def test_type_operation(expr, typename): sel = parse_selection(expr) assert isinstance(sel, typename)
def test_names(expr): assert parse_selection(expr) == expr