Merge pull request #17344 from edx/LEARNER-3465/catch-sailthru-connection-error

Handle Exception in getting cookies from Sailthru
This commit is contained in:
Uzair Rasheed
2018-01-31 20:05:04 +05:00
committed by GitHub
2 changed files with 18 additions and 0 deletions

View File

@@ -97,6 +97,9 @@ def add_email_marketing_cookies(sender, response=None, user=None,
except SailthruClientError as exc:
log.error("Exception attempting to obtain cookie from Sailthru: %s", unicode(exc))
return response
except Exception:
log.error("Exception Connecting to celery task for %s", user.email)
return response
if not cookie:
log.error("No cookie returned attempting to obtain cookie from Sailthru for %s", user.email)

View File

@@ -195,6 +195,21 @@ class EmailMarketingTests(TestCase):
self.assertEquals(userparms['vars']['activated'], 1)
self.assertEquals(userparms['lists']['new list'], 1)
@patch('lms.djangoapps.email_marketing.signals.get_email_cookies_via_sailthru.delay')
def test_drop_cookie_task_error(self, mock_email_cookies):
"""
Tests that task error is handled
"""
mock_email_cookies.return_value = {}
mock_email_cookies.get.side_effect = Exception
with LogCapture(LOGGER_NAME, level=logging.INFO) as logger:
add_email_marketing_cookies(None, response=None, user=self.user)
logger.check((
LOGGER_NAME, 'ERROR', 'Exception Connecting to celery task for {}'.format(
self.user.email
)
))
@patch('email_marketing.tasks.log.error')
@patch('email_marketing.tasks.SailthruClient.api_post')
@patch('email_marketing.tasks.SailthruClient.api_get')