From eb84d48b9c21588802ddaead36e618b3950c0aa5 Mon Sep 17 00:00:00 2001 From: Kazuaki Matsuo Date: Fri, 18 Dec 2020 16:31:22 -0800 Subject: [PATCH 1/6] tweak --- appium/webdriver/webdriver.py | 5 +---- test/unit/webdriver/webdriver_test.py | 6 +++--- 2 files changed, 4 insertions(+), 7 deletions(-) diff --git a/appium/webdriver/webdriver.py b/appium/webdriver/webdriver.py index 72d0dafe1..414d4838d 100644 --- a/appium/webdriver/webdriver.py +++ b/appium/webdriver/webdriver.py @@ -241,12 +241,9 @@ def _merge_capabilities(self, capabilities: Dict) -> Dict[str, Any]: """Manage capabilities whether W3C format or MJSONWP format """ if _FORCE_MJSONWP in capabilities: - force_mjsonwp = capabilities[_FORCE_MJSONWP] + logger.warning("'forceMjsonwp' capability no longer works. Sending both W3C and MJSONWP capabilities") del capabilities[_FORCE_MJSONWP] - if force_mjsonwp != False: - return {'desiredCapabilities': capabilities} - w3c_caps = _make_w3c_caps(capabilities) return {'capabilities': w3c_caps, 'desiredCapabilities': capabilities} diff --git a/test/unit/webdriver/webdriver_test.py b/test/unit/webdriver/webdriver_test.py index 87e45d18e..e3764c0c3 100644 --- a/test/unit/webdriver/webdriver_test.py +++ b/test/unit/webdriver/webdriver_test.py @@ -89,12 +89,12 @@ def test_create_session_forceMjsonwp(self): assert 'appium/python {} (selenium'.format(appium_version.version) in request.headers['user-agent'] request_json = json.loads(httpretty.HTTPretty.latest_requests[0].body.decode('utf-8')) - assert request_json.get('capabilities') is None + assert request_json.get('capabilities') is not None assert request_json.get('desiredCapabilities') is not None assert driver.session_id == 'session-id' - assert driver.w3c is False - assert driver.command_executor.w3c is False + assert driver.w3c is True + assert driver.command_executor.w3c is True @httpretty.activate def test_create_session_change_session_id(self): From dd1fa80ba081cbd9f8b107f85b480218caced4dc Mon Sep 17 00:00:00 2001 From: Kazuaki Matsuo Date: Sun, 20 Dec 2020 01:07:44 -0800 Subject: [PATCH 2/6] fix test --- test/unit/webdriver/webdriver_test.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/unit/webdriver/webdriver_test.py b/test/unit/webdriver/webdriver_test.py index e3764c0c3..e310b5ed3 100644 --- a/test/unit/webdriver/webdriver_test.py +++ b/test/unit/webdriver/webdriver_test.py @@ -67,7 +67,7 @@ def test_create_session_forceMjsonwp(self): httpretty.register_uri( httpretty.POST, 'http://localhost:4723/wd/hub/session', - body='{ "capabilities": {"deviceName": "Android Emulator"}, "status": 0, "sessionId": "session-id"}' + body='{ "value": { "sessionId": "session-id", "capabilities": {"deviceName": "Android Emulator"}}}' ) desired_caps = { From dfff196b2381471f51056c23b7ffc967e9390c9b Mon Sep 17 00:00:00 2001 From: Kazuaki Matsuo Date: Sun, 20 Dec 2020 01:36:17 -0800 Subject: [PATCH 3/6] print warning --- appium/webdriver/webdriver.py | 6 +++++- test/unit/webdriver/webdriver_test.py | 4 ++-- 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/appium/webdriver/webdriver.py b/appium/webdriver/webdriver.py index 414d4838d..a8ec50e5b 100644 --- a/appium/webdriver/webdriver.py +++ b/appium/webdriver/webdriver.py @@ -241,9 +241,13 @@ def _merge_capabilities(self, capabilities: Dict) -> Dict[str, Any]: """Manage capabilities whether W3C format or MJSONWP format """ if _FORCE_MJSONWP in capabilities: - logger.warning("'forceMjsonwp' capability no longer works. Sending both W3C and MJSONWP capabilities") + logger.warning("[Deprecated] 'forceMjsonwp' capability will be dropped") + force_mjsonwp = capabilities[_FORCE_MJSONWP] del capabilities[_FORCE_MJSONWP] + if force_mjsonwp != False: + return {'desiredCapabilities': capabilities} + w3c_caps = _make_w3c_caps(capabilities) return {'capabilities': w3c_caps, 'desiredCapabilities': capabilities} diff --git a/test/unit/webdriver/webdriver_test.py b/test/unit/webdriver/webdriver_test.py index e310b5ed3..d557dece2 100644 --- a/test/unit/webdriver/webdriver_test.py +++ b/test/unit/webdriver/webdriver_test.py @@ -67,7 +67,7 @@ def test_create_session_forceMjsonwp(self): httpretty.register_uri( httpretty.POST, 'http://localhost:4723/wd/hub/session', - body='{ "value": { "sessionId": "session-id", "capabilities": {"deviceName": "Android Emulator"}}}' + body='{ "capabilities": {"deviceName": "Android Emulator"}, "status": 0, "sessionId": "session-id"}' ) desired_caps = { @@ -93,7 +93,7 @@ def test_create_session_forceMjsonwp(self): assert request_json.get('desiredCapabilities') is not None assert driver.session_id == 'session-id' - assert driver.w3c is True + assert driver.w3c is not True assert driver.command_executor.w3c is True @httpretty.activate From 608d10db847da77a7ed0078661a2afd6d6ebf034 Mon Sep 17 00:00:00 2001 From: Kazuaki Matsuo Date: Sun, 20 Dec 2020 01:38:13 -0800 Subject: [PATCH 4/6] revert test --- test/unit/webdriver/webdriver_test.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/test/unit/webdriver/webdriver_test.py b/test/unit/webdriver/webdriver_test.py index d557dece2..87e45d18e 100644 --- a/test/unit/webdriver/webdriver_test.py +++ b/test/unit/webdriver/webdriver_test.py @@ -89,12 +89,12 @@ def test_create_session_forceMjsonwp(self): assert 'appium/python {} (selenium'.format(appium_version.version) in request.headers['user-agent'] request_json = json.loads(httpretty.HTTPretty.latest_requests[0].body.decode('utf-8')) - assert request_json.get('capabilities') is not None + assert request_json.get('capabilities') is None assert request_json.get('desiredCapabilities') is not None assert driver.session_id == 'session-id' - assert driver.w3c is not True - assert driver.command_executor.w3c is True + assert driver.w3c is False + assert driver.command_executor.w3c is False @httpretty.activate def test_create_session_change_session_id(self): From 1c5f1c4b39bc95238161713dd430afd69ed798a2 Mon Sep 17 00:00:00 2001 From: Kazuaki Matsuo Date: Mon, 21 Dec 2020 09:22:01 +0900 Subject: [PATCH 5/6] Update webdriver.py --- appium/webdriver/webdriver.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/appium/webdriver/webdriver.py b/appium/webdriver/webdriver.py index a8ec50e5b..d99fa307b 100644 --- a/appium/webdriver/webdriver.py +++ b/appium/webdriver/webdriver.py @@ -241,7 +241,8 @@ def _merge_capabilities(self, capabilities: Dict) -> Dict[str, Any]: """Manage capabilities whether W3C format or MJSONWP format """ if _FORCE_MJSONWP in capabilities: - logger.warning("[Deprecated] 'forceMjsonwp' capability will be dropped") + logger.warning("[Deprecated] 'forceMjsonwp' capability will be dropped after switching base selenium client from v3 to v4 "\ + "to follow W3C spec capabilities. Appium 2.0 will also support only W3C session creation capabilities.") force_mjsonwp = capabilities[_FORCE_MJSONWP] del capabilities[_FORCE_MJSONWP] From d987d9e901fc559dea6a2c86bc6a18e52e9f4eba Mon Sep 17 00:00:00 2001 From: Kazuaki Matsuo Date: Sun, 20 Dec 2020 16:30:17 -0800 Subject: [PATCH 6/6] fix autopep8 --- appium/webdriver/webdriver.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/appium/webdriver/webdriver.py b/appium/webdriver/webdriver.py index d99fa307b..3b8e08b1c 100644 --- a/appium/webdriver/webdriver.py +++ b/appium/webdriver/webdriver.py @@ -241,8 +241,8 @@ def _merge_capabilities(self, capabilities: Dict) -> Dict[str, Any]: """Manage capabilities whether W3C format or MJSONWP format """ if _FORCE_MJSONWP in capabilities: - logger.warning("[Deprecated] 'forceMjsonwp' capability will be dropped after switching base selenium client from v3 to v4 "\ - "to follow W3C spec capabilities. Appium 2.0 will also support only W3C session creation capabilities.") + logger.warning("[Deprecated] 'forceMjsonwp' capability will be dropped after switching base selenium client from v3 to v4 " + "to follow W3C spec capabilities. Appium 2.0 will also support only W3C session creation capabilities.") force_mjsonwp = capabilities[_FORCE_MJSONWP] del capabilities[_FORCE_MJSONWP]