Não pode escolher mais do que 25 tópicos Os tópicos devem começar com uma letra ou um número, podem incluir traços ('-') e podem ter até 35 caracteres.

test_email.py 2.5 KiB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273
  1. from __future__ import unicode_literals
  2. import os, sys
  3. sys.path.append('.')
  4. sys.path.append('lib/py')
  5. sys.path.append('erpnext')
  6. import unittest, webnotes
  7. class TestEmail(unittest.TestCase):
  8. def setUp(self):
  9. webnotes.conn.begin()
  10. def tearDown(self):
  11. webnotes.conn.rollback()
  12. def test_send(self):
  13. from webnotes.utils.email_lib import sendmail
  14. #sendmail('rmehta@gmail.com', subject='Test Mail', msg="Test Content")
  15. def test_bulk(self):
  16. from webnotes.utils.email_lib.bulk import send
  17. send(recipients = ['rmehta@gmail.com', 'rushabh@erpnext.com'],
  18. doctype='Lead', email_field='email_id',
  19. subject='Testing Bulk', message='This is a bulk mail!')
  20. bulk = webnotes.conn.sql("""select * from `tabBulk Email` where status='Not Sent'""", as_dict=1)
  21. self.assertEquals(len(bulk), 2)
  22. self.assertTrue('rmehta@gmail.com' in [d['recipient'] for d in bulk])
  23. self.assertTrue('rushabh@erpnext.com' in [d['recipient'] for d in bulk])
  24. self.assertTrue('Unsubscribe' in bulk[0]['message'])
  25. def test_flush(self):
  26. self.test_bulk()
  27. from webnotes.utils.email_lib.bulk import flush
  28. flush()
  29. bulk = webnotes.conn.sql("""select * from `tabBulk Email` where status='Sent'""", as_dict=1)
  30. self.assertEquals(len(bulk), 2)
  31. self.assertTrue('rmehta@gmail.com' in [d['recipient'] for d in bulk])
  32. self.assertTrue('rushabh@erpnext.com' in [d['recipient'] for d in bulk])
  33. webnotes.conn.sql("""delete from `tabBulk Email`""", auto_commit=True)
  34. def test_unsubscribe(self):
  35. from webnotes.utils.email_lib.bulk import unsubscribe, send
  36. webnotes.form_dict = {
  37. 'email':'rmehta@gmail.com',
  38. 'type':'Lead',
  39. 'email_field':'email_id'
  40. }
  41. unsubscribe()
  42. send(recipients = ['rmehta@gmail.com', 'rushabh@erpnext.com'],
  43. doctype='Lead', email_field='email_id',
  44. subject='Testing Bulk', message='This is a bulk mail!')
  45. bulk = webnotes.conn.sql("""select * from `tabBulk Email` where status='Not Sent'""",
  46. as_dict=1)
  47. self.assertEquals(len(bulk), 1)
  48. self.assertFalse('rmehta@gmail.com' in [d['recipient'] for d in bulk])
  49. self.assertTrue('rushabh@erpnext.com' in [d['recipient'] for d in bulk])
  50. self.assertTrue('Unsubscribe' in bulk[0]['message'])
  51. def test_bulk_limit(self):
  52. from webnotes.utils.email_lib.bulk import unsubscribe, send, BulkLimitCrossedError
  53. self.assertRaises(BulkLimitCrossedError, send,
  54. recipients=['rmehta@gmail.com']*1000,
  55. doctype='Lead', email_field='email_id',
  56. subject='Testing Bulk', message='This is a bulk mail!')
  57. if __name__=='__main__':
  58. webnotes.connect()
  59. unittest.main()