diff --git a/appium/options/flutter_integration/flutter_element_wait_timeout_option.py b/appium/options/flutter_integration/flutter_element_wait_timeout_option.py index d367be1c..ddd0de77 100644 --- a/appium/options/flutter_integration/flutter_element_wait_timeout_option.py +++ b/appium/options/flutter_integration/flutter_element_wait_timeout_option.py @@ -31,7 +31,8 @@ def flutter_element_wait_timeout(self) -> timedelta | None: Returns: Optional[timedelta]: The timeout value as a `timedelta` object if set, or `None` if the timeout is not defined. """ - return self.get_capability(FLUTTER_ELEMENT_WAIT_TIMEOUT) + value = self.get_capability(FLUTTER_ELEMENT_WAIT_TIMEOUT) + return None if value is None else timedelta(milliseconds=value) @flutter_element_wait_timeout.setter def flutter_element_wait_timeout(self, value: timedelta | int) -> None: diff --git a/appium/options/flutter_integration/flutter_server_launch_timeout_option.py b/appium/options/flutter_integration/flutter_server_launch_timeout_option.py index d387c3c1..4fa30a45 100644 --- a/appium/options/flutter_integration/flutter_server_launch_timeout_option.py +++ b/appium/options/flutter_integration/flutter_server_launch_timeout_option.py @@ -32,7 +32,8 @@ def flutter_server_launch_timeout(self) -> timedelta | None: Optional[timedelta]: The timeout value as a `timedelta` object if set, or `None` if the timeout is not defined. """ - return self.get_capability(FLUTTER_SERVER_LAUNCH_TIMEOUT) + value = self.get_capability(FLUTTER_SERVER_LAUNCH_TIMEOUT) + return None if value is None else timedelta(milliseconds=value) @flutter_server_launch_timeout.setter def flutter_server_launch_timeout(self, value: timedelta | int) -> None: diff --git a/test/unit/webdriver/flutter_integration/flutter_integration_driver_test.py b/test/unit/webdriver/flutter_integration/flutter_integration_driver_test.py index 0e97d81c..7715b00c 100644 --- a/test/unit/webdriver/flutter_integration/flutter_integration_driver_test.py +++ b/test/unit/webdriver/flutter_integration/flutter_integration_driver_test.py @@ -13,6 +13,7 @@ # limitations under the License. import json +from datetime import timedelta import httpretty @@ -58,3 +59,16 @@ def test_create_session(self): } assert request_json.get('desiredCapabilities') is None assert driver.session_id == 'session-id' + + def test_timeout_options_are_returned_as_timedelta(self): + flutterOptions = FlutterOptions() + assert flutterOptions.flutter_element_wait_timeout is None + assert flutterOptions.flutter_server_launch_timeout is None + + flutterOptions.flutter_element_wait_timeout = timedelta(seconds=10) + flutterOptions.flutter_server_launch_timeout = 120000 + + assert flutterOptions.flutter_element_wait_timeout == timedelta(seconds=10) + assert flutterOptions.flutter_server_launch_timeout == timedelta(minutes=2) + assert flutterOptions.to_capabilities()['appium:flutterElementWaitTimeout'] == 10000 + assert flutterOptions.to_capabilities()['appium:flutterServerLaunchTimeout'] == 120000