Skip to content

Commit

Permalink
Ignore None when used as keyword call. Fixes #597
Browse files Browse the repository at this point in the history
  • Loading branch information
fabioz committed Mar 8, 2022
1 parent 9bcd55d commit 388df5c
Show file tree
Hide file tree
Showing 2 changed files with 35 additions and 10 deletions.
23 changes: 13 additions & 10 deletions robotframework-ls/src/robotframework_ls/impl/ast_utils.py
Original file line number Diff line number Diff line change
Expand Up @@ -763,19 +763,22 @@ def _create_keyword_usage_info(stack, node) -> Optional[KeywordUsageInfo]:
from robot.api import Token

if node.__class__.__name__ == "KeywordCall":
token = _strip_token_bdd_prefix(node.get_token(Token.KEYWORD))
if token is not None:
node = _copy_of_node_replacing_token(node, token, Token.KEYWORD)
keyword_name = token.value
return KeywordUsageInfo(tuple(stack), node, token, keyword_name)
token_type = Token.KEYWORD

elif node.__class__.__name__ in CLASSES_WITH_ARGUMENTS_AS_KEYWORD_CALLS_AS_SET:
node, token = _strip_node_and_token_bdd_prefix(node, Token.NAME)
if token is not None:
keyword_name = token.value
return KeywordUsageInfo(tuple(stack), node, token, keyword_name)
token_type = Token.NAME

return None
else:
return None

node, token = _strip_node_and_token_bdd_prefix(node, token_type)
if token is None:
return None

keyword_name = token.value
if keyword_name.lower() == "none":
return None
return KeywordUsageInfo(tuple(stack), node, token, keyword_name)


def create_keyword_usage_info_from_token(
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -861,3 +861,25 @@ def test_code_analysis_deprecated_keyword(workspace, libspec_manager, data_regre
"""

_collect_errors(workspace, doc, data_regression)


def test_code_analysis_none(workspace, libspec_manager, data_regression):
workspace.set_root("case1", libspec_manager=libspec_manager)
doc = workspace.put_doc("case1.robot")
doc.source = """
*** Settings ***
Test Setup none
Test Template None
Test Timeout NONE
*** Test Cases ***
My Test Case
[Setup] none
[Template] NONE
[Tags] NONE
[Timeout] NONE
Should Be True ${TRUE}
"""

_collect_errors(workspace, doc, data_regression, basename="no_error")

0 comments on commit 388df5c

Please sign in to comment.