def test_email_send(self):
def handler(instance, **kwarg):
# get email open event
if instance.key != TRACKER_EMAIL_SEND:
# ignore other target event
return
self.assertEqual(instance.value, 'success')
# add entry on db for set test in success => SuccessException make
# infinite loop
TrackerInfos.objects.create(
target_tracker=instance,
raw='handler_%s_test_ok' % TRACKER_EMAIL_SEND
)
post_save.connect(handler, sender=Tracker)
# send mail
campaign = self.send_campaign()
# test if handler has call
raw = 'handler_%s_test_ok' % TRACKER_EMAIL_SEND
test_result_tracker = TrackerInfos.objects.filter(raw=raw).first()
self.assertIsNotNone(test_result_tracker)
tracker = test_result_tracker.target_tracker
self.assertEqual(campaign.pk, tracker.campaign.pk)
self.assertEqual(TRACKER_EMAIL_SEND, tracker.key)
# clean
self.assertTrue(post_save.disconnect(handler, sender=Tracker))
评论列表
文章目录