From b8fd19215f59f7f8dbe69528aefca700a2190ecd Mon Sep 17 00:00:00 2001 From: Aravind Vasudevan Date: Thu, 14 Sep 2023 22:54:04 +0000 Subject: main: Use repo logger Bug: b/292704435 Change-Id: Ica02e4c00994a2f64083bb36e8f4ee8aa45d76bd Reviewed-on: https://gerrit-review.googlesource.com/c/git-repo/+/386454 Reviewed-by: Jason Chang Commit-Queue: Aravind Vasudevan Tested-by: Aravind Vasudevan --- tests/test_repo_logging.py | 66 ++++++++++++++++++++++++---------------------- 1 file changed, 34 insertions(+), 32 deletions(-) (limited to 'tests/test_repo_logging.py') diff --git a/tests/test_repo_logging.py b/tests/test_repo_logging.py index 52f251a7..0f6a3355 100644 --- a/tests/test_repo_logging.py +++ b/tests/test_repo_logging.py @@ -16,47 +16,49 @@ import unittest from unittest import mock +from error import RepoExitError from repo_logging import RepoLogger class TestRepoLogger(unittest.TestCase): - def test_log_aggregated_errors_logs_aggregated_errors(self): - """Test if log_aggregated_errors outputs aggregated errors.""" + @mock.patch.object(RepoLogger, "error") + def test_log_aggregated_errors_logs_aggregated_errors(self, mock_error): + """Test if log_aggregated_errors logs a list of aggregated errors.""" logger = RepoLogger(__name__) - result = [] - - def mock_handler(log): - nonlocal result - result.append(log.getMessage()) - - mock_out = mock.MagicMock() - mock_out.level = 0 - mock_out.handle = mock_handler - logger.addHandler(mock_out) - - logger.error("Never gonna give you up") - logger.error("Never gonna let you down") - logger.error("Never gonna run around and desert you") logger.log_aggregated_errors( + RepoExitError( + aggregate_errors=[ + Exception("foo"), + Exception("bar"), + Exception("baz"), + Exception("hello"), + Exception("world"), + Exception("test"), + ] + ) + ) + + mock_error.assert_has_calls( [ - "Never gonna give you up", - "Never gonna let you down", - "Never gonna run around and desert you", + mock.call("=" * 80), + mock.call( + "Repo command failed due to the following `%s` errors:", + "RepoExitError", + ), + mock.call("foo\nbar\nbaz\nhello\nworld"), + mock.call("+%d additional errors...", 1), ] ) - self.assertEqual( - result, + @mock.patch.object(RepoLogger, "error") + def test_log_aggregated_errors_logs_single_error(self, mock_error): + """Test if log_aggregated_errors logs empty aggregated_errors.""" + logger = RepoLogger(__name__) + logger.log_aggregated_errors(RepoExitError()) + + mock_error.assert_has_calls( [ - "Never gonna give you up", - "Never gonna let you down", - "Never gonna run around and desert you", - "=" * 80, - "Repo command failed due to following errors:", - ( - "Never gonna give you up\n" - "Never gonna let you down\n" - "Never gonna run around and desert you" - ), - ], + mock.call("=" * 80), + mock.call("Repo command failed: %s", "RepoExitError"), + ] ) -- cgit v1.2.3-54-g00ecf