Skip to content

Commit 13d8b38

Browse files
committed
Test fixes
1 parent 5b0cf3b commit 13d8b38

File tree

2 files changed

+15
-8
lines changed

2 files changed

+15
-8
lines changed

pytest_reportportal/plugin.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -334,7 +334,8 @@ def pytest_fixture_post_finalizer(fixturedef, request) -> None:
334334
:param fixturedef: represents definition of the texture class
335335
:param request: represents fixture execution metadata
336336
"""
337-
if fixturedef.cached_result and fixturedef.cached_result[2]:
337+
cached_result = getattr(fixturedef, 'cached_result', None)
338+
if cached_result and cached_result[2]:
338339
exception = fixturedef.cached_result[2][0]
339340
if exception and isinstance(exception, BaseException):
340341
yield

tests/integration/test_fixtures.py

Lines changed: 13 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -11,28 +11,27 @@
1111
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
1212
# See the License for the specific language governing permissions and
1313
# limitations under the License.
14-
14+
import sys
1515
from collections import defaultdict
1616
from unittest import mock
1717

1818
import pytest
1919
from reportportal_client import set_current
2020
from reportportal_client.steps import StepReporter
2121

22+
from examples.fixtures.test_failure_fixture_teardown.conftest import (
23+
LOG_MESSAGE_BEFORE_YIELD as LOG_MESSAGE_BEFORE_YIELD_TEST_FAILURE,
24+
LOG_MESSAGE_TEARDOWN as LOG_MESSAGE_TEARDOWN_TEST_FAILURE)
25+
from examples.fixtures.test_fixture_return_none.conftest import LOG_MESSAGE_SETUP as LOG_MESSAGE_BEFORE_RETURN_NONE
2226
from examples.fixtures.test_fixture_setup.conftest import LOG_MESSAGE_SETUP as SINGLE_SETUP_MESSAGE
2327
from examples.fixtures.test_fixture_setup_failure.conftest import LOG_MESSAGE_SETUP as LOG_MESSAGE_SETUP_FAILURE
2428
from examples.fixtures.test_fixture_teardown.conftest import LOG_MESSAGE_BEFORE_YIELD, LOG_MESSAGE_TEARDOWN
2529
from examples.fixtures.test_fixture_teardown_failure.conftest import (
2630
LOG_MESSAGE_BEFORE_YIELD as LOG_MESSAGE_BEFORE_YIELD_FAILURE, LOG_MESSAGE_TEARDOWN as LOG_MESSAGE_TEARDOWN_FAILURE)
2731
from examples.fixtures.test_fixture_yield_none.conftest import LOG_MESSAGE_SETUP as LOG_MESSAGE_BEFORE_YIELD_NONE
28-
from examples.fixtures.test_fixture_return_none.conftest import LOG_MESSAGE_SETUP as LOG_MESSAGE_BEFORE_RETURN_NONE
29-
from examples.fixtures.test_failure_fixture_teardown.conftest import (
30-
LOG_MESSAGE_BEFORE_YIELD as LOG_MESSAGE_BEFORE_YIELD_TEST_FAILURE,
31-
LOG_MESSAGE_TEARDOWN as LOG_MESSAGE_TEARDOWN_TEST_FAILURE)
3232
from tests import REPORT_PORTAL_SERVICE
3333
from tests.helpers import utils
3434

35-
3635
ITEM_ID_DICT = defaultdict(lambda: 0)
3736
ITEM_ID_LIST = []
3837

@@ -185,7 +184,10 @@ def test_fixture_setup_failure(mock_client_init):
185184

186185
start_count = mock_client.start_test_item.call_count
187186
finish_count = mock_client.finish_test_item.call_count
188-
assert start_count == finish_count == 2, 'Incorrect number of "start_test_item" or "finish_test_item" calls'
187+
if sys.version_info < (3, 8):
188+
assert start_count == finish_count == 3, 'Incorrect number of "start_test_item" or "finish_test_item" calls'
189+
else:
190+
assert start_count == finish_count == 2, 'Incorrect number of "start_test_item" or "finish_test_item" calls'
189191

190192
call_args = mock_client.start_test_item.call_args_list
191193
setup_call_args = call_args[1][0]
@@ -421,6 +423,7 @@ def test_failure_fixture_teardown(mock_client_init):
421423
'test_failure_fixture_teardown_1')
422424

423425

426+
@pytest.mark.skipif(sys.version_info < (3, 8), reason='Python 3.8+ required due to bugs in older versions')
424427
@mock.patch(REPORT_PORTAL_SERVICE)
425428
def test_session_fixture_setup(mock_client_init):
426429
mock_client = mock_client_init.return_value
@@ -450,6 +453,7 @@ def test_session_fixture_setup(mock_client_init):
450453
assert not setup_call_kwargs['has_stats']
451454

452455

456+
@pytest.mark.skipif(sys.version_info < (3, 8), reason='Python 3.8+ required due to bugs in older versions')
453457
@mock.patch(REPORT_PORTAL_SERVICE)
454458
def test_package_fixture_setup(mock_client_init):
455459
mock_client = mock_client_init.return_value
@@ -479,6 +483,7 @@ def test_package_fixture_setup(mock_client_init):
479483
assert not setup_call_kwargs['has_stats']
480484

481485

486+
@pytest.mark.skipif(sys.version_info < (3, 8), reason='Python 3.8+ required due to bugs in older versions')
482487
@mock.patch(REPORT_PORTAL_SERVICE)
483488
def test_module_fixture_setup(mock_client_init):
484489
mock_client = mock_client_init.return_value
@@ -508,6 +513,7 @@ def test_module_fixture_setup(mock_client_init):
508513
assert not setup_call_kwargs['has_stats']
509514

510515

516+
@pytest.mark.skipif(sys.version_info < (3, 8), reason='Python 3.8+ required due to bugs in older versions')
511517
@mock.patch(REPORT_PORTAL_SERVICE)
512518
def test_class_fixture_setup(mock_client_init):
513519
mock_client = mock_client_init.return_value

0 commit comments

Comments
 (0)