Example #1
0
 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())
Example #2
0
 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))
Example #3
0
 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())
Example #4
0
 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))