diff options
author | Paul Kehrer <paul.l.kehrer@gmail.com> | 2017-05-25 23:05:00 -0500 |
---|---|---|
committer | Alex Gaynor <alex.gaynor@gmail.com> | 2017-05-26 00:05:00 -0400 |
commit | d36bef0b744d79b209b13f87fb9c943e4091a2c5 (patch) | |
tree | ab33864d222f62b8c38511315e753063016c3153 /tests/hazmat/bindings | |
parent | 349923379f1c1baf51ff1709abaa19559a59ad69 (diff) | |
download | cryptography-d36bef0b744d79b209b13f87fb9c943e4091a2c5.tar.gz cryptography-d36bef0b744d79b209b13f87fb9c943e4091a2c5.tar.bz2 cryptography-d36bef0b744d79b209b13f87fb9c943e4091a2c5.zip |
fix libressl error/refactor some error handling (#3609)
* add libre so I can see the error
* add the libre error needed and refactor error handling a bit
We were historically matching on lib + func + reason, but func is
somewhat unstable so now we match on lib + reason only. Of course, in
this case libressl changed both lib and reason so it wouldn't
have mattered. All error handling from the error queue in
openssl is an illusion
* fix a typo, probably an unneeded branch
* review feedback
* refactor tests to support libressl
insert additional rant about libre here, although admittedly these tests
were assuming stability where openssl itself guarantees none
* better assert, fix flake8
Diffstat (limited to 'tests/hazmat/bindings')
-rw-r--r-- | tests/hazmat/bindings/test_openssl.py | 18 |
1 files changed, 7 insertions, 11 deletions
diff --git a/tests/hazmat/bindings/test_openssl.py b/tests/hazmat/bindings/test_openssl.py index 9b0da67c..488f64e1 100644 --- a/tests/hazmat/bindings/test_openssl.py +++ b/tests/hazmat/bindings/test_openssl.py @@ -8,7 +8,7 @@ import pytest from cryptography.exceptions import InternalError from cryptography.hazmat.bindings.openssl.binding import ( - Binding, _OpenSSLErrorWithText, _consume_errors, _openssl_assert + Binding, _consume_errors, _openssl_assert ) @@ -94,16 +94,12 @@ class TestOpenSSL(object): with pytest.raises(InternalError) as exc_info: _openssl_assert(b.lib, False) - assert exc_info.value.err_code == [_OpenSSLErrorWithText( - code=101183626, - lib=b.lib.ERR_LIB_EVP, - func=b.lib.EVP_F_EVP_ENCRYPTFINAL_EX, - reason=b.lib.EVP_R_DATA_NOT_MULTIPLE_OF_BLOCK_LENGTH, - reason_text=( - b'error:0607F08A:digital envelope routines:EVP_EncryptFinal_' - b'ex:data not multiple of block length' - ) - )] + error = exc_info.value.err_code[0] + assert error.code == 101183626 + assert error.lib == b.lib.ERR_LIB_EVP + assert error.func == b.lib.EVP_F_EVP_ENCRYPTFINAL_EX + assert error.reason == b.lib.EVP_R_DATA_NOT_MULTIPLE_OF_BLOCK_LENGTH + assert b"data not multiple of block length" in error.reason_text def test_check_startup_errors_are_allowed(self): b = Binding() |