diff options
Diffstat (limited to 'pkgs/development/python-modules/pyopenssl/default.nix')
-rw-r--r-- | pkgs/development/python-modules/pyopenssl/default.nix | 108 |
1 files changed, 48 insertions, 60 deletions
diff --git a/pkgs/development/python-modules/pyopenssl/default.nix b/pkgs/development/python-modules/pyopenssl/default.nix index 16bfddc8340..e4655082af9 100644 --- a/pkgs/development/python-modules/pyopenssl/default.nix +++ b/pkgs/development/python-modules/pyopenssl/default.nix @@ -6,17 +6,50 @@ , cryptography , pyasn1 , idna -, pytest +, pytestCheckHook , pretend , flaky , glibcLocales , six }: -let - # https://github.com/pyca/pyopenssl/issues/791 - # These tests, we disable in the case that libressl is passed in as openssl. - failingLibresslTests = [ +buildPythonPackage rec { + pname = "pyopenssl"; + version = "22.0.0"; + + src = fetchPypi { + pname = "pyOpenSSL"; + inherit version; + sha256 = "sha256-ZgsbFCWqxKG+odlBaKhdmfCzFEyGndQ5DSdinQCH8b8="; + }; + + outputs = [ "out" "dev" ]; + + # Seems to fail unpredictably on Darwin. See https://hydra.nixos.org/build/49877419/nixlog/1 + # for one example, but I've also seen ContextTests.test_set_verify_callback_exception fail. + doCheck = !stdenv.isDarwin; + + nativeBuildInputs = [ openssl ]; + propagatedBuildInputs = [ cryptography pyasn1 idna six ]; + + checkInputs = [ pytestCheckHook pretend flaky glibcLocales ]; + + preCheck = '' + export LANG="en_US.UTF-8" + ''; + + disabledTests = [ + # https://github.com/pyca/pyopenssl/issues/692 + # These tests, we disable always. + "test_set_default_verify_paths" + "test_fallback_default_verify_paths" + # https://github.com/pyca/pyopenssl/issues/768 + "test_wantWriteError" + # https://github.com/pyca/pyopenssl/issues/1043 + "test_alpn_call_failure" + ] ++ lib.optionals (lib.hasPrefix "libressl" openssl.meta.name) [ + # https://github.com/pyca/pyopenssl/issues/791 + # These tests, we disable in the case that libressl is passed in as openssl. "test_op_no_compression" "test_npn_advertise_error" "test_npn_select_error" @@ -29,66 +62,21 @@ let "test_verify_with_revoked" "test_set_notAfter" "test_set_notBefore" - ]; - - # these tests are extremely tightly wed to the exact output of the openssl cli tool, - # including exact punctuation. - failingOpenSSL_1_1Tests = [ + ] ++ lib.optionals (lib.versionAtLeast (lib.getVersion openssl.name) "1.1") [ + # these tests are extremely tightly wed to the exact output of the openssl cli tool, including exact punctuation. "test_dump_certificate" "test_dump_privatekey_text" "test_dump_certificate_request" "test_export_text" - ]; - - disabledTests = [ - # https://github.com/pyca/pyopenssl/issues/692 - # These tests, we disable always. - "test_set_default_verify_paths" - "test_fallback_default_verify_paths" - # https://github.com/pyca/pyopenssl/issues/768 - "test_wantWriteError" - # https://github.com/pyca/pyopenssl/issues/1043 - "test_alpn_call_failure" - ] ++ ( - lib.optionals (lib.hasPrefix "libressl" openssl.meta.name) failingLibresslTests - ) ++ ( - lib.optionals (lib.versionAtLeast (lib.getVersion openssl.name) "1.1") failingOpenSSL_1_1Tests - ) ++ ( + ] ++ lib.optionals stdenv.is32bit [ # https://github.com/pyca/pyopenssl/issues/974 - lib.optionals stdenv.is32bit [ "test_verify_with_time" ] - ); - - # Compose the final string expression, including the "-k" and the single quotes. - testExpression = lib.optionalString (disabledTests != []) - "-k 'not ${lib.concatStringsSep " and not " disabledTests}'"; - -in - -buildPythonPackage rec { - pname = "pyopenssl"; - version = "21.0.0"; + "test_verify_with_time" + ]; - src = fetchPypi { - pname = "pyOpenSSL"; - inherit version; - sha256 = "5e2d8c5e46d0d865ae933bef5230090bdaf5506281e9eec60fa250ee80600cb3"; + meta = with lib; { + description = "Python wrapper around the OpenSSL library"; + homepage = "https://github.com/pyca/pyopenssl"; + license = licenses.asl20; + maintainers = with maintainers; [ SuperSandro2000 ]; }; - - outputs = [ "out" "dev" ]; - - checkPhase = '' - runHook preCheck - export LANG="en_US.UTF-8" - py.test tests ${testExpression} - runHook postCheck - ''; - - # Seems to fail unpredictably on Darwin. See https://hydra.nixos.org/build/49877419/nixlog/1 - # for one example, but I've also seen ContextTests.test_set_verify_callback_exception fail. - doCheck = !stdenv.isDarwin; - - nativeBuildInputs = [ openssl ]; - propagatedBuildInputs = [ cryptography pyasn1 idna six ]; - - checkInputs = [ pytest pretend flaky glibcLocales ]; } |