def test_expr(self): for text, node in ( ('$a', _SimpleExpression('a', '$a')), ('$a1', _SimpleExpression('a1', '$a1')), ('${ab}', _SimpleExpression('ab', '${ab}')), ('${ab:-}', _Expression('ab', ':', '-', [], '${ab:-}')), ('${ab:-${foo}}', _Expression('ab', ':', '-', [_SimpleExpression('foo', '${foo}')], '${ab:-${foo}}')), ('${ab:-${cd:-${foo}}}', _Expression( 'ab', ':', '-', [_Expression( 'cd', ':', '-', [_SimpleExpression('foo', '${foo}')], '${cd:-${foo}}'), ], '${ab:-${cd:-${foo}}}')), ): g = _grammar(text) self.expectThat(g.expr(), Equals(node)) for notname in ('1', ' ', '{'): g = _grammar(notname) self.expectThat(g.expr, Raises())
def test_string(self): for text, nodes in ( ('', []), ('1', [_Literal('1')]), ('$1', [_Literal('$1')]), ('1$a', [_Literal('1'), _SimpleExpression('a', '$a')]), ('1$a$b', [ _Literal('1'), _SimpleExpression('a', '$a'), _SimpleExpression('b', '$b')]), ('1$a2$b3', [ _Literal('1'), _SimpleExpression('a2', '$a2'), _SimpleExpression('b3', '$b3')]), ('1$a 2$b 3', [ _Literal('1'), _SimpleExpression('a', '$a'), _Literal(' 2'), _SimpleExpression('b', '$b'), _Literal(' 3')]), ('1${ab:-${cd:-${foo}}}2', [ _Literal('1'), _Expression( 'ab', ':', '-', [_Expression( 'cd', ':', '-', [_SimpleExpression('foo', '${foo}')], '${cd:-${foo}}'), ], '${ab:-${cd:-${foo}}}'), _Literal('2'), ]), ): g = _grammar(text) self.expectThat(g.string(), Equals(nodes))
def test_expr(self): for text, node in ( ('$a', _SimpleExpression('a', '$a')), ('$a1', _SimpleExpression('a1', '$a1')), ('${ab}', _SimpleExpression('ab', '${ab}')), ('${ab:-}', _Expression('ab', ':', '-', [], '${ab:-}')), ('${ab:-${foo}}', _Expression('ab', ':', '-', [_SimpleExpression('foo', '${foo}')], '${ab:-${foo}}')), ('${ab:-${cd:-${foo}}}', _Expression('ab', ':', '-', [ _Expression('cd', ':', '-', [_SimpleExpression('foo', '${foo}')], '${cd:-${foo}}'), ], '${ab:-${cd:-${foo}}}')), ): g = _grammar(text) self.expectThat(g.expr(), Equals(node)) for notname in ('1', ' ', '{'): g = _grammar(notname) self.expectThat(g.expr, Raises())
def test_string(self): for text, nodes in ( ('', []), ('1', [_Literal('1')]), ('$1', [_Literal('$1')]), ('1$a', [_Literal('1'), _SimpleExpression('a', '$a')]), ('1$a$b', [ _Literal('1'), _SimpleExpression('a', '$a'), _SimpleExpression('b', '$b') ]), ('1$a2$b3', [ _Literal('1'), _SimpleExpression('a2', '$a2'), _SimpleExpression('b3', '$b3') ]), ('1$a 2$b 3', [ _Literal('1'), _SimpleExpression('a', '$a'), _Literal(' 2'), _SimpleExpression('b', '$b'), _Literal(' 3') ]), ('1${ab:-${cd:-${foo}}}2', [ _Literal('1'), _Expression('ab', ':', '-', [ _Expression('cd', ':', '-', [_SimpleExpression('foo', '${foo}')], '${cd:-${foo}}'), ], '${ab:-${cd:-${foo}}}'), _Literal('2'), ]), ): g = _grammar(text) self.expectThat(g.string(), Equals(nodes))