def verify_start_scenario(mock_scenario, config): mock_rps = mock.create_autospec(ReportPortalService) mock_rps.start_test_item.return_value = "scenario_id" mock_context = mock.Mock() mock_scenario.name = "scenario_name" mock_scenario._row = None mock_scenario.description = ["A", "B"] ba = BehaveAgent(config, mock_rps) ba._feature_id = "feature_id" ba.start_scenario(mock_context, mock_scenario, some_key="some_value") mock_rps.start_test_item.assert_called_once_with( name="scenario_name", start_time=123, item_type="STEP", parent_item_id="feature_id", description=BehaveAgent._item_description(mock_scenario), code_ref=BehaveAgent._code_ref(mock_scenario), parameters=BehaveAgent._get_parameters(mock_scenario), attributes=ba._attributes(mock_scenario), test_case_id=ba._test_case_id(mock_scenario), some_key="some_value", ) assert ( ba._scenario_id == "scenario_id" ), "Invalid scenario_id:\nActual: {}\nExpected: {}\n".format( ba._scenario_id, "scenario_id" )
def test_log_cleanup_step_based(mock_timestamp, scope, item_type, item_id): cfg = Config(endpoint="E", token="T", project="P", step_based=True) mock_timestamp.return_value = 123 mock_rps = mock.create_autospec(ReportPortalService) mock_context, mock_func1, mock_func2 = mock.Mock(), mock.Mock, mock.Mock() mock_func1.__name__ = "cleanup_func1" mock_func2.__name__ = "cleanup_func2" mock_context._stack = [ {"@layer": scope, "@cleanups": [mock_func1, mock_func2]} ] ba = BehaveAgent(cfg, mock_rps) ba._feature_id = "feature_id" ba._scenario_id = "scenario_id" ba._log_cleanups(mock_context, scope) calls = [ mock.call( name="Execution of '{}' cleanup function".format(f_name), start_time=123, item_type=item_type, parent_item_id=item_id, ) for f_name in ("cleanup_func1", "cleanup_func2") ] mock_rps.start_test_item.assert_has_calls(calls) assert mock_rps.finish_test_item.call_count == 2
def test_finish_feature(mock_timestamp, config, tags, expected_status): mock_feature = mock.Mock() mock_feature.tags = tags mock_feature.status.name = "passed" mock_timestamp.return_value = 123 mock_rps = mock.create_autospec(ReportPortalService) mock_context = mock.Mock() mock_context._stack = [] ba = BehaveAgent(config, mock_rps) ba._feature_id = "feature_id" ba.finish_feature(mock_context, mock_feature, some_key="some_value") mock_rps.finish_test_item.assert_called_once_with( item_id="feature_id", end_time=123, status=expected_status, some_key="some_value", )
def test_log_cleanup_scenario_based(mock_timestamp, config, scope, item_id): mock_timestamp.return_value = 123 mock_rps = mock.create_autospec(ReportPortalService) mock_context, mock_func1, mock_func2 = mock.Mock(), mock.Mock, mock.Mock() mock_func1.__name__ = "cleanup_func1" mock_func2.__name__ = "cleanup_func2" mock_context._stack = [ {"@layer": scope, "@cleanups": [mock_func1, mock_func2]} ] ba = BehaveAgent(config, mock_rps) ba._feature_id = "feature_id" ba._scenario_id = "scenario_id" ba._log_cleanups(mock_context, scope) calls = [ mock.call( 123, "Execution of '{}' cleanup function".format(f_name), level="INFO", item_id=item_id, ) for f_name in ("cleanup_func1", "cleanup_func2") ] mock_rps.log.assert_has_calls(calls)