From 05896c210f7fa9ce7b97784a75e49dc4489e9252 Mon Sep 17 00:00:00 2001 From: Tobias Mueller Date: Fri, 2 Dec 2016 23:37:27 +0100 Subject: python: Try to be more helpful when given a string to encrypt(). * lang/python/helpers.c (_gpg_obj2gpgme_data_t): Extended error message. * lang/python/tests/t-encrypt.py: Test for "encode" in error message. -- The motivation is to help the user when encrypting fails. I claim that it is not obvious to not being able to encrypt a string directly. To nudge the user into encoding it to bytes, the error message is a bit extended. Signed-off-by: Tobias Mueller --- lang/python/tests/t-encrypt.py | 15 +++++++++++++++ 1 file changed, 15 insertions(+) (limited to 'lang/python/tests/t-encrypt.py') 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) -- cgit v1.2.3