diff options
author | Lucas Hoffmann <l-m-h@web.de> | 2017-06-23 01:24:21 +0200 |
---|---|---|
committer | Lucas Hoffmann <l-m-h@web.de> | 2017-06-23 01:26:01 +0200 |
commit | 3484a154d222635ffceeccfdd8ea3bbfca9028aa (patch) | |
tree | 4fc7d9de37d7275096164803269c68e5e7c38135 /tests/addressbook | |
parent | 6885f5283b2a944200bc3e4d7baf658fc57f492f (diff) |
Add tests for addressbook.AddressBook
Diffstat (limited to 'tests/addressbook')
-rw-r--r-- | tests/addressbook/init_test.py | 67 |
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) |