Exemple #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)
    def test_in_uk_body(self):
        for data_only in [True, False]:
            with self.subTest(data_only=data_only):
                model = get_model('''\
*** Keywords ***
Example
    BREAK''', data_only=data_only)
                node = model.sections[0].body[0].body[0]
                expected = Break(
                    [Token(Token.BREAK, 'BREAK', 3, 4)],
                    errors=('BREAK can only be used inside a loop.',)
                )
                remove_non_data_nodes_and_assert(node, expected, data_only)
    def test_in_try_test_case_body(self):
        for data_only in [True, False]:
            with self.subTest(data_only=data_only):
                model = get_model('''\
*** Test Cases ***
Example
    TRY    
        BREAK
    EXCEPT
        no operation
    END''', data_only=data_only)
                node = model.sections[0].body[0].body[0].body[0]
                expected = Break(
                    [Token(Token.BREAK, 'BREAK', 4, 8)],
                    errors=('BREAK can only be used inside a loop.',)
                )
                remove_non_data_nodes_and_assert(node, expected, data_only)
    def test_in_finally_inside_loop(self):
        for data_only in [True, False]:
            with self.subTest(data_only=data_only):
                model = get_model('''\
*** Test Cases ***
Example
    WHILE    True
        TRY    
            Fail
        EXCEPT
            no operation
        FINALLY
           BREAK
        END     
    END''', data_only=data_only)
                node = model.sections[0].body[0].body[0].body[0].next.next.body[0]
                expected = Break(
                    [Token(Token.BREAK, 'BREAK', 9, 11)],
                    errors=('BREAK cannot be used in FINALLY branch.',)
                )
                remove_non_data_nodes_and_assert(node, expected, data_only)
Exemple #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)