diff options
author | Justus Winter <[email protected]> | 2016-05-12 16:00:16 +0000 |
---|---|---|
committer | Justus Winter <[email protected]> | 2016-05-12 16:01:24 +0000 |
commit | c5d118b2a76e9528df780d11da9566ff7c22e4f5 (patch) | |
tree | d4d27b83319d007cb8bcdc3b6cffd7628cebe995 | |
parent | python: Fix writing to data buffers. (diff) | |
download | gpgme-c5d118b2a76e9528df780d11da9566ff7c22e4f5.tar.gz gpgme-c5d118b2a76e9528df780d11da9566ff7c22e4f5.zip |
python: Raise exceptions on write errors.
* lang/python/pyme/core.py (Data.write): Handle errors.
* lang/python/pyme/errors.py (GPGMEError.fromSyserror): New function.
Signed-off-by: Justus Winter <[email protected]>
-rw-r--r-- | lang/python/pyme/core.py | 5 | ||||
-rw-r--r-- | lang/python/pyme/errors.py | 4 |
2 files changed, 8 insertions, 1 deletions
diff --git a/lang/python/pyme/core.py b/lang/python/pyme/core.py index dafbd9b3..1d6e3847 100644 --- a/lang/python/pyme/core.py +++ b/lang/python/pyme/core.py @@ -394,7 +394,10 @@ class Data(GpgmeWrapper): """Write buffer given as string or bytes. If a string is given, it is implicitly encoded using UTF-8.""" - return pygpgme.gpgme_data_write(self.wrapped, buffer) + written = pygpgme.gpgme_data_write(self.wrapped, buffer) + if written < 0: + raise GPGMEError.fromSyserror() + return written def read(self, size = -1): """Read at most size bytes, returned as bytes. diff --git a/lang/python/pyme/errors.py b/lang/python/pyme/errors.py index 37d0fe67..5c8f9223 100644 --- a/lang/python/pyme/errors.py +++ b/lang/python/pyme/errors.py @@ -23,6 +23,10 @@ class GPGMEError(Exception): self.error = error self.message = message + @classmethod + def fromSyserror(cls): + return cls(pygpgme.gpgme_err_code_from_syserror()) + def getstring(self): message = "%s: %s" % (pygpgme.gpgme_strsource(self.error), pygpgme.gpgme_strerror(self.error)) |