Example #1
0
    def test_break(self):
        model = get_model('''\
*** Keywords ***
Name
    WHILE    True
        Break    BREAK
        BREAK
    END
''',
                          data_only=True)
        expected = KeywordSection(
            header=SectionHeader(
                tokens=[Token(Token.KEYWORD_HEADER, '*** Keywords ***', 1, 0)
                        ]),
            body=[
                Keyword(
                    header=KeywordName(
                        tokens=[Token(Token.KEYWORD_NAME, 'Name', 2, 0)]),
                    body=[
                        While(header=WhileHeader([
                            Token(Token.WHILE, 'WHILE', 3, 4),
                            Token(Token.ARGUMENT, 'True', 3, 13)
                        ]),
                              body=[
                                  KeywordCall([
                                      Token(Token.KEYWORD, 'Break', 4, 8),
                                      Token(Token.ARGUMENT, 'BREAK', 4, 17)
                                  ]),
                                  Break([Token(Token.BREAK, 'BREAK', 5, 8)])
                              ],
                              end=End([Token(Token.END, 'END', 6, 4)]))
                    ],
                )
            ])
        assert_model(model.sections[0], expected)
Example #2
0
    def test_invalid(self):
        data = '''
*** Test Cases ***
Example
    WHILE    too    many    values
        # Empty body
    END
'''
        expected = While(header=WhileHeader(
            tokens=[
                Token(Token.WHILE, 'WHILE', 3, 4),
                Token(Token.ARGUMENT, 'too', 3, 13),
                Token(Token.ARGUMENT, 'many', 3, 20),
                Token(Token.ARGUMENT, 'values', 3, 28)
            ],
            errors=('WHILE cannot have more than one condition.', )),
                         end=End([Token(Token.END, 'END', 5, 4)]),
                         errors=('WHILE loop cannot be empty.', ))
        get_and_assert_model(data, expected)
Example #3
0
    def test_valid(self):
        data = '''
*** Test Cases ***
Example
    WHILE    True
        Log    ${x}
    END
'''
        expected = While(header=WhileHeader([
            Token(Token.WHILE, 'WHILE', 3, 4),
            Token(Token.ARGUMENT, 'True', 3, 13),
        ]),
                         body=[
                             KeywordCall([
                                 Token(Token.KEYWORD, 'Log', 4, 8),
                                 Token(Token.ARGUMENT, '${x}', 4, 15)
                             ])
                         ],
                         end=End([Token(Token.END, 'END', 5, 4)]))
        get_and_assert_model(data, expected)
Example #4
0
    def test_header_parsing(self):
        model = get_model('''\
*** Test Cases ***
Example
    WHILE    True    limit=100
        Log    ${x}
    END
''',
                          data_only=False)
        header = model.sections[0].body[0].body[0].header
        expected = WhileHeader([
            Token(Token.SEPARATOR, '    ', 3, 0),
            Token(Token.WHILE, 'WHILE', 3, 4),
            Token(Token.SEPARATOR, '    ', 3, 9),
            Token(Token.ARGUMENT, 'True', 3, 13),
            Token(Token.SEPARATOR, '    ', 3, 17),
            Token(Token.OPTION, 'limit=100', 3, 21),
            Token(Token.EOL, '\n', 3, 30),
        ])
        assert_model(header, expected)
Example #5
0
    def test_break(self):
        data = '''
*** Keywords ***
Name
    WHILE    True
        Break    BREAK
        BREAK
    END
'''
        expected = While(header=WhileHeader([
            Token(Token.WHILE, 'WHILE', 3, 4),
            Token(Token.ARGUMENT, 'True', 3, 13)
        ]),
                         body=[
                             KeywordCall([
                                 Token(Token.KEYWORD, 'Break', 4, 8),
                                 Token(Token.ARGUMENT, 'BREAK', 4, 17)
                             ]),
                             Break([Token(Token.BREAK, 'BREAK', 5, 8)])
                         ],
                         end=End([Token(Token.END, 'END', 6, 4)]))
        get_and_assert_model(data, expected)
Example #6
0
    def test_valid(self):
        model = get_model('''\
*** Test Cases ***
Example
    WHILE    True
        Log    ${x}
    END
''',
                          data_only=True)
        loop = model.sections[0].body[0].body[0]
        expected = While(header=WhileHeader([
            Token(Token.WHILE, 'WHILE', 3, 4),
            Token(Token.ARGUMENT, 'True', 3, 13),
        ]),
                         body=[
                             KeywordCall([
                                 Token(Token.KEYWORD, 'Log', 4, 8),
                                 Token(Token.ARGUMENT, '${x}', 4, 15)
                             ])
                         ],
                         end=End([Token(Token.END, 'END', 5, 4)]))
        assert_model(loop, expected)