def test_mult(): s = "1024x768" rule = wg.context["mult"] out, i = rule.accept(s, 4, wg.context) assert out == compat.unichr(215) s = "Up to 3x faster" rule = wg.context["mult"] out, i = rule.accept(s, 7, wg.context) assert out == compat.unichr(215) s = "Up to 3x faster" rule = wg.context["para"] out, i = rule.accept(s, 0, wg.context) assert out == {"type": "para", "indent": 0, "text": [u"Up to 3", u"\u00d7", u" faster"]} from bookish.grammars.wiki import mult, para from bookish.parser import condition_string from bookish.parser.bootstrap import bootstrap_context s = condition_string(s) ctx = bootstrap_context() out, i = mult(s, 7, ctx) assert out is not p.Miss assert out == compat.unichr(215) out, i = para(s, 0, ctx) assert out == {"type": "para", "indent": 0, "text": [u"Up to 3", u"\u00d7", u" faster"]}
def parse_string(src): from bookish.grammars.wiki import grammar src = condition_string(src) ctx = bootstrap_context() out, i = grammar(src, 0, ctx) assert out is not Miss jsondata = {"type": "root", "body": out, "attrs": {}} return jsondata