summaryrefslogtreecommitdiff
path: root/tests/addressbook
diff options
context:
space:
mode:
authorLucas Hoffmann <l-m-h@web.de>2017-06-23 01:24:21 +0200
committerLucas Hoffmann <l-m-h@web.de>2017-06-23 01:26:01 +0200
commit3484a154d222635ffceeccfdd8ea3bbfca9028aa (patch)
tree4fc7d9de37d7275096164803269c68e5e7c38135 /tests/addressbook
parent6885f5283b2a944200bc3e4d7baf658fc57f492f (diff)
Add tests for addressbook.AddressBook
Diffstat (limited to 'tests/addressbook')
-rw-r--r--tests/addressbook/init_test.py67
1 files changed, 67 insertions, 0 deletions
diff --git a/tests/addressbook/init_test.py b/tests/addressbook/init_test.py
new file mode 100644
index 00000000..a7f3f9b5
--- /dev/null
+++ b/tests/addressbook/init_test.py
@@ -0,0 +1,67 @@
+# Copyright (C) 2017 Lucas Hoffmann
+# This file is released under the GNU GPL, version 3 or a later revision.
+# For further details see the COPYING file
+from __future__ import absolute_import
+
+import unittest
+
+from alot import addressbook
+
+
+class _AddressBook(addressbook.AddressBook):
+
+ """Implements stubs for ABC methods. The return value for get_contacts can
+ be set on instance creation."""
+
+ def __init__(self, contacts, **kwargs):
+ self._contacts = contacts
+ super(_AddressBook, self).__init__(**kwargs)
+
+ def get_contacts(self):
+ return self._contacts
+
+
+class TestAddressBook(unittest.TestCase):
+
+ def test_lookup_will_match_names(self):
+ contacts = [('foo', 'x@example.com'), ('bar', 'y@example.com'),
+ ('baz', 'z@example.com')]
+ abook = _AddressBook(contacts)
+ actual = abook.lookup('bar')
+ expected = [contacts[1]]
+ self.assertListEqual(actual, expected)
+
+ def test_lookup_will_match_emails(self):
+ contacts = [('foo', 'x@example.com'), ('bar', 'y@example.com'),
+ ('baz', 'z@example.com')]
+ abook = _AddressBook(contacts)
+ actual = abook.lookup('y@example.com')
+ expected = [contacts[1]]
+ self.assertListEqual(actual, expected)
+
+ def test_lookup_ignores_case_by_default(self):
+ contacts = [('name', 'email@example.com'),
+ ('Name', 'other@example.com'),
+ ('someone', 'someone@example.com')]
+ abook = _AddressBook(contacts)
+ actual = abook.lookup('name')
+ expected = [contacts[0], contacts[1]]
+ self.assertListEqual(actual, expected)
+
+ def test_lookup_can_match_case(self):
+ contacts = [('name', 'email@example.com'),
+ ('Name', 'other@example.com'),
+ ('someone', 'someone@example.com')]
+ abook = _AddressBook(contacts, ignorecase=False)
+ actual = abook.lookup('name')
+ expected = [contacts[0]]
+ self.assertListEqual(actual, expected)
+
+ def test_lookup_will_match_partial_in_the_middle(self):
+ contacts = [('name', 'email@example.com'),
+ ('My Own Name', 'other@example.com'),
+ ('someone', 'someone@example.com')]
+ abook = _AddressBook(contacts)
+ actual = abook.lookup('Own')
+ expected = [contacts[1]]
+ self.assertListEqual(actual, expected)