summaryrefslogtreecommitdiff
path: root/tests/db/test_utils.py
diff options
context:
space:
mode:
Diffstat (limited to 'tests/db/test_utils.py')
-rw-r--r--tests/db/test_utils.py52
1 files changed, 52 insertions, 0 deletions
diff --git a/tests/db/test_utils.py b/tests/db/test_utils.py
index a27bee51..6ddc8843 100644
--- a/tests/db/test_utils.py
+++ b/tests/db/test_utils.py
@@ -22,6 +22,7 @@ import mock
from alot import crypto
from alot.db import utils
from alot.errors import GPGProblem
+from alot.account import Account
from ..utilities import make_key, make_uid, TestCaseClassCleanup
@@ -804,3 +805,54 @@ class Test_ensure_unique_address(unittest.TestCase):
self.assertListEqual(actual, expected)
+class _AccountTestClass(Account):
+ """Implements stubs for ABC methods."""
+
+ def send_mail(self, mail):
+ pass
+
+
+class TestClearMyAddress(unittest.TestCase):
+
+ me1 = u'me@example.com'
+ me2 = u'ME@example.com'
+ me3 = u'me+label@example.com'
+ me4 = u'ME+label@example.com'
+ me_regex = r'me\+.*@example.com'
+ me_named = u'alot team <me@example.com>'
+ you = u'you@example.com'
+ named = u'somebody you know <somebody@example.com>'
+ imposter = u'alot team <imposter@example.com>'
+ mine = _AccountTestClass(
+ address=me1, aliases=[], alias_regexp=me_regex, case_sensitive_username=True)
+
+
+ def test_empty_input_returns_empty_list(self):
+ self.assertListEqual(
+ utils.clear_my_address(self.mine, []), [])
+
+ def test_only_my_emails_result_in_empty_list(self):
+ expected = []
+ actual = utils.clear_my_address(
+ self.mine, [self.me1, self.me3, self.me_named])
+ self.assertListEqual(actual, expected)
+
+ def test_other_emails_are_untouched(self):
+ input_ = [self.you, self.me1, self.me_named, self.named]
+ expected = [self.you, self.named]
+ actual = utils.clear_my_address(self.mine, input_)
+ self.assertListEqual(actual, expected)
+
+ def test_case_matters(self):
+ input_ = [self.me1, self.me2, self.me3, self.me4]
+ expected = [self.me2, self.me4]
+ actual = utils.clear_my_address(self.mine, input_)
+ self.assertListEqual(actual, expected)
+
+ def test_same_address_with_different_real_name_is_removed(self):
+ input_ = [self.me_named, self.you]
+ expected = [self.you]
+ actual = utils.clear_my_address(self.mine, input_)
+ self.assertListEqual(actual, expected)
+
+