Skip to content

Commit

Permalink
Add support for robotframework 6.1
Browse files Browse the repository at this point in the history
  • Loading branch information
datakurre committed Jul 22, 2023
1 parent ff0bf77 commit 0c75c61
Show file tree
Hide file tree
Showing 6 changed files with 36 additions and 11 deletions.
6 changes: 3 additions & 3 deletions binder/environment.yml
Original file line number Diff line number Diff line change
Expand Up @@ -17,11 +17,11 @@ dependencies:
- requests==2.22.0
- RESTinstance==1.0.2
- rise==5.6.1
- robotframework==5.0
- robotframework==6.1
- robotframework-faker==5.0.0
- robotframework-seleniumlibrary==5.1.3
- robotframework-seleniumlibrary==6.1.0
- robotframework-seleniumscreenshots==0.9.5
- selenium==3.141.0
- selenium==4.4.3
- urllib3==1.25.3
- jupyter-starters==1.1.0
- jupyterlab-widgets==1.0.2
Expand Down
21 changes: 17 additions & 4 deletions src/robotkernel/builders_32.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,17 +2,27 @@
from io import StringIO
from robot.api import get_model
from robot.errors import DataError
from robot.running.builder.parsers import ErrorReporter
from robot.running.builder.transformers import SettingsBuilder
from robot.running.builder.transformers import SuiteBuilder
from robot.running.model import TestSuite
from robotkernel.constants import HAS_RF61_PARSER
from typing import Dict
import os


try:
from robot.running.builder.testsettings import TestDefaults
from robot.running.builder.transformers import ErrorReporter
except ImportError:
from robot.running.builder.settings import Defaults as TestDefaults
from robot.running.builder.parsers import ErrorReporter

if HAS_RF61_PARSER:
from robot.running.builder.settings import FileSettings
from robot.running.builder.settings import TestDefaults
else:
try:
from robot.running.builder.testsettings import TestDefaults
except ImportError:
from robot.running.builder.settings import Defaults as TestDefaults


def _get_rpa_mode(data):
Expand All @@ -31,7 +41,10 @@ def _get_rpa_mode(data):
def build_suite(code: str, cell_history: Dict[str, str], data_only: bool = False):
# Init
suite = TestSuite(name="Jupyter", source=os.getcwd())
defaults = TestDefaults(None)
if HAS_RF61_PARSER:
defaults = FileSettings(TestDefaults(None))
else:
defaults = TestDefaults(None)

# Populate history
for historical in cell_history.values():
Expand Down
6 changes: 6 additions & 0 deletions src/robotkernel/constants.py
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,12 @@
import re


try:
pkg_resources.get_distribution("robotframework>=6.1b1")
HAS_RF61_PARSER = True
except pkg_resources.VersionConflict:
HAS_RF61_PARSER = False

try:
pkg_resources.get_distribution("robotframework>=3.2a1")
HAS_RF32_PARSER = True
Expand Down
2 changes: 1 addition & 1 deletion src/robotkernel/kernel.py
Original file line number Diff line number Diff line change
Expand Up @@ -171,7 +171,7 @@ def do_complete(self, code, cursor_pos):
"status": "ok",
}

def do_inspect(self, code, cursor_pos, detail_level=0):
def do_inspect(self, code, cursor_pos, detail_level=0, _=None):
cursor_pos = cursor_pos is None and len(code) or cursor_pos
line, offset = line_at_cursor(code, cursor_pos)
line_cursor = cursor_pos - offset
Expand Down
11 changes: 9 additions & 2 deletions src/robotkernel/monkeypatches.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@
from io import StringIO
from robot.errors import DataError
from robotkernel.constants import HAS_RF32_PARSER
from robotkernel.constants import HAS_RF61_PARSER
import os
import re
import sys
Expand Down Expand Up @@ -80,7 +81,10 @@ def _get_file(self, source, accept_text):
path = self._get_path(source, accept_text)
if path and os.path.splitext(path)[1].lower() == ".ipynb":
file = StringIO(NotebookReader().read(path, ""))
return file, os.path.basename(path), True
if HAS_RF61_PARSER:
return file, os.path.basename(path)
else:
return file, os.path.basename(path), True
else:
return old(self, source, accept_text)

Expand All @@ -99,7 +103,10 @@ def inject_robot_ipynb_support():
if HAS_RF32_PARSER:
# noinspection PyNoneFunctionAssignment,PyProtectedMember
FileReader._get_file = _get_ipynb_file(FileReader._get_file)
importer.RESOURCE_EXTENSIONS += (".ipynb",)
if HAS_RF61_PARSER:
importer.RESOURCE_EXTENSIONS = importer.RESOURCE_EXTENSIONS | {".ipynb"}
else:
importer.RESOURCE_EXTENSIONS += (".ipynb",)
elif "ipynb" not in populators.READERS:
populators.READERS["ipynb"] = NotebookReader
TEST_EXTENSIONS.add("ipynb")
1 change: 0 additions & 1 deletion src/robotkernel/selectors_white.py
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,6 @@


class PickSnipTool(Form):

mouse_down = None
mouse_down_button = None
mouse_down_seconds = 0
Expand Down

0 comments on commit 0c75c61

Please sign in to comment.