python: handle return status of database close and destroy
authorPeter Wang <novalazy@gmail.com>
Wed, 16 Apr 2014 12:59:18 +0000 (22:59 +1000)
committerDavid Bremner <david@tethera.net>
Tue, 16 Sep 2014 18:16:52 +0000 (20:16 +0200)
Throw an exception if notmuch_database_close or notmuch_database_destroy
fail.

bindings/python/notmuch/database.py

index 7ddf5cfe7d8d265980963ca09a1388b36717c851..5b58e099b1fde6d692f047d0e32c4ccd9ae0493f 100644 (file)
@@ -157,11 +157,13 @@ class Database(object):
 
     _destroy = nmlib.notmuch_database_destroy
     _destroy.argtypes = [NotmuchDatabaseP]
-    _destroy.restype = None
+    _destroy.restype = c_uint
 
     def __del__(self):
         if self._db:
-            self._destroy(self._db)
+            status = self._destroy(self._db)
+            if status != STATUS.SUCCESS:
+                raise NotmuchError(status)
 
     def _assert_db_is_initialized(self):
         """Raises :exc:`NotInitializedError` if self._db is `None`"""
@@ -217,7 +219,7 @@ class Database(object):
 
     _close = nmlib.notmuch_database_close
     _close.argtypes = [NotmuchDatabaseP]
-    _close.restype = None
+    _close.restype = c_uint
 
     def close(self):
         '''
@@ -231,7 +233,9 @@ class Database(object):
             NotmuchError.
         '''
         if self._db:
-            self._close(self._db)
+            status = self._close(self._db)
+            if status != STATUS.SUCCESS:
+                raise NotmuchError(status)
 
     def __enter__(self):
         '''