コード例 #1
0
ファイル: test_parser.py プロジェクト: agajews/Obsidian
def test_triple_string_interpolation_single():
    source = r'''
    puts """$greeting"""
    '''
    assert parse(source) == [
        Call(Ident('puts'), [InterpolatedString([Ident('greeting')])])
    ]
コード例 #2
0
ファイル: test_parser.py プロジェクト: agajews/Obsidian
def test_triple_interpolated_string_sigil():
    source = r'''
    r"""hello ${"world"}"""
    '''
    assert parse(source) == [
        InterpolatedString([String('hello ', 'r'),
                            String('world')])
    ]
コード例 #3
0
ファイル: test_parser.py プロジェクト: agajews/Obsidian
def test_triple_string_interpolation_leading_space():
    source = r'''
    puts """  Hello, ${"John"}"""
    '''
    assert parse(source) == [
        Call(Ident('puts'),
             [InterpolatedString([String('  Hello, '),
                                  String('John')])])
    ]
コード例 #4
0
ファイル: test_parser.py プロジェクト: agajews/Obsidian
def test_triple_string_interpolation_empty():
    source = r'''
    puts """Hello${""}!"""
    '''
    assert parse(source) == [
        Call(Ident('puts'),
             [InterpolatedString([String('Hello'),
                                  String(''),
                                  String('!')])])
    ]
コード例 #5
0
ファイル: test_parser.py プロジェクト: agajews/Obsidian
def test_triple_string_interpolation_nested():
    source = r'''
    puts """Hello, ${1 + {2}}"""
    '''
    assert parse(source) == [
        Call(Ident('puts'), [
            InterpolatedString(
                [String('Hello, '),
                 BinarySlurp([Int(1), Ident('+'), Int(2)])])
        ])
    ]
コード例 #6
0
ファイル: test_parser.py プロジェクト: agajews/Obsidian
def test_triple_string_interpolation_two_quotes_before_dollar():
    source = r'''
    puts """Hello, ""${"John"}!"""
    '''
    assert parse(source) == [
        Call(Ident('puts'), [
            InterpolatedString(
                [String('Hello, ""'),
                 String('John'),
                 String('!')])
        ])
    ]
コード例 #7
0
ファイル: test_parser.py プロジェクト: agajews/Obsidian
def test_string_interpolation_single_inner():
    source = r'''
    puts "Hello, $'John'!"
    '''
    assert parse(source) == [
        Call(Ident('puts'), [
            InterpolatedString([
                String('Hello, '),
                String('John'), String('!')
            ])
        ])
    ]
コード例 #8
0
ファイル: test_parser.py プロジェクト: agajews/Obsidian
def test_triple_string_interpolation_call():
    source = r'''
    puts """  Hello, $(last name)  ${  "!" }  """
    '''
    assert parse(source) == [
        Call(Ident('puts'), [
            InterpolatedString([
                String('  Hello, '),
                Call(Ident('last'), [Ident('name')]),
                String('  '),
                String('!'),
                String('  ')
            ])
        ])
    ]
コード例 #9
0
ファイル: test_parser.py プロジェクト: agajews/Obsidian
def test_triple_string_interpolation_compound():
    source = r'''
    puts """  Hello, $name  ${  "!" }  """
    '''
    assert parse(source) == [
        Call(Ident('puts'), [
            InterpolatedString([
                String('  Hello, '),
                Ident('name'),
                String('  '),
                String('!'),
                String('  ')
            ])
        ])
    ]