summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--alot/db/message.py16
-rw-r--r--tests/db/message_test.py2
2 files changed, 12 insertions, 6 deletions
diff --git a/alot/db/message.py b/alot/db/message.py
index 9d7437eb..72d87f12 100644
--- a/alot/db/message.py
+++ b/alot/db/message.py
@@ -45,14 +45,22 @@ class Message(object):
except ValueError:
self._datetime = None
self._filename = msg.get_filename()
- try:
- self._from = decode_header(msg.get_header('From'))
- except NullPointerError:
- self._from = ''
self._email = None # will be read upon first use
self._attachments = None # will be read upon first use
self._tags = set(msg.get_tags())
+ try:
+ sender = decode_header(msg.get_header('From'))
+ except NullPointerError:
+ sender = None
+ if sender:
+ self._from = sender
+ elif 'draft' in self._tags:
+ acc = settings.get_accounts()[0]
+ self._from = '"{}" <{}>'.format(acc.realname, unicode(acc.address))
+ else:
+ self._from = '"Unknown" <>'
+
def __str__(self):
"""prettyprint the message"""
aname, aaddress = self.get_author()
diff --git a/tests/db/message_test.py b/tests/db/message_test.py
index 2f198759..a50d943e 100644
--- a/tests/db/message_test.py
+++ b/tests/db/message_test.py
@@ -88,7 +88,6 @@ class TestMessage(unittest.TestCase):
MockNotmuchMessage({'Sender': '"User Name" <user@example.com>'}))
self.assertEqual(msg.get_author(), ('User Name', 'user@example.com'))
- @unittest.expectedFailure
def test_get_author_no_name_draft(self):
"""Message._from is populated from the default account if the draft tag
is present.
@@ -102,7 +101,6 @@ class TestMessage(unittest.TestCase):
mock.Mock(), MockNotmuchMessage(tags=['draft']))
self.assertEqual(msg.get_author(), ('User Name', 'user@example.com'))
- @unittest.expectedFailure
def test_get_author_no_name(self):
"""Message._from is set to 'Unkown' if there is no relavent header and
the message is not a draft.