Commit cc1d796b by David Ormsbee Committed by Diana Huang

Add email send error checking.

Add manual transaction handling.

Remove grandfather option
parent 0726211a
...@@ -69,24 +69,6 @@ class MailusersTests(TestCase): ...@@ -69,24 +69,6 @@ class MailusersTests(TestCase):
course_id='TESTX/3/TEST3') course_id='TESTX/3/TEST3')
cert3.save() cert3.save()
def test_mail_users(self):
"""
Test emailing users.
"""
fut = mailusers.Command().handle
fut()
self.assertEqual(
json.loads(self.fred.linkedin.emailed_courses), ['TESTX/1/TEST1', 'TESTX/2/TEST2'])
self.assertEqual(
json.loads(self.barney.linkedin.emailed_courses), ['TESTX/3/TEST3'])
self.assertEqual(len(mail.outbox), 3)
self.assertEqual(mail.outbox[0].from_email, settings.DEFAULT_FROM_EMAIL)
self.assertEqual(
mail.outbox[0].to, ['Fred Flintstone <fred@bedrock.gov>'])
self.assertEqual(
mail.outbox[1].to, ['Fred Flintstone <fred@bedrock.gov>'])
self.assertEqual(
mail.outbox[2].to, ['Barney Rubble <barney@bedrock.gov>'])
@mock.patch.dict('django.conf.settings.LINKEDIN_API', @mock.patch.dict('django.conf.settings.LINKEDIN_API',
{'EMAIL_WHITELIST': ['barney@bedrock.gov']}) {'EMAIL_WHITELIST': ['barney@bedrock.gov']})
...@@ -107,7 +89,7 @@ class MailusersTests(TestCase): ...@@ -107,7 +89,7 @@ class MailusersTests(TestCase):
Test sending grandfather emails. Test sending grandfather emails.
""" """
fut = mailusers.Command().handle fut = mailusers.Command().handle
fut(grandfather=True) fut()
self.assertEqual( self.assertEqual(
json.loads(self.fred.linkedin.emailed_courses), ['TESTX/1/TEST1', 'TESTX/2/TEST2']) json.loads(self.fred.linkedin.emailed_courses), ['TESTX/1/TEST1', 'TESTX/2/TEST2'])
self.assertEqual( self.assertEqual(
...@@ -127,53 +109,13 @@ class MailusersTests(TestCase): ...@@ -127,53 +109,13 @@ class MailusersTests(TestCase):
test that we aren't sending anything when in mock_run mode test that we aren't sending anything when in mock_run mode
""" """
fut = mailusers.Command().handle fut = mailusers.Command().handle
fut(grandfather=True, mock_run=True) fut(mock_run=True)
self.assertEqual( self.assertEqual(
json.loads(self.fred.linkedin.emailed_courses), []) json.loads(self.fred.linkedin.emailed_courses), [])
self.assertEqual( self.assertEqual(
json.loads(self.barney.linkedin.emailed_courses), []) json.loads(self.barney.linkedin.emailed_courses), [])
self.assertEqual(len(mail.outbox), 0) self.assertEqual(len(mail.outbox), 0)
def test_mail_users_only_new_courses(self):
"""
Test emailing users, making sure they are only emailed about new
certificates.
"""
self.fred.linkedin.emailed_courses = json.dumps(['TESTX/1/TEST1'])
self.fred.linkedin.save()
fut = mailusers.Command().handle
fut()
fred = User.objects.get(username='fred')
self.assertEqual(
json.loads(fred.linkedin.emailed_courses), ['TESTX/1/TEST1', 'TESTX/2/TEST2'])
self.assertEqual(
json.loads(self.barney.linkedin.emailed_courses), ['TESTX/3/TEST3'])
self.assertEqual(len(mail.outbox), 2)
self.assertEqual(
mail.outbox[0].to, ['Fred Flintstone <fred@bedrock.gov>'])
self.assertEqual(
mail.outbox[1].to, ['Barney Rubble <barney@bedrock.gov>'])
def test_mail_users_barney_has_no_new_courses(self):
"""
Test emailing users, making sure they are only emailed about new
certificates.
"""
self.barney.linkedin.emailed_courses = json.dumps(['TESTX/3/TEST3'])
self.barney.linkedin.save()
fut = mailusers.Command().handle
fut()
fred = User.objects.get(username='fred')
self.assertEqual(
json.loads(fred.linkedin.emailed_courses), ['TESTX/1/TEST1', 'TESTX/2/TEST2'])
self.assertEqual(
json.loads(self.barney.linkedin.emailed_courses), ['TESTX/3/TEST3'])
self.assertEqual(len(mail.outbox), 2)
self.assertEqual(
mail.outbox[0].to, ['Fred Flintstone <fred@bedrock.gov>'])
self.assertEqual(
mail.outbox[1].to, ['Fred Flintstone <fred@bedrock.gov>'])
def test_certificate_url(self): def test_certificate_url(self):
self.cert1.created_date = datetime.datetime( self.cert1.created_date = datetime.datetime(
2010, 8, 15, 0, 0, tzinfo=utc) 2010, 8, 15, 0, 0, tzinfo=utc)
...@@ -182,8 +124,8 @@ class MailusersTests(TestCase): ...@@ -182,8 +124,8 @@ class MailusersTests(TestCase):
self.assertEqual( self.assertEqual(
fut(self.cert1), fut(self.cert1),
'http://www.linkedin.com/profile/guided?' 'http://www.linkedin.com/profile/guided?'
'pfCertificationName=TestX%2FIntro101&pfAuthorityName=edX&' 'pfCertificationName=TEST1&pfAuthorityName=edX&'
'pfAuthorityId=0000000&' 'pfAuthorityId=0000000&'
'pfCertificationUrl=http%3A%2F%2Ftest.foo%2Ftest&pfLicenseNo=TESTX%2F1%2FTEST1&' 'pfCertificationUrl=http%3A%2F%2Ftest.foo%2Ftest&pfLicenseNo=TESTX%2F1%2FTEST1&'
'pfCertStartDate=201005&_mSplash=1&' 'pfCertStartDate=201005&_mSplash=1&'
'trk=eml-prof-TESTX-1-T&startTask=CERTIFICATION_NAME&force=true') 'trk=eml-prof-edX-1-gf&startTask=CERTIFICATION_NAME&force=true')
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment