setup.py
    F 6:0 get_requirements - A (2)
tests/test_errors_class.py
    F 7:0 test_auth_error_attributes - A (3)
    F 28:0 test_auth_error_repr_method - A (3)
    F 36:0 test_auth_error_str_method - A (3)
    F 14:0 test_auth_error_raise - A (2)
    F 20:0 test_auth_error_exception_handling - A (2)
tests/test_utility_functions.py
    F 40:0 test_get_audiences - B (7)
    F 7:0 test_is_authentication_disabled_negative_test - B (6)
    F 25:0 test_is_authentication_disabled_positive_test - A (5)
tests/test_token_handling.py
    F 24:0 setup_module - A (5)
    F 94:0 mocked_requests_get - A (3)
    F 115:0 mocked_requests - A (3)
    F 318:0 test_login_required_invalid_secret - A (3)
    F 353:0 test_user_wrapper_wrong_key - A (3)
    F 392:0 test_service_account_wrapper_wrong_key - A (3)
    F 54:0 teardown_module - A (2)
    F 175:0 test_decode_token_invalid_input_1 - A (2)
    F 184:0 test_decode_token_invalid_input_2 - A (2)
    F 193:0 test_decode_token_invalid_input_3 - A (2)
    F 202:0 test_decode_token_invalid_input_4 - A (2)
    F 211:0 test_decode_token_invalid_input_5 - A (2)
    F 220:0 test_decode_token_invalid_input_6 - A (2)
    F 233:0 test_decode_token_invalid_input_7 - A (2)
    F 247:0 test_decode_token_valid_input - A (2)
    F 264:0 test_decode_token_invalid_key_input - A (2)
    F 278:0 test_service_token_valid_input - A (2)
    F 290:0 test_init_service_account_token - A (2)
    F 297:0 test_fetch_public_keys - A (2)
    F 305:0 test_login_required_valid_secret - A (2)
    F 332:0 test_user_wrapper - A (2)
    F 375:0 test_service_account_wrapper - A (2)
    F 15:0 create_app - A (1)
    F 59:0 mocked_fetch_public_keys_1 - A (1)
    F 64:0 mocked_fetch_public_keys_2 - A (1)
    F 69:0 mocked_fetch_public_keys_3 - A (1)
    F 74:0 mocked_fetch_public_keys_4 - A (1)
    F 79:0 mocked_get_audiences - A (1)
    F 84:0 mocked_get_audiences_2 - A (1)
    F 89:0 mocked_get_audiences_3 - A (1)
    F 137:0 get_current_app - A (1)
    F 142:0 mocked_get_token_from_auth_header - A (1)
    F 154:0 mocked_get_threescale_account_secret_header_none - A (1)
    F 159:0 mocked_get_threescale_account_secret_header - A (1)
    F 164:0 mocked_get_token_from_auth_header_service_account - A (1)
fabric8a_auth/auth.py
    F 12:0 decode_token - C (12)
    F 161:0 fetch_public_keys - B (6)
    F 191:0 init_service_account_token - A (4)
    F 223:0 is_authentication_disabled - A (2)
    F 60:0 decode_user_token - A (1)
    F 68:0 decode_service_token - A (1)
    F 75:0 get_token_from_auth_header - A (1)
    F 80:0 get_threescale_account_secret_header - A (1)
    F 85:0 get_audiences - A (1)
    F 90:0 login_required - A (1)
    F 132:0 service_token_required - A (1)
fabric8a_auth/errors.py
    C 4:0 AuthError - A (1)
    M 16:4 AuthError.__init__ - A (1)
    M 26:4 AuthError.__repr__ - A (1)
    M 29:4 AuthError.__str__ - A (1)
tools/check_python_version.py
    F 19:0 get_expected_version - A (4)
    F 48:0 compare_versions - A (2)
    F 59:0 main - A (2)
    F 43:0 get_actual_version - A (1)

63 blocks (classes, functions, methods) analyzed.
Average complexity: A (2.253968253968254)