Trying again to fix these

This commit is contained in:
shamoon 2024-10-05 21:58:32 -07:00
parent 63c524937d
commit 74a2afcfcf
2 changed files with 22 additions and 21 deletions

View File

@ -35,6 +35,7 @@ from paperless_mail.mail import apply_mail_action
from paperless_mail.models import MailAccount from paperless_mail.models import MailAccount
from paperless_mail.models import MailRule from paperless_mail.models import MailRule
from paperless_mail.models import ProcessedMail from paperless_mail.models import ProcessedMail
from paperless_mail.oauth import GMAIL_OAUTH_ENDPOINT_TOKEN
@dataclasses.dataclass @dataclasses.dataclass
@ -1645,41 +1646,42 @@ class TestMailAccountTestView(APITestCase):
self.assertEqual(response.status_code, status.HTTP_400_BAD_REQUEST) self.assertEqual(response.status_code, status.HTTP_400_BAD_REQUEST)
self.assertEqual(response.content.decode(), "Unable to connect to server") self.assertEqual(response.content.decode(), "Unable to connect to server")
@mock.patch("paperless_mail.models.MailAccount.objects.get")
@mock.patch("paperless_mail.mail.get_mailbox") @mock.patch("paperless_mail.mail.get_mailbox")
@mock.patch("paperless_mail.mail.mailbox_login") @mock.patch("paperless_mail.mail.mailbox_login")
@mock.patch("httpx.post")
def test_mail_account_test_view_refresh_token( def test_mail_account_test_view_refresh_token(
self, self,
mock_post,
mock_mailbox_login, mock_mailbox_login,
mock_get_mailbox, mock_get_mailbox,
mock_get,
): ):
mock_get_mailbox.return_value.__enter__.return_value = mock.MagicMock() mock_get_mailbox.return_value.__enter__.return_value = mock.MagicMock()
mock_mailbox_login.return_value = True mock_mailbox_login.return_value = True
existing_account = MailAccount( existing_account = MailAccount.objects.create(
imap_server="imap.example.com", imap_server="imap.example.com",
imap_port=993, imap_port=993,
imap_security=MailAccount.ImapSecurity.SSL, imap_security=MailAccount.ImapSecurity.SSL,
username="testuser", username="testuser",
password="oldpassword", password="oldpassword",
account_type=MailAccount.MailAccountType.IMAP, account_type=MailAccount.MailAccountType.GMAIL_OAUTH,
refresh_token="oldtoken", refresh_token="oldtoken",
expiration=timezone.now() - timedelta(days=1), expiration=timezone.now() - timedelta(days=1),
is_token=True, is_token=True,
) )
mock_get.return_value = existing_account
with mock.patch("paperless_mail.oauth.refresh_oauth_token", return_value=True): mock_post.return_value.status_code = status.HTTP_200_OK
data = { mock_post.return_value.json.return_value = {
"id": existing_account.id, "access_token": "newtoken",
"imap_server": "imap.example.com", "expires_in": 3600,
"imap_port": 993, }
"imap_security": MailAccount.ImapSecurity.SSL, data = {
"username": "testuser", "id": existing_account.id,
"password": "********", "imap_server": "imap.example.com",
"account_type": MailAccount.MailAccountType.IMAP, "imap_port": 993,
"is_token": True, "imap_security": MailAccount.ImapSecurity.SSL,
} "username": "testuser",
response = self.client.post(self.url, data, format="json") "password": "****",
self.assertEqual(response.status_code, status.HTTP_200_OK) "is_token": True,
self.assertEqual(response.data, {"success": True}) }
self.client.post(self.url, data, format="json")
self.assertEqual(mock_post.call_args[1]["url"], GMAIL_OAUTH_ENDPOINT_TOKEN)

View File

@ -18,13 +18,13 @@ from paperless.views import StandardPagination
from paperless_mail.mail import MailError from paperless_mail.mail import MailError
from paperless_mail.mail import get_mailbox from paperless_mail.mail import get_mailbox
from paperless_mail.mail import mailbox_login from paperless_mail.mail import mailbox_login
from paperless_mail.mail import refresh_oauth_token
from paperless_mail.models import MailAccount from paperless_mail.models import MailAccount
from paperless_mail.models import MailRule from paperless_mail.models import MailRule
from paperless_mail.oauth import GMAIL_OAUTH_ENDPOINT_TOKEN from paperless_mail.oauth import GMAIL_OAUTH_ENDPOINT_TOKEN
from paperless_mail.oauth import OUTLOOK_OAUTH_ENDPOINT_TOKEN from paperless_mail.oauth import OUTLOOK_OAUTH_ENDPOINT_TOKEN
from paperless_mail.oauth import generate_gmail_oauth_token_request_data from paperless_mail.oauth import generate_gmail_oauth_token_request_data
from paperless_mail.oauth import generate_outlook_oauth_token_request_data from paperless_mail.oauth import generate_outlook_oauth_token_request_data
from paperless_mail.oauth import refresh_oauth_token
from paperless_mail.serialisers import MailAccountSerializer from paperless_mail.serialisers import MailAccountSerializer
from paperless_mail.serialisers import MailRuleSerializer from paperless_mail.serialisers import MailRuleSerializer
@ -71,7 +71,6 @@ class MailAccountTestView(GenericAPIView):
serializer.validated_data["expiration"] = existing_account.expiration serializer.validated_data["expiration"] = existing_account.expiration
account = MailAccount(**serializer.validated_data) account = MailAccount(**serializer.validated_data)
with get_mailbox( with get_mailbox(
account.imap_server, account.imap_server,
account.imap_port, account.imap_port,