diff options
author | Patrick Maia and Victor Shyba <pixelated-team+pmaia+vshyba@thoughtworks.com> | 2014-09-07 23:18:04 +0000 |
---|---|---|
committer | Patrick Maia <pmaia@thoughtworks.com> | 2014-09-07 23:18:04 +0000 |
commit | 07515ff8b05ea3795fd296e6e29ff1b8d548b47c (patch) | |
tree | b5284c5c8ed2314aabf045cc9d906eed6fcdfac6 | |
parent | eca2d8db9fa967b4cad39611fe229e2f9421c9fe (diff) |
#51 - removes tag from the index when it is not being used anymore
-rw-r--r-- | service/pixelated/adapter/pixelated_mailbox.py | 5 | ||||
-rw-r--r-- | service/test/adapter/pixelated_mailbox_test.py | 4 |
2 files changed, 8 insertions, 1 deletions
diff --git a/service/pixelated/adapter/pixelated_mailbox.py b/service/pixelated/adapter/pixelated_mailbox.py index a5b07660..2723dfc1 100644 --- a/service/pixelated/adapter/pixelated_mailbox.py +++ b/service/pixelated/adapter/pixelated_mailbox.py @@ -61,7 +61,10 @@ class PixelatedMailbox: for removed_tag in removed_tags: tag = self.tag_index.get(removed_tag) tag.decrement(mail_ident) - self.tag_index.set(tag) + if tag.total == 0: + self.tag_index.remove(tag.name) + else: + self.tag_index.set(tag) for added_tag in added_tags: tag = self.tag_index.get(added_tag) or Tag(added_tag) tag.increment(mail_ident) diff --git a/service/test/adapter/pixelated_mailbox_test.py b/service/test/adapter/pixelated_mailbox_test.py index e763d8fe..7e8e9d3c 100644 --- a/service/test/adapter/pixelated_mailbox_test.py +++ b/service/test/adapter/pixelated_mailbox_test.py @@ -51,8 +51,12 @@ class TestPixelatedMailbox(unittest.TestCase): tag_index.close_db() mailbox = PixelatedMailbox(test_helper.leap_mailbox(), self.db_file_path) self.assertEquals(0, mailbox.tag_index.get('inbox').total) + self.assertEquals(1, mailbox.tag_index.get('one_tag').total) + mailbox.notify_tags_updated(set(['inbox']), set(['one_tag']), 12) + self.assertEquals(1, mailbox.tag_index.get('inbox').total) + self.assertIsNone(mailbox.tag_index.get('one_tag')) def test_index_is_initialized_with_mail_tags_if_empty(self): mail_one = test_helper.leap_mail(uid=0, extra_headers={'X-Tags': ['tag_1']}) |