Вы не можете выбрать более 25 тем Темы должны начинаться с буквы или цифры, могут содержать дефисы(-) и должны содержать не более 35 символов.

12 лет назад
12 лет назад
12 лет назад
12 лет назад
12 лет назад
12 лет назад
12 лет назад
12 лет назад
12 лет назад
12 лет назад
12 лет назад
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()