Пример #1
0
    def test_continue(self):
        model = get_model('''\
*** Keywords ***
Name
    FOR    ${x}    IN    @{stuff}
        Continue    CONTINUE
        CONTINUE
    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=[
                        For(
                            header=ForHeader([Token(Token.FOR, 'FOR', 3, 4),
                                              Token(Token.VARIABLE, '${x}', 3, 11),
                                              Token(Token.FOR_SEPARATOR, 'IN', 3, 19),
                                              Token(Token.ARGUMENT, '@{stuff}', 3, 25)]),
                            body=[KeywordCall([Token(Token.KEYWORD, 'Continue', 4, 8),
                                               Token(Token.ARGUMENT, 'CONTINUE', 4, 20)]),
                                  Continue([Token(Token.CONTINUE, 'CONTINUE', 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
    CONTINUE''', data_only=data_only)
                node = model.sections[0].body[0].body[0]
                expected = Continue(
                    [Token(Token.CONTINUE, 'CONTINUE', 3, 4)],
                    errors=('CONTINUE 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    
        CONTINUE
    EXCEPT
        no operation
    END''', data_only=data_only)
                node = model.sections[0].body[0].body[0].body[0]
                expected = Continue(
                    [Token(Token.CONTINUE, 'CONTINUE', 4, 8)],
                    errors=('CONTINUE 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
           CONTINUE
        END     
    END''', data_only=data_only)
                node = model.sections[0].body[0].body[0].body[0].next.next.body[0]
                expected = Continue(
                    [Token(Token.CONTINUE, 'CONTINUE', 9, 11)],
                    errors=('CONTINUE cannot be used in FINALLY branch.',)
                )
                remove_non_data_nodes_and_assert(node, expected, data_only)
Пример #5
0
    def test_continue(self):
        data = '''
*** Keywords ***
Name
    FOR    ${x}    IN    @{stuff}
        Continue    CONTINUE
        CONTINUE
    END
'''
        expected = For(header=ForHeader([
            Token(Token.FOR, 'FOR', 3, 4),
            Token(Token.VARIABLE, '${x}', 3, 11),
            Token(Token.FOR_SEPARATOR, 'IN', 3, 19),
            Token(Token.ARGUMENT, '@{stuff}', 3, 25)
        ]),
                       body=[
                           KeywordCall([
                               Token(Token.KEYWORD, 'Continue', 4, 8),
                               Token(Token.ARGUMENT, 'CONTINUE', 4, 20)
                           ]),
                           Continue([Token(Token.CONTINUE, 'CONTINUE', 5, 8)])
                       ],
                       end=End([Token(Token.END, 'END', 6, 4)]))
        get_and_assert_model(data, expected)