diff --git a/CHANGELOG.md b/CHANGELOG.md index 5e43e571..940a3afb 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -15,7 +15,8 @@ - Connection timeout errors now include the URL and suggest increasing timeout parameter - Connection errors provide actionable steps like checking internet connection and increasing retries - Network errors include clear failure reasons and suggested actions - - HTTP response errors now include status code and reason. + - HTTP response errors now include status code and reason + - Changed default value of `verify_ssl` to `True` * `lobster-python`: - Added system test infrastructure and Bazel targets under `tests_system/lobster_python`. diff --git a/lobster/tools/codebeamer/codebeamer.py b/lobster/tools/codebeamer/codebeamer.py index e14baedd..6dc63f1a 100755 --- a/lobster/tools/codebeamer/codebeamer.py +++ b/lobster/tools/codebeamer/codebeamer.py @@ -157,7 +157,9 @@ def query_cb_single(cb_config: Config, url: str): f"Reason: {ex}\n" "\nPossible actions:\n" "• Check internet connection\n" - "• Increase retries using 'num_request_retry'" + "• Increase retries using 'num_request_retry'\n" + "• Check SSL certificates or disable verification by setting " + f"'{SupportedConfigKeys.VERIFY_SSL.value}' to false" ) from ex except RequestException as ex: @@ -507,7 +509,7 @@ def parse_config_data(data: dict) -> Config: references=ensure_list(data.get(SupportedConfigKeys.REFS.value, [])), import_tagged=data.get(SupportedConfigKeys.IMPORT_TAGGED.value), import_query=data.get(SupportedConfigKeys.IMPORT_QUERY.value), - verify_ssl=data.get(SupportedConfigKeys.VERIFY_SSL.value, False), + verify_ssl=data.get(SupportedConfigKeys.VERIFY_SSL.value, True), page_size=data.get(SupportedConfigKeys.PAGE_SIZE.value, 100), schema=data.get(SupportedConfigKeys.SCHEMA.value, "Requirement"), timeout=data.get(SupportedConfigKeys.TIMEOUT.value, 30), diff --git a/tests_system/lobster_codebeamer/lobster_codebeamer_test_runner.py b/tests_system/lobster_codebeamer/lobster_codebeamer_test_runner.py index 703fc8e0..36632467 100644 --- a/tests_system/lobster_codebeamer/lobster_codebeamer_test_runner.py +++ b/tests_system/lobster_codebeamer/lobster_codebeamer_test_runner.py @@ -17,6 +17,7 @@ class ConfigFileData: page_size: Optional[int] = None num_request_retry: Optional[int] = None retry_error_codes: Optional[List[int]] = None + verify_ssl: Optional[bool] = None def set_default_root_token_out(self): self.root = f"https://localhost:{PORT}" @@ -38,6 +39,7 @@ def append_if_not_none(key, value): append_if_not_none("page_size", self.page_size) append_if_not_none("num_request_retry", self.num_request_retry) append_if_not_none("retry_error_codes", self.retry_error_codes) + append_if_not_none("verify_ssl", self.verify_ssl) with open(filename, mode='w', encoding="UTF-8") as file: yaml.dump(data, file) diff --git a/tests_system/lobster_codebeamer/test_extract_requirements.py b/tests_system/lobster_codebeamer/test_extract_requirements.py index d4efd656..05a589ac 100644 --- a/tests_system/lobster_codebeamer/test_extract_requirements.py +++ b/tests_system/lobster_codebeamer/test_extract_requirements.py @@ -20,6 +20,7 @@ def setUpClass(cls): def setUp(self): super().setUp() self._test_runner = self.create_test_runner() + self._test_runner.config_file_data.verify_ssl = False def extract_requirements(self, cfg: ConfigFileData, diff --git a/tests_system/lobster_codebeamer/test_lobster_codebeamer.py b/tests_system/lobster_codebeamer/test_lobster_codebeamer.py index ec893646..2a7c2782 100644 --- a/tests_system/lobster_codebeamer/test_lobster_codebeamer.py +++ b/tests_system/lobster_codebeamer/test_lobster_codebeamer.py @@ -20,6 +20,7 @@ def setUp(self): super().setUp() self.codebeamer_flask.reset() self._test_runner = self.create_test_runner() + self._test_runner.config_file_data.verify_ssl = False def test_retry_if_configured(self): """Ensure the tool retries and exits after exhausting diff --git a/tests_system/lobster_codebeamer/test_valid_flow.py b/tests_system/lobster_codebeamer/test_valid_flow.py index d54ed85f..4d12d5ee 100644 --- a/tests_system/lobster_codebeamer/test_valid_flow.py +++ b/tests_system/lobster_codebeamer/test_valid_flow.py @@ -20,6 +20,7 @@ def setUp(self): super().setUp() self.codebeamer_flask.reset() self._test_runner = self.create_test_runner() + self._test_runner.config_file_data.verify_ssl = False def test_valid_query_id(self): # lobster-trace: codebeamer_req.Query_Id_Parameter