diff options
Diffstat (limited to '')
| -rw-r--r-- | lang/python/helpers.c | 6 | ||||
| -rwxr-xr-x | lang/python/tests/t-encrypt.py | 15 | 
2 files changed, 19 insertions, 2 deletions
| diff --git a/lang/python/helpers.c b/lang/python/helpers.c index 8f71a305..576767ca 100644 --- a/lang/python/helpers.c +++ b/lang/python/helpers.c @@ -293,8 +293,10 @@ _gpg_obj2gpgme_data_t(PyObject *input, int argnum, gpgme_data_t *wrapper,      return _gpg_obj2gpgme_t(data, "gpgme_data_t", argnum);    return PyErr_Format(PyExc_TypeError, -                      "arg %d: expected gpg.Data, file, or an object " -                      "implementing the buffer protocol, got %s", +                      "arg %d: expected gpg.Data, file, " +                      "bytes (not string!), or an object " +                      "implementing the buffer protocol. Got: %s. " +                      "If you provided a string, try to encode() it.",                        argnum, data->ob_type->tp_name);  } diff --git a/lang/python/tests/t-encrypt.py b/lang/python/tests/t-encrypt.py index 0c0ca357..3cbe8f2f 100755 --- a/lang/python/tests/t-encrypt.py +++ b/lang/python/tests/t-encrypt.py @@ -62,3 +62,18 @@ with gpg.Context(armor=True) as c:          assert support.sign_only.endswith(e.recipients[0].fpr)      else:          assert False, "Expected an InvalidRecipients error, got none" + + + +    try: +        # People might be tempted to provide strings. +        # We should raise something useful. +        ciphertext, _, _ = c.encrypt("Hallo Leute\n", +                                     recipients=keys, +                                     sign=False, +                                     always_trust=True) +    except TypeError as e: +        # This test is a bit fragile, because the message +        # may very well change. So if the behaviour will change +        # this test can easily be deleted. +        assert "encode" in str(e) | 
