diff --git a/CHANGELOG.md b/CHANGELOG.md index 1504dfbc..1b783d40 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -13,10 +13,6 @@ - Elasticsearch and OpenSearch connections are now tracked and cleaned up on reload via `_close_output_clients()`. - Extracted `_parse_config_file()` and `_init_output_clients()` from `_main()` in `cli.py` to support config reload and reduce code duplication. -### Changed - -- Configuration validation errors now raise `ConfigurationError` instead of calling `logger.critical()` and `sys.exit()` directly, making them recoverable during reload. - ### Fixed - `get_index_prefix()` crashed on forensic reports with `TypeError` due to `report()` instead of `report[]` dict access. diff --git a/parsedmarc/cli.py b/parsedmarc/cli.py index 110e24a6..68614a00 100644 --- a/parsedmarc/cli.py +++ b/parsedmarc/cli.py @@ -1627,7 +1627,7 @@ def _main(): try: index_prefix_domain_map = _parse_config_file(args.config_file, opts) except ConfigurationError as e: - logger.error(str(e)) + logger.critical(str(e)) exit(-1) logger.setLevel(logging.ERROR) @@ -1673,7 +1673,7 @@ def _main(): logger.exception("OpenSearch Error") exit(1) except ConfigurationError as e: - logger.error(str(e)) + logger.critical(str(e)) exit(1) except Exception as error_: logger.error("Output client error: {0}".format(error_)) diff --git a/tests.py b/tests.py index 739cf5cd..02d76fb6 100755 --- a/tests.py +++ b/tests.py @@ -1446,7 +1446,7 @@ mailbox = shared@example.com parsedmarc.cli._main() self.assertEqual(system_exit.exception.code, -1) - mock_logger.error.assert_called_once_with( + mock_logger.critical.assert_called_once_with( "certificate_path setting missing from the msgraph config section" ) mock_graph_connection.assert_not_called() @@ -1518,7 +1518,7 @@ user = owner@example.com parsedmarc.cli._main() self.assertEqual(system_exit.exception.code, -1) - mock_logger.error.assert_called_once_with( + mock_logger.critical.assert_called_once_with( "password setting missing from the msgraph config section" ) mock_graph_connection.assert_not_called() @@ -1675,7 +1675,7 @@ mailbox = shared@example.com parsedmarc.cli._main() self.assertEqual(system_exit.exception.code, -1) - mock_logger.error.assert_called_once_with( + mock_logger.critical.assert_called_once_with( "client_secret setting missing from the msgraph config section" ) mock_graph_connection.assert_not_called() @@ -1707,7 +1707,7 @@ mailbox = shared@example.com parsedmarc.cli._main() self.assertEqual(system_exit.exception.code, -1) - mock_logger.error.assert_called_once_with( + mock_logger.critical.assert_called_once_with( "tenant_id setting missing from the msgraph config section" ) mock_graph_connection.assert_not_called() @@ -1739,7 +1739,7 @@ tenant_id = tenant-id parsedmarc.cli._main() self.assertEqual(system_exit.exception.code, -1) - mock_logger.error.assert_called_once_with( + mock_logger.critical.assert_called_once_with( "mailbox setting missing from the msgraph config section" ) mock_graph_connection.assert_not_called() @@ -1809,7 +1809,7 @@ mailbox = shared@example.com parsedmarc.cli._main() self.assertEqual(system_exit.exception.code, -1) - mock_logger.error.assert_called_once_with( + mock_logger.critical.assert_called_once_with( "tenant_id setting missing from the msgraph config section" ) mock_graph_connection.assert_not_called() @@ -1840,7 +1840,7 @@ tenant_id = tenant-id parsedmarc.cli._main() self.assertEqual(system_exit.exception.code, -1) - mock_logger.error.assert_called_once_with( + mock_logger.critical.assert_called_once_with( "mailbox setting missing from the msgraph config section" ) mock_graph_connection.assert_not_called() @@ -1872,7 +1872,7 @@ certificate_path = /tmp/msgraph-cert.pem parsedmarc.cli._main() self.assertEqual(system_exit.exception.code, -1) - mock_logger.error.assert_called_once_with( + mock_logger.critical.assert_called_once_with( "tenant_id setting missing from the msgraph config section" ) mock_graph_connection.assert_not_called() @@ -1904,7 +1904,7 @@ certificate_path = /tmp/msgraph-cert.pem parsedmarc.cli._main() self.assertEqual(system_exit.exception.code, -1) - mock_logger.error.assert_called_once_with( + mock_logger.critical.assert_called_once_with( "mailbox setting missing from the msgraph config section" ) mock_graph_connection.assert_not_called()