1 from __future__ import with_statement
9 sys.path.append("../src")
11 from backends import file_backend
15 warnings.simplefilter("always")
17 csvPath = os.path.join(os.path.dirname(__file__), "basic_data")
18 factory = file_backend.FilesystemAddressBookFactory(csvPath)
19 assert factory.factory_name() == "File"
20 abooks = list(factory.get_addressbooks())
22 assert len(abooks) == 4
23 abookNames = [abook[2] for abook in abooks]
24 assert abookNames == ["basic", "empty", "google", "grandcentral"], "%s" % abookNames
26 for abook_factory, abookId, abookName in abooks:
27 abook = abook_factory.open_addressbook(abookId)
28 assert isinstance(abook, file_backend.CsvAddressBook)
30 warnings.resetwarnings()
33 def test_nonexistent_csv():
34 warnings.simplefilter("always")
36 csvPath = os.path.join(os.path.dirname(__file__), "basic_data", "nonexistent.csv")
37 abook = file_backend.CsvAddressBook(csvPath)
39 assert abook.factory_name() == "csv"
41 contacts = list(abook.get_contacts())
42 assert len(contacts) == 0
44 warnings.resetwarnings()
48 warnings.simplefilter("always")
50 csvPath = os.path.join(os.path.dirname(__file__), "basic_data", "empty.csv")
51 abook = file_backend.CsvAddressBook(csvPath)
53 assert abook.factory_name() == "csv"
55 contacts = list(abook.get_contacts())
56 assert len(contacts) == 0
58 warnings.resetwarnings()
62 warnings.simplefilter("always")
64 csvPath = os.path.join(os.path.dirname(__file__), "basic_data", "basic.csv")
65 abook = file_backend.CsvAddressBook(csvPath)
67 assert abook.factory_name() == "csv"
69 contacts = list(abook.get_contacts())
71 assert len(contacts) == 1
73 contactId, contactName = contacts[0]
74 assert contactName == "Last, First"
75 assert abook.contact_source_short_name(contactId) == "csv"
77 details = list(abook.get_contact_details(contactId))
78 assert len(details) == 1
80 assert details == [("phone", "555-123-4567")], "%s" % details
82 warnings.resetwarnings()
85 def test_google_csv():
86 warnings.simplefilter("always")
88 csvPath = os.path.join(os.path.dirname(__file__), "basic_data", "google.csv")
89 abook = file_backend.CsvAddressBook(csvPath)
91 assert abook.factory_name() == "csv"
93 contacts = list(abook.get_contacts())
95 assert len(contacts) == 2
97 contactId, contactName = contacts[0]
98 assert contactName == "First Last"
99 assert abook.contact_source_short_name(contactId) == "csv"
101 details = list(abook.get_contact_details(contactId))
102 assert len(details) == 2
105 ("Section 2 - Mobile", "5551234567"),
106 ("Section 2 - Phone", "17471234567"),
109 contactId, contactName = contacts[1]
110 assert contactName == "First1 Last"
111 assert abook.contact_source_short_name(contactId) == "csv"
113 details = list(abook.get_contact_details(contactId))
114 assert len(details) == 1
116 assert details == [("Section 1 - Mobile", "5557654321")], "%s" % details
118 warnings.resetwarnings()
121 def test_grandcentral_csv():
122 warnings.simplefilter("always")
124 csvPath = os.path.join(os.path.dirname(__file__), "basic_data", "grandcentral.csv")
125 abook = file_backend.CsvAddressBook(csvPath)
127 assert abook.factory_name() == "csv"
129 contacts = list(abook.get_contacts())
131 assert len(contacts) == 2
133 contactId, contactName = contacts[0]
134 assert contactName == "First Last"
135 assert abook.contact_source_short_name(contactId) == "csv"
137 details = list(abook.get_contact_details(contactId))
138 assert len(details) == 3
141 ("Business Phone", "5559988899"),
142 ("Home Phone", "5559983254"),
143 ("Mobile Phone", "5554023626"),
146 contactId, contactName = contacts[1]
147 assert contactName == "First1 Last"
148 assert abook.contact_source_short_name(contactId) == "csv"
150 details = list(abook.get_contact_details(contactId))
151 assert len(details) == 1
153 assert details == [("Home Phone", "5556835460")], "%s" % details
155 warnings.resetwarnings()