summaryrefslogtreecommitdiff
path: root/py-fake-service/app/adapter/mail.py
diff options
context:
space:
mode:
authorDuda Dornelles <ddornell@thoughtworks.com>2014-08-12 16:45:26 -0300
committerDuda Dornelles <ddornell@thoughtworks.com>2014-08-12 18:50:20 -0300
commitbf7b6aa193188c95c50cbc9d24f4be56afa6dc6f (patch)
treea7774f148defd799f2e24547fca0e22b63db681c /py-fake-service/app/adapter/mail.py
parent27e07e05d97b577ef6b62b74ca7daebafd41db98 (diff)
sending mails in py-fake-service
Diffstat (limited to 'py-fake-service/app/adapter/mail.py')
-rw-r--r--py-fake-service/app/adapter/mail.py38
1 files changed, 29 insertions, 9 deletions
diff --git a/py-fake-service/app/adapter/mail.py b/py-fake-service/app/adapter/mail.py
index 380d1e2c..242501c8 100644
--- a/py-fake-service/app/adapter/mail.py
+++ b/py-fake-service/app/adapter/mail.py
@@ -1,15 +1,31 @@
from datetime import datetime
import random
+import calendar
class Mail:
- def __init__(self, mbox_mail, ident):
- self.header = self._get_headers(mbox_mail)
- self.ident = ident
- self.body = mbox_mail.get_payload()
- self.tags = self._get_tags(mbox_mail)
- self.security_casing = {}
- self.status = self._get_status()
+ NOW = calendar.timegm(datetime.strptime(datetime.now().isoformat(), "%Y-%m-%dT%H:%M:%S.%f").timetuple())
+ @staticmethod
+ def from_json(mail_json):
+ mail = Mail()
+ mail.header = mail_json['header']
+ mail.header['date'] = datetime.now().isoformat()
+ mail.ident = mail_json['ident'] or 0
+ mail.body = mail_json['body']
+ mail.tags = mail_json['tags']
+ mail.security_casing = {}
+ mail.status = []
+ return mail
+
+
+ def __init__(self, mbox_mail=None, ident=None):
+ if mbox_mail:
+ self.header = self._get_headers(mbox_mail)
+ self.ident = ident
+ self.body = mbox_mail.get_payload()
+ self.tags = self._get_tags(mbox_mail)
+ self.security_casing = {}
+ self.status = self._get_status()
def _get_status(self):
status = []
@@ -23,7 +39,7 @@ class Mail:
headers['from'] = mbox_mail.get_from()
headers['to'] = [mbox_mail.get('To')]
headers['subject'] = mbox_mail.get('Subject')
- headers['date'] = datetime.fromtimestamp(random.randrange(1222222222, 1444444444)).isoformat()
+ headers['date'] = datetime.fromtimestamp(random.randrange(1222222222, self.NOW)).isoformat()
return headers
def _get_tags(self, mbox_mail):
@@ -32,4 +48,8 @@ class Mail:
@property
def subject(self):
- return self.headers['subject']
+ return self.header['subject']
+
+ @property
+ def date(self):
+ return self.header['date']