Hardening against some types of error
authorEd Page <eopage@byu.net>
Thu, 28 Jan 2010 03:43:32 +0000 (21:43 -0600)
committerEd Page <eopage@byu.net>
Thu, 28 Jan 2010 03:43:32 +0000 (21:43 -0600)
src/gvoice/addressbook.py
src/handle.py

index dbb8ed9..8efb26f 100644 (file)
@@ -47,13 +47,22 @@ class Addressbook(object):
                return self._numbers.iterkeys()
 
        def get_contact_name(self, strippedNumber):
+               """
+               @throws KeyError if contact not in list (so client can choose what to display)
+               """
                return self._numbers[strippedNumber][0]
 
        def get_phone_type(self, strippedNumber):
-               return self._numbers[strippedNumber][1]
+               try:
+                       return self._numbers[strippedNumber][1]
+               except KeyError:
+                       return "unknown"
 
        def is_blocked(self, strippedNumber):
-               return self._numbers[strippedNumber][1]["response"] == self._RESPONSE_BLOCKED
+               try:
+                       return self._numbers[strippedNumber][1]["response"] == self._RESPONSE_BLOCKED
+               except KeyError:
+                       return False
 
        def _populate_contacts(self):
                if self._numbers:
index 02e5137..5fc4e98 100644 (file)
@@ -52,14 +52,6 @@ class ContactHandle(TheOneRingHandle):
        def phoneNumber(self):
                return self._phoneNumber
 
-       @property
-       def contact_name(self):
-               return self._conn.session.addressbook.get_contact_name(self.phoneNumber)
-
-       @property
-       def contactDetails(self):
-               return self._conn.session.addressbook.get_phone_type(self.phoneNumber)
-
 
 class ListHandle(TheOneRingHandle):