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