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