Spaces:
Sleeping
Sleeping
| import unittest | |
| from unittest.mock import MagicMock, patch | |
| from services.email_service import GmailService | |
| class TestGmailService(unittest.TestCase): | |
| def test_send_email_success(self, mock_credentials, mock_build): | |
| # Mock the service and its methods | |
| mock_service = MagicMock() | |
| mock_build.return_value = mock_service | |
| # Mock the send method | |
| mock_messages = mock_service.users.return_value.messages.return_value | |
| mock_messages.send.return_value.execute.return_value = {'id': '12345'} | |
| # Initialize service | |
| service = GmailService() | |
| service.client_id = "dummy_id" | |
| service.client_secret = "dummy_secret" | |
| service.refresh_token = "dummy_token" | |
| # Test authenticate | |
| self.assertTrue(service.authenticate()) | |
| # Test send_email | |
| result = service.send_email("test@example.com", "Test Subject", "Test Body") | |
| self.assertTrue(result) | |
| # Verify calls | |
| mock_messages.send.assert_called_once() | |
| def test_missing_credentials(self): | |
| service = GmailService() | |
| # Ensure credentials are None | |
| service.client_id = None | |
| self.assertFalse(service.authenticate()) | |
| if __name__ == '__main__': | |
| unittest.main() | |