summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--service/pixelated/adapter/pixelated_mailbox.py11
-rw-r--r--service/test/adapter/test_helper.py1
2 files changed, 10 insertions, 2 deletions
diff --git a/service/pixelated/adapter/pixelated_mailbox.py b/service/pixelated/adapter/pixelated_mailbox.py
index 7521de6e..280e67c7 100644
--- a/service/pixelated/adapter/pixelated_mailbox.py
+++ b/service/pixelated/adapter/pixelated_mailbox.py
@@ -41,11 +41,18 @@ class PixelatedMailbox:
return PixelatedMail.from_leap_mail(message)
def all_tags(self):
- return Tag.from_flags(self.leap_mailbox.getFlags())
+ return Tag.from_flags(self._getFlags())
+
+ def _getFlags(self):
+ # XXX Temporary workaround while getFlags from leap is disabled
+ mbox = self.leap_mailbox._get_mbox_doc()
+ if not mbox:
+ return self.leap_mailbox.getFlags()
+ return mbox.content.get(self.leap_mailbox.FLAGS_KEY, [])
def update_tags(self, tags):
new_flags = set(tag.to_flag() for tag in tags)
- current_flags = set(self.leap_mailbox.getFlags())
+ current_flags = set(self._getFlags())
flags = tuple(current_flags.union(new_flags))
self.leap_mailbox.setFlags(flags)
diff --git a/service/test/adapter/test_helper.py b/service/test/adapter/test_helper.py
index 5362b029..f61ee49d 100644
--- a/service/test/adapter/test_helper.py
+++ b/service/test/adapter/test_helper.py
@@ -36,4 +36,5 @@ def leap_mail(uid=0, leap_flags=LEAP_FLAGS, extra_flags=[], headers={'date': str
def leap_mailbox(leap_flags=LEAP_FLAGS, extra_flags=[]):
flags = leap_flags + extra_flags
return Mock(getFlags=Mock(return_value=flags),
+ _get_mbox_doc=Mock(return_value=None),
messages=[leap_mail(uid=6, leap_flags=[], extra_flags=[])])