Skip to content

Commit 130bd3f

Browse files
committed
Fix stub file generation when timedelta is used
1 parent 4458aaf commit 130bd3f

File tree

2 files changed

+13
-3
lines changed

2 files changed

+13
-3
lines changed

gen_stub.py

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@
1313
# limitations under the License.
1414
# Copied from: https://github.com/MarketSquare/robotframework-browser/blob/master/Browser/gen_stub.py
1515
import sys
16+
from datetime import timedelta
1617
from pathlib import Path
1718
from typing import Any
1819

@@ -82,7 +83,9 @@ def keyword_line(keyword_arguments, keyword_types, method_name):
8283
arg_str = arg_str + f": {arg_type_str}"
8384
elif isinstance(default_value, str):
8485
default_value = f"'{default_value}'"
85-
arg_str = arg_str + f" = {default_value}"
86+
elif isinstance(default_value, timedelta):
87+
default_value = f"timedelta(seconds={default_value.total_seconds()})"
88+
arg_str = f"{arg_str} = {default_value}"
8689
else:
8790
arg_str = argument
8891
arg_type_str = get_type_sting_from_argument(arg_str, keyword_types)
@@ -99,7 +102,11 @@ def keyword_line(keyword_arguments, keyword_types, method_name):
99102
FUNCTION_LIST = get_function_list_from_keywords(SL.get_keyword_names())
100103

101104

102-
pyi_boilerplate = """
105+
pyi_boilerplate = """\
106+
from datetime import timedelta
107+
from typing import Any, Optional, Union
108+
109+
103110
class SeleniumLibrary:
104111
"""
105112
pyi_boilerplate_append = """

src/SeleniumLibrary/__init__.pyi

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,9 @@
1+
from datetime import timedelta
2+
from typing import Any, Optional, Union
3+
14

25
class SeleniumLibrary:
3-
def __init__(self, timeout = 0:00:05, implicit_wait = 0:00:00, run_on_failure = 'Capture Page Screenshot', screenshot_root_directory: Optional[str] = None, plugins: Optional[str] = None, event_firing_webdriver: Optional[str] = None): ...
6+
def __init__(self, timeout = timedelta(seconds=5.0), implicit_wait = timedelta(seconds=0.0), run_on_failure = 'Capture Page Screenshot', screenshot_root_directory: Optional[str] = None, plugins: Optional[str] = None, event_firing_webdriver: Optional[str] = None): ...
47
def add_cookie(self, name: str, value: str, path: Optional[str] = None, domain: Optional[str] = None, secure: Optional[bool] = None, expiry: Optional[str] = None): ...
58
def add_location_strategy(self, strategy_name: str, strategy_keyword: str, persist: bool = False): ...
69
def alert_should_be_present(self, text: str = '', action: str = 'ACCEPT', timeout: Optional[timedelta] = None): ...

0 commit comments

Comments
 (0)