mirror of https://github.com/zulip/zulip.git
emails: Don't log emails while running test suite.
Modified the tests to ensure 100% coverage.
This commit is contained in:
parent
d8c19cb003
commit
6aa4b64dc0
|
@ -6,23 +6,22 @@ from zerver.lib.test_classes import ZulipTestCase
|
|||
from zproject.email_backends import get_forward_address
|
||||
|
||||
class EmailLogTest(ZulipTestCase):
|
||||
def test_get_email_log_page(self) -> None:
|
||||
result = self.client_get("/emails/")
|
||||
self.assert_in_success_response(["All the emails sent in the Zulip"], result)
|
||||
|
||||
def test_clear_email_logs(self) -> None:
|
||||
result = self.client_get('/emails/clear/')
|
||||
self.assertEqual(result.status_code, 302)
|
||||
result = self.client_get(result['Location'])
|
||||
self.assertIn('manually generate most of the emails by clicking', str(result.content))
|
||||
|
||||
def test_generate_emails(self) -> None:
|
||||
def test_generate_and_clear_email_log(self) -> None:
|
||||
with self.settings(EMAIL_BACKEND='zproject.email_backends.EmailLogBackEnd'), \
|
||||
mock.patch('logging.info', return_value=None):
|
||||
with mock.patch('zproject.email_backends.EmailLogBackEnd.send_email_smtp'):
|
||||
result = self.client_get('/emails/generate/')
|
||||
self.assertEqual(result.status_code, 302)
|
||||
self.assertIn('emails', result['Location'])
|
||||
mock.patch('zproject.email_backends.EmailLogBackEnd.send_email_smtp'), \
|
||||
mock.patch('logging.info', return_value=None), \
|
||||
self.settings(DEVELOPMENT_LOG_EMAILS=True):
|
||||
result = self.client_get('/emails/generate/')
|
||||
self.assertEqual(result.status_code, 302)
|
||||
self.assertIn('emails', result['Location'])
|
||||
|
||||
result = self.client_get("/emails/")
|
||||
self.assert_in_success_response(["All the emails sent in the Zulip"], result)
|
||||
|
||||
result = self.client_get('/emails/clear/')
|
||||
self.assertEqual(result.status_code, 302)
|
||||
result = self.client_get(result['Location'])
|
||||
self.assertIn('manually generate most of the emails by clicking', str(result.content))
|
||||
|
||||
def test_forward_address_details(self) -> None:
|
||||
forward_address = "forward-to@example.com"
|
||||
|
|
|
@ -89,9 +89,10 @@ class EmailLogBackEnd(BaseEmailBackend):
|
|||
|
||||
def send_messages(self, email_messages: List[EmailMultiAlternatives]) -> int:
|
||||
for email in email_messages:
|
||||
self.log_email(email)
|
||||
if get_forward_address():
|
||||
self.send_email_smtp(email)
|
||||
email_log_url = settings.ROOT_DOMAIN_URI + "/emails"
|
||||
logging.info("Emails sent in development are available at %s" % (email_log_url,))
|
||||
if settings.DEVELOPMENT_LOG_EMAILS:
|
||||
self.log_email(email)
|
||||
email_log_url = settings.ROOT_DOMAIN_URI + "/emails"
|
||||
logging.info("Emails sent in development are available at %s" % (email_log_url,))
|
||||
return len(email_messages)
|
||||
|
|
|
@ -240,6 +240,10 @@ DEFAULT_SETTINGS = {
|
|||
# We use SubMessage for now-experimental features like
|
||||
# slash commands.
|
||||
'ALLOW_SUB_MESSAGES': DEVELOPMENT,
|
||||
|
||||
# We log emails in development environment for accessing
|
||||
# them easily through /emails page
|
||||
'DEVELOPMENT_LOG_EMAILS': DEVELOPMENT,
|
||||
}
|
||||
|
||||
# These settings are not documented in prod_settings_template.py.
|
||||
|
|
|
@ -158,3 +158,7 @@ PUSH_NOTIFICATION_BOUNCER_URL = None
|
|||
SLOW_QUERY_LOGS_STREAM = None
|
||||
|
||||
THUMBOR_URL = 'http://127.0.0.1:9995'
|
||||
|
||||
# Logging the emails while running the tests adds them
|
||||
# to /emails page.
|
||||
DEVELOPMENT_LOG_EMAILS = False
|
||||
|
|
Loading…
Reference in New Issue