Nevar pievienot vairāk kā 25 tēmas Tēmai ir jāsākas ar burtu vai ciparu, tā var saturēt domu zīmes ('-') un var būt līdz 35 simboliem gara.

test_email.py 2.7 KiB

pirms 12 gadiem
pirms 12 gadiem
pirms 12 gadiem
pirms 12 gadiem
pirms 12 gadiem
pirms 12 gadiem
pirms 12 gadiem
pirms 12 gadiem
pirms 12 gadiem
pirms 12 gadiem
pirms 12 gadiem
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677
  1. # Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
  2. # MIT License. See license.txt
  3. from __future__ import unicode_literals
  4. import os, sys
  5. sys.path.append('.')
  6. sys.path.append('lib/py')
  7. sys.path.append('erpnext')
  8. import unittest, webnotes
  9. from webnotes.test_runner import make_test_records
  10. make_test_records("Profile")
  11. class TestEmail(unittest.TestCase):
  12. def setUp(self):
  13. webnotes.conn.sql("""update tabProfile set unsubscribed=0""")
  14. webnotes.conn.sql("""delete from `tabBulk Email`""")
  15. def test_send(self):
  16. from webnotes.utils.email_lib import sendmail
  17. #sendmail('test@example.com', subject='Test Mail', msg="Test Content")
  18. def test_bulk(self):
  19. from webnotes.utils.email_lib.bulk import send
  20. send(recipients = ['test@example.com', 'test1@example.com'],
  21. doctype='Profile', email_field='email',
  22. subject='Testing Bulk', message='This is a bulk mail!')
  23. bulk = webnotes.conn.sql("""select * from `tabBulk Email` where status='Not Sent'""", as_dict=1)
  24. self.assertEquals(len(bulk), 2)
  25. self.assertTrue('test@example.com' in [d['recipient'] for d in bulk])
  26. self.assertTrue('test1@example.com' in [d['recipient'] for d in bulk])
  27. self.assertTrue('Unsubscribe' in bulk[0]['message'])
  28. def test_flush(self):
  29. self.test_bulk()
  30. from webnotes.utils.email_lib.bulk import flush
  31. flush(from_test=True)
  32. bulk = webnotes.conn.sql("""select * from `tabBulk Email` where status='Sent'""", as_dict=1)
  33. self.assertEquals(len(bulk), 2)
  34. self.assertTrue('test@example.com' in [d['recipient'] for d in bulk])
  35. self.assertTrue('test1@example.com' in [d['recipient'] for d in bulk])
  36. def test_unsubscribe(self):
  37. from webnotes.utils.email_lib.bulk import unsubscribe, send
  38. webnotes.form_dict = {
  39. 'email':'test@example.com',
  40. 'type':'Profile',
  41. 'email_field':'email',
  42. "from_test": True
  43. }
  44. unsubscribe()
  45. send(recipients = ['test@example.com', 'test1@example.com'],
  46. doctype='Profile', email_field='email',
  47. subject='Testing Bulk', message='This is a bulk mail!')
  48. bulk = webnotes.conn.sql("""select * from `tabBulk Email` where status='Not Sent'""",
  49. as_dict=1)
  50. self.assertEquals(len(bulk), 1)
  51. self.assertFalse('test@example.com' in [d['recipient'] for d in bulk])
  52. self.assertTrue('test1@example.com' in [d['recipient'] for d in bulk])
  53. self.assertTrue('Unsubscribe' in bulk[0]['message'])
  54. def test_bulk_limit(self):
  55. from webnotes.utils.email_lib.bulk import unsubscribe, send, BulkLimitCrossedError
  56. self.assertRaises(BulkLimitCrossedError, send,
  57. recipients=['test@example.com']*1000,
  58. doctype='Profile', email_field='email',
  59. subject='Testing Bulk', message='This is a bulk mail!')
  60. if __name__=='__main__':
  61. webnotes.connect()
  62. unittest.main()