diff --git a/CHANGELOG.md b/CHANGELOG.md index 3358fd9..f545785 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,6 +1,10 @@ # Changelog ## [Unreleased] +### Fixed +- Agent crash in certain `pytest-bdd` cases, by @HardNorth + +## [5.6.3] ### Changed - Client version updated to [5.7.2](https://github.com/reportportal/client-Python/releases/tag/5.7.2), by @HardNorth ### Removed diff --git a/pytest_reportportal/service.py b/pytest_reportportal/service.py index bbd6f36..685d8b5 100644 --- a/pytest_reportportal/service.py +++ b/pytest_reportportal/service.py @@ -743,9 +743,7 @@ def _get_parameters(self, item) -> Optional[dict[str, Any]]: :return: dict of params """ params = item.callspec.params if hasattr(item, "callspec") else None - if not params: - return None - return {str(k): v.replace("\0", "\\0") if isinstance(v, str) else v for k, v in params.items()} + return params def _get_parameters_indices(self, item) -> Optional[dict[str, Any]]: """ @@ -1096,7 +1094,7 @@ def post_log( if PYTEST_BDD: if not item_id: # Check if we are actually a BDD scenario - scenario = self._bdd_scenario_by_item[test_item] + scenario = self._bdd_scenario_by_item.get(test_item, None) if scenario: # Yes, we are a BDD scenario, report log to the scenario item_id = self._tree_path[scenario][-1]["item_id"] diff --git a/setup.py b/setup.py index 2e6a4e1..f2ba665 100644 --- a/setup.py +++ b/setup.py @@ -17,7 +17,7 @@ from setuptools import setup -__version__ = "5.6.3" +__version__ = "5.6.4" def read_file(fname): diff --git a/tests/integration/test_parameters_report.py b/tests/integration/test_parameters_report.py index b5ac571..62c5d9e 100644 --- a/tests/integration/test_parameters_report.py +++ b/tests/integration/test_parameters_report.py @@ -17,7 +17,6 @@ import pytest -from examples.params.test_binary_symbol_in_parameters import BINARY_TEXT from tests import REPORT_PORTAL_SERVICE from tests.helpers import utils @@ -32,7 +31,6 @@ "examples/params/test_different_parameter_types.py", {"integer": 1, "floating_point": 1.5, "boolean": True, "none": None}, ), - ("examples/params/test_binary_symbol_in_parameters.py", {"text": BINARY_TEXT.replace("\0", "\\0")}), ], ) def test_parameters(mock_client_init, test, expected_params):