def test_get_enterprise_id_for_current_request_user_from_jwt_request_has_no_jwt(self, mock_decode_jwt): """ Verify get_enterprise_id_for_current_request_user_from_jwt returns None if decoded_jwt is None """ mock_decode_jwt.return_value = None assert get_enterprise_id_for_current_request_user_from_jwt() is None
def test_get_enterprise_id_for_current_request_user_from_jwt_request_has_jwt_no_context(self, mock_decode_jwt): """ Verify get_enterprise_id_for_current_request_user_from_jwt returns None if jwt context is missing """ mock_decode_jwt.return_value = { 'roles': ['{}'.format(SYSTEM_ENTERPRISE_LEARNER_ROLE)] } assert get_enterprise_id_for_current_request_user_from_jwt() is None
def test_get_enterprise_id_for_current_request_user_from_jwt_request_has_jwt(self, mock_decode_jwt): """ Verify get_enterprise_id_for_current_request_user_from_jwt returns jwt context for user if request has jwt and user has proper role """ mock_decode_jwt.return_value = { 'roles': ['{}:some-uuid'.format(SYSTEM_ENTERPRISE_LEARNER_ROLE)] } assert get_enterprise_id_for_current_request_user_from_jwt() == 'some-uuid'
def test_get_enterprise_id_for_current_request_user_from_jwt_request_has_jwt_non_learner(self, mock_decode_jwt): """ Verify get_enterprise_id_for_current_request_user_from_jwt returns None if user role is incorrect """ mock_decode_jwt.return_value = { 'roles': ['{}:some-uuid'.format(SYSTEM_ENTERPRISE_ADMIN_ROLE)] } assert get_enterprise_id_for_current_request_user_from_jwt() is None
def get_enterprise_id_for_user(site, user): enterprise_from_jwt = get_enterprise_id_for_current_request_user_from_jwt() if enterprise_from_jwt: return enterprise_from_jwt try: enterprise_learner_response = fetch_enterprise_learner_data(site, user) except (AttributeError, ReqConnectionError, KeyError, SlumberHttpBaseException, Timeout) as exc: logger.info('Unable to retrieve enterprise learner data for User: %s, Exception: %s', user, exc) return None try: return enterprise_learner_response['results'][0]['enterprise_customer']['uuid'] except IndexError: pass return None