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)
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)