From 1eb185e7c722f2a1b68b1f17cbd6ba737da8e602 Mon Sep 17 00:00:00 2001 From: shamoon <4887959+shamoon@users.noreply.github.com> Date: Mon, 7 Oct 2024 11:25:37 -0700 Subject: [PATCH] mock httpx_oauth refresh to actually test paperless one --- src/paperless_mail/oauth.py | 4 --- src/paperless_mail/tests/test_mail_oauth.py | 33 ++++++++++++++------- 2 files changed, 22 insertions(+), 15 deletions(-) diff --git a/src/paperless_mail/oauth.py b/src/paperless_mail/oauth.py index fcad2425e..65060a636 100644 --- a/src/paperless_mail/oauth.py +++ b/src/paperless_mail/oauth.py @@ -101,10 +101,6 @@ class PaperlessMailOAuth2Manager: """ logger = logging.getLogger("paperless_mail") logger.debug(f"Attempting to refresh oauth token for account {account}") - if not account.refresh_token: - logger.error(f"Account {account}: No refresh token available.") - return False - try: result: OAuth2Token if account.account_type == MailAccount.MailAccountType.GMAIL_OAUTH: diff --git a/src/paperless_mail/tests/test_mail_oauth.py b/src/paperless_mail/tests/test_mail_oauth.py index fd3b7627c..c64c26002 100644 --- a/src/paperless_mail/tests/test_mail_oauth.py +++ b/src/paperless_mail/tests/test_mail_oauth.py @@ -186,11 +186,11 @@ class TestMailOAuth( @mock.patch("paperless_mail.mail.get_mailbox") @mock.patch( - "paperless_mail.oauth.PaperlessMailOAuth2Manager.refresh_account_oauth_token", + "httpx_oauth.oauth2.BaseOAuth2.refresh_token", ) def test_refresh_token_on_handle_mail_account( self, - mock_refresh_account_oauth_token, + mock_refresh_token, mock_get_mailbox, ): """ @@ -216,13 +216,21 @@ class TestMailOAuth( expiration=timezone.now() - timedelta(days=1), ) - mock_refresh_account_oauth_token.return_value = True + mock_refresh_token.return_value = { + "access_token": "test_access_token", + "refresh_token": "test_refresh_token", + "expires_in": 3600, + } self.mail_account_handler.handle_mail_account(mail_account) - mock_refresh_account_oauth_token.assert_called_once() - mock_refresh_account_oauth_token.reset_mock() + mock_refresh_token.assert_called_once() + mock_refresh_token.reset_mock() - mock_refresh_account_oauth_token.return_value = True + mock_refresh_token.return_value = { + "access_token": "test_access_token", + "refresh_token": "test_refresh", + "expires_in": 3600, + } outlook_mail_account = MailAccount.objects.create( name="Test Outlook Mail Account", username="test_username", @@ -235,15 +243,15 @@ class TestMailOAuth( ) self.mail_account_handler.handle_mail_account(outlook_mail_account) - mock_refresh_account_oauth_token.assert_called_once() + mock_refresh_token.assert_called_once() @mock.patch("paperless_mail.mail.get_mailbox") @mock.patch( - "paperless_mail.oauth.PaperlessMailOAuth2Manager.refresh_account_oauth_token", + "httpx_oauth.oauth2.BaseOAuth2.refresh_token", ) def test_refresh_token_on_handle_mail_account_fails( self, - mock_refresh_account_oauth_token, + mock_refresh_token, mock_get_mailbox, ): """ @@ -270,10 +278,13 @@ class TestMailOAuth( expiration=timezone.now() - timedelta(days=1), ) - mock_refresh_account_oauth_token.return_value = False + mock_refresh_token.return_value = { + "error": "test_error", + } + # returns 0 processed mails self.assertEqual( self.mail_account_handler.handle_mail_account(mail_account), 0, ) - mock_refresh_account_oauth_token.assert_called_once() + mock_refresh_token.assert_called_once()