mirror of
https://github.com/paperless-ngx/paperless-ngx.git
synced 2025-04-09 09:58:20 -05:00
Adds testing for test mail account
This commit is contained in:
parent
698208fcd5
commit
5012c0c97c
@ -1,3 +1,6 @@
|
|||||||
|
import json
|
||||||
|
from unittest import mock
|
||||||
|
|
||||||
from django.contrib.auth.models import User
|
from django.contrib.auth.models import User
|
||||||
from documents.models import Correspondent
|
from documents.models import Correspondent
|
||||||
from documents.models import DocumentType
|
from documents.models import DocumentType
|
||||||
@ -5,6 +8,7 @@ from documents.models import Tag
|
|||||||
from documents.tests.utils import DirectoriesMixin
|
from documents.tests.utils import DirectoriesMixin
|
||||||
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.tests.test_mail import BogusMailBox
|
||||||
from rest_framework import status
|
from rest_framework import status
|
||||||
from rest_framework.test import APITestCase
|
from rest_framework.test import APITestCase
|
||||||
|
|
||||||
@ -13,6 +17,13 @@ class TestAPIMailAccounts(DirectoriesMixin, APITestCase):
|
|||||||
ENDPOINT = "/api/mail_accounts/"
|
ENDPOINT = "/api/mail_accounts/"
|
||||||
|
|
||||||
def setUp(self):
|
def setUp(self):
|
||||||
|
self.bogus_mailbox = BogusMailBox()
|
||||||
|
|
||||||
|
patcher = mock.patch("paperless_mail.mail.MailBox")
|
||||||
|
m = patcher.start()
|
||||||
|
m.return_value = self.bogus_mailbox
|
||||||
|
self.addCleanup(patcher.stop)
|
||||||
|
|
||||||
super().setUp()
|
super().setUp()
|
||||||
|
|
||||||
self.user = User.objects.create_superuser(username="temp_admin")
|
self.user = User.objects.create_superuser(username="temp_admin")
|
||||||
@ -166,6 +177,94 @@ class TestAPIMailAccounts(DirectoriesMixin, APITestCase):
|
|||||||
self.assertEqual(returned_account2.name, "Updated Name 2")
|
self.assertEqual(returned_account2.name, "Updated Name 2")
|
||||||
self.assertEqual(returned_account2.password, "123xyz")
|
self.assertEqual(returned_account2.password, "123xyz")
|
||||||
|
|
||||||
|
def test_mail_account_test_fail(self):
|
||||||
|
"""
|
||||||
|
GIVEN:
|
||||||
|
- Errnoeous mail account details
|
||||||
|
WHEN:
|
||||||
|
- API call is made to test account
|
||||||
|
THEN:
|
||||||
|
- API returns 400 bad request
|
||||||
|
"""
|
||||||
|
|
||||||
|
response = self.client.post(
|
||||||
|
f"{self.ENDPOINT}test/",
|
||||||
|
json.dumps(
|
||||||
|
{
|
||||||
|
"imap_server": "server.example.com",
|
||||||
|
"imap_port": 443,
|
||||||
|
"imap_security": MailAccount.ImapSecurity.SSL,
|
||||||
|
"username": "admin",
|
||||||
|
"password": "notcorrect",
|
||||||
|
},
|
||||||
|
),
|
||||||
|
content_type="application/json",
|
||||||
|
)
|
||||||
|
|
||||||
|
self.assertEqual(response.status_code, status.HTTP_400_BAD_REQUEST)
|
||||||
|
|
||||||
|
def test_mail_account_test_success(self):
|
||||||
|
"""
|
||||||
|
GIVEN:
|
||||||
|
- Working mail account details
|
||||||
|
WHEN:
|
||||||
|
- API call is made to test account
|
||||||
|
THEN:
|
||||||
|
- API returns success
|
||||||
|
"""
|
||||||
|
|
||||||
|
response = self.client.post(
|
||||||
|
f"{self.ENDPOINT}test/",
|
||||||
|
json.dumps(
|
||||||
|
{
|
||||||
|
"imap_server": "server.example.com",
|
||||||
|
"imap_port": 443,
|
||||||
|
"imap_security": MailAccount.ImapSecurity.SSL,
|
||||||
|
"username": "admin",
|
||||||
|
"password": "secret",
|
||||||
|
},
|
||||||
|
),
|
||||||
|
content_type="application/json",
|
||||||
|
)
|
||||||
|
self.assertEqual(response.status_code, status.HTTP_200_OK)
|
||||||
|
self.assertEqual(response.data["success"], True)
|
||||||
|
|
||||||
|
def test_mail_account_test_existing(self):
|
||||||
|
"""
|
||||||
|
GIVEN:
|
||||||
|
- Testing server details for an existing account with obfuscated password (***)
|
||||||
|
WHEN:
|
||||||
|
- API call is made to test account
|
||||||
|
THEN:
|
||||||
|
- API returns success
|
||||||
|
"""
|
||||||
|
account = MailAccount.objects.create(
|
||||||
|
name="Email1",
|
||||||
|
username="admin",
|
||||||
|
password="secret",
|
||||||
|
imap_server="server.example.com",
|
||||||
|
imap_port=443,
|
||||||
|
imap_security=MailAccount.ImapSecurity.SSL,
|
||||||
|
character_set="UTF-8",
|
||||||
|
)
|
||||||
|
|
||||||
|
response = self.client.post(
|
||||||
|
f"{self.ENDPOINT}test/",
|
||||||
|
json.dumps(
|
||||||
|
{
|
||||||
|
"id": account.pk,
|
||||||
|
"imap_server": "server.example.com",
|
||||||
|
"imap_port": 443,
|
||||||
|
"imap_security": MailAccount.ImapSecurity.SSL,
|
||||||
|
"username": "admin",
|
||||||
|
"password": "******",
|
||||||
|
},
|
||||||
|
),
|
||||||
|
content_type="application/json",
|
||||||
|
)
|
||||||
|
self.assertEqual(response.status_code, status.HTTP_200_OK)
|
||||||
|
self.assertEqual(response.data["success"], True)
|
||||||
|
|
||||||
|
|
||||||
class TestAPIMailRules(DirectoriesMixin, APITestCase):
|
class TestAPIMailRules(DirectoriesMixin, APITestCase):
|
||||||
ENDPOINT = "/api/mail_rules/"
|
ENDPOINT = "/api/mail_rules/"
|
||||||
|
Loading…
x
Reference in New Issue
Block a user