From dc513b474921daa4d3a83fe408ba1096e8be0372 Mon Sep 17 00:00:00 2001 From: Zack Koppert Date: Mon, 4 Nov 2024 21:15:36 -0800 Subject: [PATCH] improve auth test coverage by adding invalid and failed app install tests Signed-off-by: Zack Koppert --- test_auth.py | 37 +++++++++++++++++++++++++++++++++++++ 1 file changed, 37 insertions(+) diff --git a/test_auth.py b/test_auth.py index 7a595fe..9337abc 100644 --- a/test_auth.py +++ b/test_auth.py @@ -4,6 +4,7 @@ from unittest.mock import MagicMock, patch import auth +import requests class TestAuth(unittest.TestCase): @@ -91,6 +92,42 @@ def test_get_github_app_installation_token(self, mock_post): self.assertEqual(result, dummy_token) + @patch("github3.apps.create_jwt_headers", MagicMock(return_value="gh_token")) + @patch("auth.requests.post") + def test_get_github_app_installation_token_request_failure(self, mock_post): + """ + Test the get_github_app_installation_token function returns None when the request fails. + """ + # Mock the post request to raise a RequestException + mock_post.side_effect = requests.exceptions.RequestException("Request failed") + + # Call the function with test data + result = auth.get_github_app_installation_token( + ghe="https://api.github.com", + gh_app_id=12345, + gh_app_private_key_bytes=b"private_key", + gh_app_installation_id=678910, + ) + + # Assert that the result is None + self.assertIsNone(result) + + @patch("github3.login") + def test_auth_to_github_invalid_credentials(self, mock_login): + """ + Test the auth_to_github function raises correct ValueError + when credentials are present but incorrect. + """ + mock_login.return_value = None + with self.assertRaises(ValueError) as context_manager: + auth.auth_to_github("not_a_valid_token", "", "", b"", "", False) + + the_exception = context_manager.exception + self.assertEqual( + str(the_exception), + "Unable to authenticate to GitHub", + ) + if __name__ == "__main__": unittest.main()