diff options
-rw-r--r-- | service/pixelated/adapter/pixelated_mailbox.py | 11 | ||||
-rw-r--r-- | service/test/adapter/test_helper.py | 1 |
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=[])]) |