def test_sq_range(): p = default.QueryParser("t", None, [ plugins.WhitespacePlugin(), plugins.SingleQuotePlugin(), plugins.RangePlugin() ]) assert repr(p.process("['a b' to ']']")) == "<AndGroup <None:['a b' ']']>>"
def test_range(): p = default.QueryParser("t", None, [plugins.WhitespacePlugin(), plugins.RangePlugin()]) ns = p.tag("a [b to c} d") assert_equal(repr(ns), "<AndGroup <None:'a'>, < >, <None:['b' 'c'}>, < >, <None:'d'>>") assert_equal(repr(p.process("a {b to]")), "<AndGroup <None:'a'>, <None:{'b' None]>>") assert_equal(repr(p.process("[to c] d")), "<AndGroup <None:[None 'c']>, <None:'d'>>") assert_equal(repr(p.process("[to]")), "<AndGroup <None:[None None]>>")
def default_set(self): """Returns the default list of plugins to use. """ from whoosh.qparser import plugins return [plugins.WhitespacePlugin(), plugins.SingleQuotePlugin(), plugins.FieldsPlugin(), plugins.WildcardPlugin(), plugins.PhrasePlugin(), plugins.RangePlugin(), plugins.GroupPlugin(), plugins.OperatorsPlugin(), plugins.BoostPlugin(), plugins.EveryPlugin(), ]
def test_groups_with_range(): p = default.QueryParser("t", None, [ plugins.FieldsPlugin(), plugins.GtLtPlugin(), plugins.GroupPlugin(), plugins.OperatorsPlugin(), plugins.PhrasePlugin(), plugins.RangePlugin(), plugins.RegexPlugin() ]) ns = p.process('a:b OR e:>=5 g:<6') assert repr( ns ) == "<AndGroup <OrGroup <'a':'b'>, <'e':['5' None]>>, <'g':[None '6'}>>" ns = p.process('a:b OR (e:>=5 g:<6)') assert repr( ns ) == "<AndGroup <OrGroup <'a':'b'>, <AndGroup <'e':['5' None]>, <'g':[None '6'}>>>>"