py$(PYV): remove tox env folder $(@D)/.tox/py$(PYV)
py$(PYV): commands[0]> $(PYTHON) -b -m coverage run -m pytest
============================= test session starts ==============================
platform sunos5 -- Python $(PYTHON_VERSION).X -- $(PYTHON)
cachedir: .tox/py$(PYV)/.pytest_cache
rootdir: $(@D)
configfile: tox.ini
testpaths: tests
collecting ... collected 291 items

tests/test_advisory.py::TestAdvisory::test_ghsa_ffqj_6fqr_9h24 PASSED
tests/test_algorithms.py::TestAlgorithms::test_none_algorithm_should_throw_exception_if_key_is_not_none PASSED
tests/test_algorithms.py::TestAlgorithms::test_none_algorithm_should_throw_exception_on_to_jwk PASSED
tests/test_algorithms.py::TestAlgorithms::test_none_algorithm_should_throw_exception_on_from_jwk PASSED
tests/test_algorithms.py::TestAlgorithms::test_hmac_should_reject_nonstring_key PASSED
tests/test_algorithms.py::TestAlgorithms::test_hmac_should_accept_unicode_key PASSED
tests/test_algorithms.py::TestAlgorithms::test_hmac_should_throw_exception[testkey2_rsa.pub.pem0] PASSED
tests/test_algorithms.py::TestAlgorithms::test_hmac_should_throw_exception[testkey2_rsa.pub.pem1] PASSED
tests/test_algorithms.py::TestAlgorithms::test_hmac_should_throw_exception[testkey_pkcs1.pub.pem] PASSED
tests/test_algorithms.py::TestAlgorithms::test_hmac_should_throw_exception[testkey_rsa.cer] PASSED
tests/test_algorithms.py::TestAlgorithms::test_hmac_should_throw_exception[testkey_rsa.pub] PASSED
tests/test_algorithms.py::TestAlgorithms::test_hmac_jwk_should_parse_and_verify PASSED
tests/test_algorithms.py::TestAlgorithms::test_hmac_to_jwk_returns_correct_values[False] PASSED
tests/test_algorithms.py::TestAlgorithms::test_hmac_to_jwk_returns_correct_values[True] PASSED
tests/test_algorithms.py::TestAlgorithms::test_hmac_from_jwk_should_raise_exception_if_not_hmac_key PASSED
tests/test_algorithms.py::TestAlgorithms::test_hmac_from_jwk_should_raise_exception_if_empty_json PASSED
tests/test_algorithms.py::TestAlgorithms::test_rsa_should_parse_pem_public_key PASSED
tests/test_algorithms.py::TestAlgorithms::test_rsa_should_accept_pem_private_key_bytes PASSED
tests/test_algorithms.py::TestAlgorithms::test_rsa_should_accept_unicode_key PASSED
tests/test_algorithms.py::TestAlgorithms::test_rsa_should_reject_non_string_key PASSED
tests/test_algorithms.py::TestAlgorithms::test_rsa_verify_should_return_false_if_signature_invalid PASSED
tests/test_algorithms.py::TestAlgorithms::test_ec_jwk_public_and_private_keys_should_parse_and_verify PASSED
tests/test_algorithms.py::TestAlgorithms::test_ec_jwk_fails_on_invalid_json PASSED
tests/test_algorithms.py::TestAlgorithms::test_ec_private_key_to_jwk_works_with_from_jwk PASSED
tests/test_algorithms.py::TestAlgorithms::test_ec_public_key_to_jwk_works_with_from_jwk PASSED
tests/test_algorithms.py::TestAlgorithms::test_ec_to_jwk_returns_correct_values_for_public_key[False] PASSED
tests/test_algorithms.py::TestAlgorithms::test_ec_to_jwk_returns_correct_values_for_public_key[True] PASSED
tests/test_algorithms.py::TestAlgorithms::test_ec_to_jwk_returns_correct_values_for_private_key[False] PASSED
tests/test_algorithms.py::TestAlgorithms::test_ec_to_jwk_returns_correct_values_for_private_key[True] PASSED
tests/test_algorithms.py::TestAlgorithms::test_ec_to_jwk_raises_exception_on_invalid_key PASSED
tests/test_algorithms.py::TestAlgorithms::test_ec_to_jwk_with_valid_curves[False] PASSED
tests/test_algorithms.py::TestAlgorithms::test_ec_to_jwk_with_valid_curves[True] PASSED
tests/test_algorithms.py::TestAlgorithms::test_ec_to_jwk_with_invalid_curve PASSED
tests/test_algorithms.py::TestAlgorithms::test_rsa_jwk_public_and_private_keys_should_parse_and_verify PASSED
tests/test_algorithms.py::TestAlgorithms::test_rsa_private_key_to_jwk_works_with_from_jwk PASSED
tests/test_algorithms.py::TestAlgorithms::test_rsa_public_key_to_jwk_works_with_from_jwk PASSED
tests/test_algorithms.py::TestAlgorithms::test_rsa_jwk_private_key_with_other_primes_is_invalid PASSED
tests/test_algorithms.py::TestAlgorithms::test_rsa_jwk_private_key_with_missing_values_is_invalid PASSED
tests/test_algorithms.py::TestAlgorithms::test_rsa_jwk_private_key_can_recover_prime_factors PASSED
tests/test_algorithms.py::TestAlgorithms::test_rsa_jwk_private_key_with_missing_required_values_is_invalid PASSED
tests/test_algorithms.py::TestAlgorithms::test_rsa_jwk_raises_exception_if_not_a_valid_key PASSED
tests/test_algorithms.py::TestAlgorithms::test_rsa_to_jwk_returns_correct_values_for_public_key[False] PASSED
tests/test_algorithms.py::TestAlgorithms::test_rsa_to_jwk_returns_correct_values_for_public_key[True] PASSED
tests/test_algorithms.py::TestAlgorithms::test_rsa_to_jwk_returns_correct_values_for_private_key[False] PASSED
tests/test_algorithms.py::TestAlgorithms::test_rsa_to_jwk_returns_correct_values_for_private_key[True] PASSED
tests/test_algorithms.py::TestAlgorithms::test_rsa_to_jwk_raises_exception_on_invalid_key PASSED
tests/test_algorithms.py::TestAlgorithms::test_rsa_from_jwk_raises_exception_on_invalid_key PASSED
tests/test_algorithms.py::TestAlgorithms::test_ec_should_reject_non_string_key PASSED
tests/test_algorithms.py::TestAlgorithms::test_ec_should_accept_pem_private_key_bytes PASSED
tests/test_algorithms.py::TestAlgorithms::test_ec_should_accept_ssh_public_key_bytes PASSED
tests/test_algorithms.py::TestAlgorithms::test_ec_verify_should_return_false_if_signature_invalid PASSED
tests/test_algorithms.py::TestAlgorithms::test_ec_verify_should_return_false_if_signature_wrong_length PASSED
tests/test_algorithms.py::TestAlgorithms::test_ec_should_throw_exception_on_wrong_key PASSED
tests/test_algorithms.py::TestAlgorithms::test_rsa_pss_sign_then_verify_should_return_true PASSED
tests/test_algorithms.py::TestAlgorithms::test_rsa_pss_verify_should_return_false_if_signature_invalid PASSED
tests/test_algorithms.py::TestAlgorithmsRFC7520::test_hmac_verify_should_return_true_for_test_vector PASSED
tests/test_algorithms.py::TestAlgorithmsRFC7520::test_rsa_verify_should_return_true_for_test_vector PASSED
tests/test_algorithms.py::TestAlgorithmsRFC7520::test_rsapss_verify_should_return_true_for_test_vector PASSED
tests/test_algorithms.py::TestAlgorithmsRFC7520::test_ec_verify_should_return_true_for_test_vector PASSED
tests/test_algorithms.py::TestOKPAlgorithms::test_okp_ed25519_should_reject_non_string_key PASSED
tests/test_algorithms.py::TestOKPAlgorithms::test_okp_ed25519_sign_should_generate_correct_signature_value PASSED
tests/test_algorithms.py::TestOKPAlgorithms::test_okp_ed25519_verify_should_return_false_if_signature_invalid PASSED
tests/test_algorithms.py::TestOKPAlgorithms::test_okp_ed25519_verify_should_return_true_if_signature_valid PASSED
tests/test_algorithms.py::TestOKPAlgorithms::test_okp_ed25519_prepare_key_should_be_idempotent PASSED
tests/test_algorithms.py::TestOKPAlgorithms::test_okp_ed25519_jwk_private_key_should_parse_and_verify PASSED
tests/test_algorithms.py::TestOKPAlgorithms::test_okp_ed25519_jwk_private_key_should_parse_and_verify_with_private_key_as_is PASSED
tests/test_algorithms.py::TestOKPAlgorithms::test_okp_ed25519_jwk_public_key_should_parse_and_verify PASSED
tests/test_algorithms.py::TestOKPAlgorithms::test_okp_ed25519_jwk_fails_on_invalid_json PASSED
tests/test_algorithms.py::TestOKPAlgorithms::test_okp_ed25519_to_jwk_works_with_from_jwk[False] PASSED
tests/test_algorithms.py::TestOKPAlgorithms::test_okp_ed25519_to_jwk_works_with_from_jwk[True] PASSED
tests/test_algorithms.py::TestOKPAlgorithms::test_okp_to_jwk_raises_exception_on_invalid_key PASSED
tests/test_algorithms.py::TestOKPAlgorithms::test_okp_ed448_jwk_private_key_should_parse_and_verify PASSED
tests/test_algorithms.py::TestOKPAlgorithms::test_okp_ed448_jwk_private_key_should_parse_and_verify_with_private_key_as_is PASSED
tests/test_algorithms.py::TestOKPAlgorithms::test_okp_ed448_jwk_public_key_should_parse_and_verify PASSED
tests/test_algorithms.py::TestOKPAlgorithms::test_okp_ed448_jwk_fails_on_invalid_json PASSED
tests/test_algorithms.py::TestOKPAlgorithms::test_okp_ed448_to_jwk_works_with_from_jwk[False] PASSED
tests/test_algorithms.py::TestOKPAlgorithms::test_okp_ed448_to_jwk_works_with_from_jwk[True] PASSED
tests/test_algorithms.py::TestOKPAlgorithms::test_rsa_can_compute_digest PASSED
tests/test_algorithms.py::TestOKPAlgorithms::test_hmac_can_compute_digest PASSED
tests/test_algorithms.py::TestOKPAlgorithms::test_rsa_prepare_key_raises_invalid_key_error_on_invalid_pem PASSED
tests/test_api_jwk.py::TestPyJWK::test_should_load_key_from_jwk_data_dict PASSED
tests/test_api_jwk.py::TestPyJWK::test_should_load_key_from_jwk_data_json_string PASSED
tests/test_api_jwk.py::TestPyJWK::test_should_load_key_without_alg_from_dict PASSED
tests/test_api_jwk.py::TestPyJWK::test_should_load_key_from_dict_with_algorithm PASSED
tests/test_api_jwk.py::TestPyJWK::test_should_load_key_ec_p256_from_dict PASSED
tests/test_api_jwk.py::TestPyJWK::test_should_load_key_ec_p384_from_dict PASSED
tests/test_api_jwk.py::TestPyJWK::test_should_load_key_ec_p521_from_dict PASSED
tests/test_api_jwk.py::TestPyJWK::test_should_load_key_ec_secp256k1_from_dict PASSED
tests/test_api_jwk.py::TestPyJWK::test_should_load_key_hmac_from_dict PASSED
tests/test_api_jwk.py::TestPyJWK::test_should_load_key_hmac_without_alg_from_dict PASSED
tests/test_api_jwk.py::TestPyJWK::test_should_load_key_okp_without_alg_from_dict PASSED
tests/test_api_jwk.py::TestPyJWK::test_from_dict_should_throw_exception_if_arg_is_invalid PASSED
tests/test_api_jwk.py::TestPyJWK::test_missing_crypto_library_good_error_message SKIPPED
tests/test_api_jwk.py::TestPyJWK::test_missing_crypto_library_raises_missing_cryptography_error SKIPPED
tests/test_api_jwk.py::TestPyJWKSet::test_should_load_keys_from_jwk_data_dict PASSED
tests/test_api_jwk.py::TestPyJWKSet::test_should_load_keys_from_jwk_data_json_string PASSED
tests/test_api_jwk.py::TestPyJWKSet::test_keyset_should_index_by_kid PASSED
tests/test_api_jwk.py::TestPyJWKSet::test_keyset_with_unknown_alg PASSED
tests/test_api_jwk.py::TestPyJWKSet::test_invalid_keys_list PASSED
tests/test_api_jwk.py::TestPyJWKSet::test_empty_keys_list PASSED
tests/test_api_jwk.py::TestPyJWKSet::test_missing_crypto_library_raises_when_required SKIPPED
tests/test_api_jws.py::TestJWS::test_register_algo_does_not_allow_duplicate_registration PASSED
tests/test_api_jws.py::TestJWS::test_register_algo_rejects_non_algorithm_obj PASSED
tests/test_api_jws.py::TestJWS::test_unregister_algo_removes_algorithm PASSED
tests/test_api_jws.py::TestJWS::test_unregister_algo_throws_error_if_not_registered PASSED
tests/test_api_jws.py::TestJWS::test_algo_parameter_removes_alg_from_algorithms_list PASSED
tests/test_api_jws.py::TestJWS::test_override_options PASSED
tests/test_api_jws.py::TestJWS::test_non_object_options_dont_persist PASSED
tests/test_api_jws.py::TestJWS::test_options_must_be_dict PASSED
tests/test_api_jws.py::TestJWS::test_encode_decode PASSED
tests/test_api_jws.py::TestJWS::test_decode_fails_when_alg_is_not_on_method_algorithms_param PASSED
tests/test_api_jws.py::TestJWS::test_decode_works_with_unicode_token PASSED
tests/test_api_jws.py::TestJWS::test_decode_missing_segments_throws_exception PASSED
tests/test_api_jws.py::TestJWS::test_decode_invalid_token_type_is_none PASSED
tests/test_api_jws.py::TestJWS::test_decode_invalid_token_type_is_int PASSED
tests/test_api_jws.py::TestJWS::test_decode_with_non_mapping_header_throws_exception PASSED
tests/test_api_jws.py::TestJWS::test_encode_default_algorithm PASSED
tests/test_api_jws.py::TestJWS::test_encode_algorithm_param_should_be_case_sensitive PASSED
tests/test_api_jws.py::TestJWS::test_encode_with_headers_alg_none PASSED
tests/test_api_jws.py::TestJWS::test_encode_with_headers_alg_es256 PASSED
tests/test_api_jws.py::TestJWS::test_encode_with_alg_hs256_and_headers_alg_es256 PASSED
tests/test_api_jws.py::TestJWS::test_encode_with_jwk PASSED
tests/test_api_jws.py::TestJWS::test_decode_algorithm_param_should_be_case_sensitive PASSED
tests/test_api_jws.py::TestJWS::test_bad_secret PASSED
tests/test_api_jws.py::TestJWS::test_decodes_valid_jws PASSED
tests/test_api_jws.py::TestJWS::test_decodes_complete_valid_jws PASSED
tests/test_api_jws.py::TestJWS::test_decodes_with_jwk PASSED
tests/test_api_jws.py::TestJWS::test_decodes_with_jwk_and_no_algorithm PASSED
tests/test_api_jws.py::TestJWS::test_decodes_with_jwk_and_mismatched_algorithm PASSED
tests/test_api_jws.py::TestJWS::test_decodes_valid_es384_jws PASSED
tests/test_api_jws.py::TestJWS::test_decodes_valid_rs384_jws PASSED
tests/test_api_jws.py::TestJWS::test_load_verify_valid_jws PASSED
tests/test_api_jws.py::TestJWS::test_allow_skip_verification PASSED
tests/test_api_jws.py::TestJWS::test_decode_with_optional_algorithms PASSED
tests/test_api_jws.py::TestJWS::test_decode_no_algorithms_verify_signature_false PASSED
tests/test_api_jws.py::TestJWS::test_load_no_verification PASSED
tests/test_api_jws.py::TestJWS::test_no_secret PASSED
tests/test_api_jws.py::TestJWS::test_verify_signature_with_no_secret PASSED
tests/test_api_jws.py::TestJWS::test_verify_signature_with_no_algo_header_throws_exception PASSED
tests/test_api_jws.py::TestJWS::test_invalid_crypto_alg PASSED
tests/test_api_jws.py::TestJWS::test_missing_crypto_library_better_error_messages SKIPPED
tests/test_api_jws.py::TestJWS::test_unicode_secret PASSED
tests/test_api_jws.py::TestJWS::test_nonascii_secret PASSED
tests/test_api_jws.py::TestJWS::test_bytes_secret PASSED
tests/test_api_jws.py::TestJWS::test_sorting_of_headers[False] PASSED
tests/test_api_jws.py::TestJWS::test_sorting_of_headers[True] PASSED
tests/test_api_jws.py::TestJWS::test_decode_invalid_header_padding PASSED
tests/test_api_jws.py::TestJWS::test_decode_invalid_header_string PASSED
tests/test_api_jws.py::TestJWS::test_decode_invalid_payload_padding PASSED
tests/test_api_jws.py::TestJWS::test_decode_invalid_crypto_padding PASSED
tests/test_api_jws.py::TestJWS::test_decode_with_algo_none_should_fail PASSED
tests/test_api_jws.py::TestJWS::test_decode_with_algo_none_and_verify_false_should_pass PASSED
tests/test_api_jws.py::TestJWS::test_get_unverified_header_returns_header_values PASSED
tests/test_api_jws.py::TestJWS::test_get_unverified_header_fails_on_bad_header_types PASSED
tests/test_api_jws.py::TestJWS::test_encode_decode_rsa_related_algorithms[RS256] PASSED
tests/test_api_jws.py::TestJWS::test_encode_decode_rsa_related_algorithms[RS384] PASSED
tests/test_api_jws.py::TestJWS::test_encode_decode_rsa_related_algorithms[RS512] PASSED
tests/test_api_jws.py::TestJWS::test_rsa_related_algorithms PASSED
tests/test_api_jws.py::TestJWS::test_encode_decode_ecdsa_related_algorithms[ES256] PASSED
tests/test_api_jws.py::TestJWS::test_encode_decode_ecdsa_related_algorithms[ES256K] PASSED
tests/test_api_jws.py::TestJWS::test_encode_decode_ecdsa_related_algorithms[ES384] PASSED
tests/test_api_jws.py::TestJWS::test_encode_decode_ecdsa_related_algorithms[ES512] PASSED
tests/test_api_jws.py::TestJWS::test_ecdsa_related_algorithms PASSED
tests/test_api_jws.py::TestJWS::test_skip_check_signature PASSED
tests/test_api_jws.py::TestJWS::test_decode_options_must_be_dict PASSED
tests/test_api_jws.py::TestJWS::test_custom_json_encoder PASSED
tests/test_api_jws.py::TestJWS::test_encode_headers_parameter_adds_headers PASSED
tests/test_api_jws.py::TestJWS::test_encode_with_typ PASSED
tests/test_api_jws.py::TestJWS::test_encode_with_typ_empty_string PASSED
tests/test_api_jws.py::TestJWS::test_encode_with_typ_none PASSED
tests/test_api_jws.py::TestJWS::test_encode_with_typ_without_keywords PASSED
tests/test_api_jws.py::TestJWS::test_encode_fails_on_invalid_kid_types PASSED
tests/test_api_jws.py::TestJWS::test_encode_decode_with_detached_content PASSED
tests/test_api_jws.py::TestJWS::test_encode_detached_content_with_b64_header PASSED
tests/test_api_jws.py::TestJWS::test_decode_detached_content_without_proper_argument PASSED
tests/test_api_jws.py::TestJWS::test_decode_warns_on_unsupported_kwarg PASSED
tests/test_api_jws.py::TestJWS::test_decode_complete_warns_on_unuspported_kwarg PASSED
tests/test_api_jwt.py::TestJWT::test_decodes_valid_jwt PASSED
tests/test_api_jwt.py::TestJWT::test_decodes_complete_valid_jwt PASSED
tests/test_api_jwt.py::TestJWT::test_load_verify_valid_jwt PASSED
tests/test_api_jwt.py::TestJWT::test_decode_invalid_payload_string PASSED
tests/test_api_jwt.py::TestJWT::test_decode_with_non_mapping_payload_throws_exception PASSED
tests/test_api_jwt.py::TestJWT::test_decode_with_invalid_audience_param_throws_exception PASSED
tests/test_api_jwt.py::TestJWT::test_decode_with_nonlist_aud_claim_throws_exception PASSED
tests/test_api_jwt.py::TestJWT::test_decode_with_invalid_aud_list_member_throws_exception PASSED
tests/test_api_jwt.py::TestJWT::test_encode_bad_type PASSED
tests/test_api_jwt.py::TestJWT::test_encode_with_typ PASSED
tests/test_api_jwt.py::TestJWT::test_decode_raises_exception_if_exp_is_not_int PASSED
tests/test_api_jwt.py::TestJWT::test_decode_raises_exception_if_iat_is_not_int PASSED
tests/test_api_jwt.py::TestJWT::test_decode_raises_exception_if_iat_is_greater_than_now PASSED
tests/test_api_jwt.py::TestJWT::test_decode_works_if_iat_is_str_of_a_number PASSED
tests/test_api_jwt.py::TestJWT::test_decode_raises_exception_if_nbf_is_not_int PASSED
tests/test_api_jwt.py::TestJWT::test_decode_raises_exception_if_aud_is_none PASSED
tests/test_api_jwt.py::TestJWT::test_encode_datetime PASSED
tests/test_api_jwt.py::TestJWT::test_decodes_valid_es256_jwt PASSED
tests/test_api_jwt.py::TestJWT::test_decodes_valid_rs384_jwt PASSED
tests/test_api_jwt.py::TestJWT::test_decode_with_expiration PASSED
tests/test_api_jwt.py::TestJWT::test_decode_with_notbefore PASSED
tests/test_api_jwt.py::TestJWT::test_decode_skip_expiration_verification PASSED
tests/test_api_jwt.py::TestJWT::test_decode_skip_notbefore_verification PASSED
tests/test_api_jwt.py::TestJWT::test_decode_with_expiration_with_leeway PASSED
tests/test_api_jwt.py::TestJWT::test_decode_with_notbefore_with_leeway PASSED
tests/test_api_jwt.py::TestJWT::test_check_audience_when_valid PASSED
tests/test_api_jwt.py::TestJWT::test_check_audience_list_when_valid PASSED
tests/test_api_jwt.py::TestJWT::test_check_audience_none_specified PASSED
tests/test_api_jwt.py::TestJWT::test_raise_exception_invalid_audience_list PASSED
tests/test_api_jwt.py::TestJWT::test_check_audience_in_array_when_valid PASSED
tests/test_api_jwt.py::TestJWT::test_raise_exception_invalid_audience PASSED
tests/test_api_jwt.py::TestJWT::test_raise_exception_audience_as_bytes PASSED
tests/test_api_jwt.py::TestJWT::test_raise_exception_invalid_audience_in_array PASSED
tests/test_api_jwt.py::TestJWT::test_raise_exception_token_without_issuer PASSED
tests/test_api_jwt.py::TestJWT::test_rasise_exception_on_partial_issuer_match PASSED
tests/test_api_jwt.py::TestJWT::test_raise_exception_token_without_audience PASSED
tests/test_api_jwt.py::TestJWT::test_raise_exception_token_with_aud_none_and_without_audience PASSED
tests/test_api_jwt.py::TestJWT::test_check_issuer_when_valid PASSED
tests/test_api_jwt.py::TestJWT::test_check_issuer_list_when_valid PASSED
tests/test_api_jwt.py::TestJWT::test_raise_exception_invalid_issuer PASSED
tests/test_api_jwt.py::TestJWT::test_raise_exception_invalid_issuer_list PASSED
tests/test_api_jwt.py::TestJWT::test_skip_check_audience PASSED
tests/test_api_jwt.py::TestJWT::test_skip_check_exp PASSED
tests/test_api_jwt.py::TestJWT::test_decode_should_raise_error_if_exp_required_but_not_present PASSED
tests/test_api_jwt.py::TestJWT::test_decode_should_raise_error_if_iat_required_but_not_present PASSED
tests/test_api_jwt.py::TestJWT::test_decode_should_raise_error_if_nbf_required_but_not_present PASSED
tests/test_api_jwt.py::TestJWT::test_skip_check_signature PASSED
tests/test_api_jwt.py::TestJWT::test_skip_check_iat PASSED
tests/test_api_jwt.py::TestJWT::test_skip_check_nbf PASSED
tests/test_api_jwt.py::TestJWT::test_custom_json_encoder PASSED
tests/test_api_jwt.py::TestJWT::test_decode_with_verify_exp_option PASSED
tests/test_api_jwt.py::TestJWT::test_decode_with_verify_exp_option_and_signature_off PASSED
tests/test_api_jwt.py::TestJWT::test_decode_with_optional_algorithms PASSED
tests/test_api_jwt.py::TestJWT::test_decode_no_algorithms_verify_signature_false PASSED
tests/test_api_jwt.py::TestJWT::test_decode_legacy_verify_warning PASSED
tests/test_api_jwt.py::TestJWT::test_decode_no_options_mutation PASSED
tests/test_api_jwt.py::TestJWT::test_decode_warns_on_unsupported_kwarg PASSED
tests/test_api_jwt.py::TestJWT::test_decode_complete_warns_on_unsupported_kwarg PASSED
tests/test_api_jwt.py::TestJWT::test_decode_strict_aud_forbids_list_audience PASSED
tests/test_api_jwt.py::TestJWT::test_decode_strict_aud_forbids_list_claim PASSED
tests/test_api_jwt.py::TestJWT::test_decode_strict_aud_does_not_match PASSED
tests/test_api_jwt.py::TestJWT::test_decode_strict_ok PASSED
tests/test_api_jwt.py::TestJWT::test_encode_decode_sub_claim PASSED
tests/test_api_jwt.py::TestJWT::test_decode_without_and_not_required_sub_claim PASSED
tests/test_api_jwt.py::TestJWT::test_decode_missing_sub_but_required_claim PASSED
tests/test_api_jwt.py::TestJWT::test_decode_invalid_int_sub_claim PASSED
tests/test_api_jwt.py::TestJWT::test_decode_with_valid_sub_claim PASSED
tests/test_api_jwt.py::TestJWT::test_decode_with_invalid_sub_claim PASSED
tests/test_api_jwt.py::TestJWT::test_decode_with_sub_claim_and_none_subject PASSED
tests/test_api_jwt.py::TestJWT::test_encode_decode_with_valid_jti_claim PASSED
tests/test_api_jwt.py::TestJWT::test_decode_missing_jti_when_required_claim PASSED
tests/test_api_jwt.py::TestJWT::test_decode_missing_jti_claim PASSED
tests/test_api_jwt.py::TestJWT::test_jti_claim_with_invalid_int_value PASSED
tests/test_compressed_jwt.py::test_decodes_complete_valid_jwt_with_compressed_payload PASSED
tests/test_exceptions.py::test_missing_required_claim_error_has_proper_str PASSED
tests/test_jwks_client.py::TestPyJWKClient::test_fetch_data_forwards_headers_to_correct_url PASSED
tests/test_jwks_client.py::TestPyJWKClient::test_get_jwk_set PASSED
tests/test_jwks_client.py::TestPyJWKClient::test_get_signing_keys PASSED
tests/test_jwks_client.py::TestPyJWKClient::test_get_signing_keys_if_no_use_provided PASSED
tests/test_jwks_client.py::TestPyJWKClient::test_get_signing_keys_raises_if_none_found PASSED
tests/test_jwks_client.py::TestPyJWKClient::test_get_signing_key PASSED
tests/test_jwks_client.py::TestPyJWKClient::test_get_signing_key_caches_result PASSED
tests/test_jwks_client.py::TestPyJWKClient::test_get_signing_key_does_not_cache_opt_out PASSED
tests/test_jwks_client.py::TestPyJWKClient::test_get_signing_key_from_jwt PASSED
tests/test_jwks_client.py::TestPyJWKClient::test_get_jwk_set_caches_result PASSED
tests/test_jwks_client.py::TestPyJWKClient::test_get_jwt_set_cache_expired_result PASSED
tests/test_jwks_client.py::TestPyJWKClient::test_get_jwt_set_cache_disabled PASSED
tests/test_jwks_client.py::TestPyJWKClient::test_get_jwt_set_failed_request_should_clear_cache PASSED
tests/test_jwks_client.py::TestPyJWKClient::test_failed_request_should_raise_connection_error PASSED
tests/test_jwks_client.py::TestPyJWKClient::test_get_jwt_set_refresh_cache PASSED
tests/test_jwks_client.py::TestPyJWKClient::test_get_jwt_set_no_matching_kid_after_second_attempt PASSED
tests/test_jwks_client.py::TestPyJWKClient::test_get_jwt_set_invalid_lifespan PASSED
tests/test_jwks_client.py::TestPyJWKClient::test_get_jwt_set_timeout PASSED
tests/test_jwks_client.py::TestPyJWKClient::test_get_jwt_set_sslcontext_default PASSED
tests/test_jwks_client.py::TestPyJWKClient::test_get_jwt_set_sslcontext_no_ca PASSED
tests/test_jwt.py::test_encode_decode PASSED
tests/test_utils.py::test_to_base64url_uint[0-expected0] PASSED
tests/test_utils.py::test_to_base64url_uint[1-expected1] PASSED
tests/test_utils.py::test_to_base64url_uint[255-expected2] PASSED
tests/test_utils.py::test_to_base64url_uint[65537-expected3] PASSED
tests/test_utils.py::test_to_base64url_uint[123456789-expected4] PASSED
tests/test_utils.py::test_to_base64url_uint[-1-expected5] PASSED
tests/test_utils.py::test_from_base64url_uint[AA-0] PASSED
tests/test_utils.py::test_from_base64url_uint[AQ-1] PASSED
tests/test_utils.py::test_from_base64url_uint[_w-255] PASSED
tests/test_utils.py::test_from_base64url_uint[AQAB-65537] PASSED
tests/test_utils.py::test_from_base64url_uint[B1vNFQ-123456789] PASSED
tests/test_utils.py::test_force_bytes_raises_error_on_invalid_object PASSED
tests/test_utils.py::test_is_ssh_key[ssh-ed25519] PASSED
tests/test_utils.py::test_is_ssh_key[ssh-rsa] PASSED
tests/test_utils.py::test_is_ssh_key[ssh-dss] PASSED
tests/test_utils.py::test_is_ssh_key[ecdsa-sha2-nistp256] PASSED
tests/test_utils.py::test_is_ssh_key[ecdsa-sha2-nistp384] PASSED
tests/test_utils.py::test_is_ssh_key[ecdsa-sha2-nistp521] PASSED

=========================== short test summary info ============================
======== 287 passed, 4 skipped ========
  py$(PYV): OK
  congratulations :)