summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLars Wirzenius <liw@liw.fi>2016-03-09 16:04:14 +0200
committerLars Wirzenius <liw@liw.fi>2016-03-09 16:07:26 +0200
commit86a8970f1d5a315d5b6e66a2a828d4e7a10e4e3e (patch)
tree710af917cddb91209da1c1d48a795c0e99065abb
parentc3f06b64f31ec6d32d327a4d3ec781372495d5ef (diff)
downloaddistix-86a8970f1d5a315d5b6e66a2a828d4e7a10e4e3e.tar.gz
Add Ticket.get_newest_message_timestamp method
-rw-r--r--distixlib/ticket.py15
-rw-r--r--distixlib/ticket_tests.py22
2 files changed, 37 insertions, 0 deletions
diff --git a/distixlib/ticket.py b/distixlib/ticket.py
index 716da5c..8e4e3cc 100644
--- a/distixlib/ticket.py
+++ b/distixlib/ticket.py
@@ -16,6 +16,9 @@
# =*= License: GPL-3+ =*=
+import email
+import time
+
import distixlib
@@ -81,3 +84,15 @@ class Ticket(object):
def get_dirty_messages(self):
return self._dirty_messages
+
+ def get_newest_message_timestamp(self):
+ messages = self.get_messages()
+ ticket_timestamp = None
+ for message in messages:
+ message_timestamp = self._get_message_timestamp(message)
+ ticket_timestamp = max(ticket_timestamp, message_timestamp)
+ return ticket_timestamp
+
+ def _get_message_timestamp(self, message):
+ date = message.get('Date', 'Thu, 01 Jan 1970 00:00:00 +0000')
+ return time.mktime(email.utils.parsedate(date))
diff --git a/distixlib/ticket_tests.py b/distixlib/ticket_tests.py
index 279e808..839f947 100644
--- a/distixlib/ticket_tests.py
+++ b/distixlib/ticket_tests.py
@@ -16,6 +16,8 @@
# =*= License: GPL-3+ =*=
+import email
+import time
import unittest
import distixlib
@@ -140,3 +142,23 @@ class TicketTests(unittest.TestCase):
ticket.set_title('foo')
ticket.make_clean()
self.assertFalse(ticket.is_dirty())
+
+ def test_returns_None_for_newest_message_time_if_no_messages(self):
+ ticket = distixlib.Ticket()
+ self.assertEqual(ticket.get_newest_message_timestamp(), None)
+
+ def test_returns_time_of_newest_message(self):
+ msg = email.message.Message()
+ msg['Date'] = 'Wed, 09 Mar 2016 15:37:05 +0200'
+
+ ticket = distixlib.Ticket()
+ ticket.add_message(msg)
+
+ t = ticket.get_newest_message_timestamp()
+ tm = time.gmtime(t)
+ self.assertEqual(tm.tm_year, 2016)
+ self.assertEqual(tm.tm_mon, 3)
+ self.assertEqual(tm.tm_mday, 9)
+ self.assertEqual(tm.tm_hour, 13)
+ self.assertEqual(tm.tm_min, 37)
+ self.assertEqual(tm.tm_sec, 5)