Skip to content

Commit 9e95458

Browse files
committed
simplify a bit
1 parent ae4b248 commit 9e95458

File tree

2 files changed

+35
-7
lines changed

2 files changed

+35
-7
lines changed

appium/webdriver/appium_connection.py

Lines changed: 4 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,7 @@ class AppiumConnection(RemoteConnection):
4040
"""
4141

4242
user_agent = f'{PREFIX_HEADER}{library_version()} ({RemoteConnection.user_agent})'
43+
extra_headers = {}
4344

4445
@classmethod
4546
def get_remote_connection_headers(cls, parsed_url: 'ParseResult', keep_alive: bool = True) -> Dict[str, Any]:
@@ -49,12 +50,8 @@ def get_remote_connection_headers(cls, parsed_url: 'ParseResult', keep_alive: bo
4950

5051
if parsed_url.path.endswith('/session'):
5152
# https://github.com/appium/appium-base-driver/pull/400
52-
if cls.extra_headers is None:
53-
cls.extra_headers = {_HEADER_IDEMOTENCY_KEY: str(uuid.uuid4())}
54-
else:
55-
cls.extra_headers[_HEADER_IDEMOTENCY_KEY] = str(uuid.uuid4())
56-
elif cls.extra_headers is not None and _HEADER_IDEMOTENCY_KEY in cls.extra_headers:
53+
cls.extra_headers[_HEADER_IDEMOTENCY_KEY] = str(uuid.uuid4())
54+
elif _HEADER_IDEMOTENCY_KEY in cls.extra_headers:
5755
del cls.extra_headers[_HEADER_IDEMOTENCY_KEY]
5856

59-
base_headers = super().get_remote_connection_headers(parsed_url, keep_alive=keep_alive)
60-
return base_headers if cls.extra_headers is None else {**base_headers, **cls.extra_headers}
57+
return {**super().get_remote_connection_headers(parsed_url, keep_alive=keep_alive), **cls.extra_headers}
Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
import unittest
2+
from urllib import parse
3+
4+
from appium.webdriver import appium_connection
5+
6+
7+
class AppiumConnectionTest(unittest.TestCase):
8+
def test_get_remote_connection_headers(self):
9+
headers = appium_connection.AppiumConnection.get_remote_connection_headers(
10+
parse.urlparse('http://http://127.0.0.1:4723/session')
11+
)
12+
self.assertIsNotNone(headers.get('X-Idempotency-Key'))
13+
14+
headers = appium_connection.AppiumConnection.get_remote_connection_headers(
15+
parse.urlparse('http://http://127.0.0.1:4723/session/session_id')
16+
)
17+
self.assertIsNone(headers.get('X-Idempotency-Key'))
18+
19+
appium_connection.AppiumConnection.extra_headers = {'custom': 'header'}
20+
21+
headers = appium_connection.AppiumConnection.get_remote_connection_headers(
22+
parse.urlparse('http://http://127.0.0.1:4723/session')
23+
)
24+
self.assertIsNotNone(headers.get('X-Idempotency-Key'))
25+
self.assertEqual(headers.get('custom'), 'header')
26+
27+
headers = appium_connection.AppiumConnection.get_remote_connection_headers(
28+
parse.urlparse('http://http://127.0.0.1:4723/session/session_id')
29+
)
30+
self.assertIsNone(headers.get('X-Idempotency-Key'))
31+
self.assertEqual(headers.get('custom'), 'header')

0 commit comments

Comments
 (0)