summaryrefslogtreecommitdiff
path: root/distixlib/ticket_store.py
diff options
context:
space:
mode:
Diffstat (limited to 'distixlib/ticket_store.py')
-rw-r--r--distixlib/ticket_store.py29
1 files changed, 29 insertions, 0 deletions
diff --git a/distixlib/ticket_store.py b/distixlib/ticket_store.py
index 73f7257..a174b02 100644
--- a/distixlib/ticket_store.py
+++ b/distixlib/ticket_store.py
@@ -172,6 +172,35 @@ class TicketStore(object):
ticket_dir = self._get_dir_for_ticket(ticket)
return self._saver.save_changes_to_ticket(ticket, ticket_dir)
+ def ticket_has_message_with_text(
+ self, ticket, msg_text): # pragma: no cover
+ filenames = self.get_message_filenames(ticket)
+ for filename in filenames:
+ if self._file_contains(filename, msg_text):
+ return True
+ return False
+
+ def get_message_filenames(self, ticket): # pragma: no cover
+ ticket_dir = self._get_dir_for_ticket(ticket)
+ maildir_pathname = self._saver._get_maildir_pathname(ticket_dir)
+
+ message_filenames = []
+
+ for dirname, subdirs, filenames in os.walk(maildir_pathname):
+ if '.empty' in subdirs:
+ subdirs.remove('.empty')
+ for filename in filenames:
+ message_filenames.append(os.path.join(dirname, filename))
+
+ return message_filenames
+
+ def _file_contains(self, filename, data): # pragma: no cover
+ st = os.lstat(filename)
+ if st.st_size != len(data):
+ return False
+ with open(filename) as f:
+ return f.read() == data
+
class _TicketCache(object):