Skip to content

Commit 883d2f1

Browse files
authored
Merge pull request #224 from reportportal/develop
Release
2 parents bdd4bfc + ec8a070 commit 883d2f1

File tree

5 files changed

+59
-23
lines changed

5 files changed

+59
-23
lines changed

CHANGELOG.md

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,12 @@
22

33
## [Unreleased]
44
### Fixed
5+
- Python 3.7 support, by @HardNorth
6+
- Launch UUID attribute for AIO clients, by @HardNorth
7+
- Http timeout bypass for Sync Client, by @HardNorth
8+
9+
## [5.5.2]
10+
### Fixed
511
- Attribute truncation for every method with attributes, by @HardNorth
612

713
## [5.5.1]

reportportal_client/aio/client.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -259,7 +259,7 @@ async def start_launch(self,
259259

260260
if not self._skip_analytics:
261261
stat_coro = async_send_event('start_launch', *agent_name_version(attributes))
262-
self.__stat_task = asyncio.create_task(stat_coro, name='Statistics update')
262+
self.__stat_task = asyncio.create_task(stat_coro)
263263

264264
launch_uuid = await response.id
265265
logger.debug(f'start_launch - ID: {launch_uuid}')
@@ -675,8 +675,8 @@ def __init__(
675675
self.__client = client
676676
else:
677677
self.__client = Client(endpoint, project, **kwargs)
678+
self.__launch_uuid = launch_uuid
678679
if launch_uuid:
679-
self.__launch_uuid = launch_uuid
680680
self.use_own_launch = False
681681
else:
682682
self.use_own_launch = True
@@ -1040,8 +1040,8 @@ def __init__(
10401040
self.__client = Client(endpoint, project, **kwargs)
10411041
self.own_client = False
10421042

1043+
self.__launch_uuid = launch_uuid
10431044
if launch_uuid:
1044-
self.__launch_uuid = launch_uuid
10451045
self.own_launch = False
10461046
else:
10471047
self.own_launch = True

reportportal_client/client.py

Lines changed: 17 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -548,8 +548,8 @@ def start_launch(self,
548548
rerun=rerun,
549549
rerun_of=rerun_of
550550
).payload
551-
response = HttpRequest(self.session.post, url=url, json=request_payload,
552-
verify_ssl=self.verify_ssl).make()
551+
response = HttpRequest(self.session.post, url=url, json=request_payload, verify_ssl=self.verify_ssl,
552+
http_timeout=self.http_timeout).make()
553553
if not response:
554554
return
555555

@@ -614,10 +614,8 @@ def start_test_item(self,
614614
test_case_id=test_case_id
615615
).payload
616616

617-
response = HttpRequest(self.session.post,
618-
url=url,
619-
json=request_payload,
620-
verify_ssl=self.verify_ssl).make()
617+
response = HttpRequest(self.session.post, url=url, json=request_payload, verify_ssl=self.verify_ssl,
618+
http_timeout=self.http_timeout).make()
621619
if not response:
622620
return
623621
item_id = response.id
@@ -665,8 +663,8 @@ def finish_test_item(self,
665663
issue=issue,
666664
retry=retry
667665
).payload
668-
response = HttpRequest(self.session.put, url=url, json=request_payload,
669-
verify_ssl=self.verify_ssl).make()
666+
response = HttpRequest(self.session.put, url=url, json=request_payload, verify_ssl=self.verify_ssl,
667+
http_timeout=self.http_timeout).make()
670668
if not response:
671669
return
672670
self._remove_current_item()
@@ -699,8 +697,8 @@ def finish_launch(self,
699697
description=kwargs.get('description')
700698
).payload
701699
response = HttpRequest(self.session.put, url=url, json=request_payload,
702-
verify_ssl=self.verify_ssl,
703-
name='Finish Launch').make()
700+
verify_ssl=self.verify_ssl, name='Finish Launch',
701+
http_timeout=self.http_timeout).make()
704702
if not response:
705703
return
706704
logger.debug('finish_launch - ID: %s', self.launch_uuid)
@@ -726,8 +724,8 @@ def update_test_item(self, item_uuid: str, attributes: Optional[Union[list, dict
726724
}
727725
item_id = self.get_item_id_by_uuid(item_uuid)
728726
url = uri_join(self.base_url_v1, 'item', item_id, 'update')
729-
response = HttpRequest(self.session.put, url=url, json=data,
730-
verify_ssl=self.verify_ssl).make()
727+
response = HttpRequest(self.session.put, url=url, json=data, verify_ssl=self.verify_ssl,
728+
http_timeout=self.http_timeout).make()
731729
if not response:
732730
return
733731
logger.debug('update_test_item - Item: %s', item_id)
@@ -737,7 +735,7 @@ def _log(self, batch: Optional[List[RPRequestLog]]) -> Optional[Tuple[str, ...]]
737735
if batch:
738736
url = uri_join(self.base_url_v2, 'log')
739737
response = HttpRequest(self.session.post, url, files=RPLogBatch(batch).payload,
740-
verify_ssl=self.verify_ssl).make()
738+
verify_ssl=self.verify_ssl, http_timeout=self.http_timeout).make()
741739
return response.messages
742740

743741
def log(self,
@@ -772,8 +770,8 @@ def get_item_id_by_uuid(self, item_uuid: str) -> Optional[str]:
772770
:return: Test Item ID.
773771
"""
774772
url = uri_join(self.base_url_v1, 'item', 'uuid', item_uuid)
775-
response = HttpRequest(self.session.get, url=url,
776-
verify_ssl=self.verify_ssl).make()
773+
response = HttpRequest(self.session.get, url=url, verify_ssl=self.verify_ssl,
774+
http_timeout=self.http_timeout).make()
777775
return response.id if response else None
778776

779777
def get_launch_info(self) -> Optional[dict]:
@@ -785,8 +783,8 @@ def get_launch_info(self) -> Optional[dict]:
785783
return {}
786784
url = uri_join(self.base_url_v1, 'launch', 'uuid', self.launch_uuid)
787785
logger.debug('get_launch_info - ID: %s', self.launch_uuid)
788-
response = HttpRequest(self.session.get, url=url,
789-
verify_ssl=self.verify_ssl).make()
786+
response = HttpRequest(self.session.get, url=url, verify_ssl=self.verify_ssl,
787+
http_timeout=self.http_timeout).make()
790788
if not response:
791789
return
792790
launch_info = None
@@ -835,8 +833,8 @@ def get_project_settings(self) -> Optional[dict]:
835833
:return: Settings response in Dictionary.
836834
"""
837835
url = uri_join(self.base_url_v1, 'settings')
838-
response = HttpRequest(self.session.get, url=url,
839-
verify_ssl=self.verify_ssl).make()
836+
response = HttpRequest(self.session.get, url=url, verify_ssl=self.verify_ssl,
837+
http_timeout=self.http_timeout).make()
840838
return response.json if response else None
841839

842840
def _add_current_item(self, item: str) -> None:

setup.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44

55
from setuptools import setup, find_packages
66

7-
__version__ = '5.5.2'
7+
__version__ = '5.5.3'
88

99
TYPE_STUBS = ['*.pyi']
1010

tests/test_client.py

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -261,3 +261,35 @@ def test_attribute_truncation(rp_client: RPClient, method, call_method, argument
261261
assert 'attributes' in kwargs['json']
262262
assert kwargs['json']['attributes']
263263
assert len(kwargs['json']['attributes'][0]['value']) == 128
264+
265+
266+
@pytest.mark.parametrize(
267+
'method, call_method, arguments',
268+
[
269+
('start_launch', 'post', ['Test Launch', timestamp()]),
270+
('start_test_item', 'post', ['Test Item', timestamp(), 'SUITE']),
271+
('finish_test_item', 'put', ['test_item_uuid', timestamp()]),
272+
('finish_launch', 'put', [timestamp()]),
273+
('update_test_item', 'put', ['test_item_uuid']),
274+
('get_launch_info', 'get', []),
275+
('get_project_settings', 'get', []),
276+
('get_item_id_by_uuid', 'get', ['test_item_uuid']),
277+
('log', 'post', [timestamp(), 'Test Message']),
278+
]
279+
)
280+
def test_http_timeout_bypass(method, call_method, arguments):
281+
http_timeout = (35.1, 33.3)
282+
rp_client = RPClient('http://endpoint', 'project', 'api_key',
283+
http_timeout=http_timeout, log_batch_size=1)
284+
session: mock.Mock = mock.Mock()
285+
rp_client.session = session
286+
rp_client._skip_analytics = True
287+
288+
if method != 'start_launch':
289+
rp_client._RPClient__launch_uuid = 'test_launch_id'
290+
291+
getattr(rp_client, method)(*arguments)
292+
getattr(session, call_method).assert_called_once()
293+
kwargs = getattr(session, call_method).call_args_list[0][1]
294+
assert 'timeout' in kwargs
295+
assert kwargs['timeout'] == http_timeout

0 commit comments

Comments
 (0)