Skip to content

Commit 1dfbad9

Browse files
authored
Fixed tests not running when report portal on maintenance
1 parent f5e61d4 commit 1dfbad9

File tree

2 files changed

+37
-11
lines changed

2 files changed

+37
-11
lines changed

pytest_reportportal/plugin.py

Lines changed: 19 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@
1111
import requests
1212
import time
1313
from pytest_reportportal import LAUNCH_WAIT_TIMEOUT
14+
from reportportal_client.errors import ResponseError
1415
from .service import PyTestServiceClass
1516
from .listener import RPReportListener
1617

@@ -90,16 +91,24 @@ def pytest_sessionstart(session):
9091
return
9192

9293
if is_master(session.config):
93-
session.config.py_test_service.init_service(
94-
project=session.config.getini('rp_project'),
95-
endpoint=session.config.getini('rp_endpoint'),
96-
uuid=getenv('RP_UUID') or session.config.getini('rp_uuid'),
97-
log_batch_size=int(session.config.getini('rp_log_batch_size')),
98-
ignore_errors=bool(session.config.getini('rp_ignore_errors')),
99-
ignored_attributes=session.config.getini('rp_ignore_attributes'),
100-
verify_ssl=session.config.getini('rp_verify_ssl'),
101-
retries=int(session.config.getini('retries')),
102-
)
94+
try:
95+
session.config.py_test_service.init_service(
96+
project=session.config.getini('rp_project'),
97+
endpoint=session.config.getini('rp_endpoint'),
98+
uuid=getenv('RP_UUID') or session.config.getini('rp_uuid'),
99+
log_batch_size=int(session.config.getini('rp_log_batch_size')),
100+
ignore_errors=bool(session.config.getini('rp_ignore_errors')),
101+
ignored_attributes=session.config.getini(
102+
'rp_ignore_attributes'),
103+
verify_ssl=session.config.getini('rp_verify_ssl'),
104+
retries=int(session.config.getini('retries')),
105+
)
106+
except ResponseError as response_error:
107+
log.warning('Failed to initialize reportportal-client service. '
108+
'Reporting is disabled.')
109+
log.debug(str(response_error))
110+
session.config.py_test_service.rp = None
111+
return
103112

104113
attributes = get_launch_attributes(
105114
session.config.getini('rp_launch_attributes'))

tests/test_plugin.py

Lines changed: 18 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77
import pytest
88
from requests.exceptions import RequestException
99

10+
from reportportal_client.errors import ResponseError
1011
from pytest_reportportal.plugin import (
1112
get_launch_attributes,
1213
pytest_configure,
@@ -64,7 +65,8 @@ def test_logger_handle_no_attachment(mock_handler, logger, log_level):
6465
@mock.patch.dict(os.environ, {'RP_UUID': 'foobar'})
6566
def test_uuid_env_var_override(mocked_session):
6667
"""
67-
Test setting RP_UUID env variable overrides the rp_uuid config value
68+
Test setting RP_UUID env variable overrides the rp_uuid config value.
69+
6870
:param mocked_session: pytest fixture
6971
"""
7072
mocked_session.config.py_test_service = mock.Mock()
@@ -81,3 +83,18 @@ def test_get_launch_attributes():
8183
expected_out = [{'value': 'Tag'}, {'key': 'Key', 'value': 'Value'}]
8284
out = get_launch_attributes(['Tag', 'Key:Value', ''])
8385
assert expected_out == out
86+
87+
88+
def test_portal_on_maintenance(mocked_session):
89+
"""
90+
Test if portal on maintenance.
91+
92+
:param mocked_session: pytest fixture
93+
"""
94+
mocked_session.config.py_test_service = mock.Mock()
95+
mocked_session.config.py_test_service.init_service.side_effect = \
96+
ResponseError("<title>Report Portal - Maintenance</title>")
97+
98+
pytest_sessionstart(mocked_session)
99+
100+
assert mocked_session.config.py_test_service.rp is None

0 commit comments

Comments
 (0)