"""Tests for user utils.""" from unittest import mock import pytest from assets.constants import field_const from assets.utils import user as user_utils USER_IDS = [ 'oa:123', 'alw:456' ] @pytest.mark.parametrize('user_id', USER_IDS) def test_get_user_id_from_request(user_id): """Test for getting user id from headers.""" request = mock.Mock() request.headers = { field_const.ORCHARD_USER_ID: user_id } user_id, auth_type = user_utils.get_user_id_from_headers_or_body(request) assert auth_type == user_utils.HEADERS_AUTH assert user_id == user_id @pytest.mark.parametrize('user_id', USER_IDS) def test_get_user_id_from_body(user_id): """Test for getting user id from body.""" request = mock.Mock() request.headers = {} request.get_json = lambda **kwargs: { field_const.ORCHARD_USER_ID: user_id } user_id, auth_type = user_utils.get_user_id_from_headers_or_body(request) assert auth_type == user_utils.BODY_AUTH assert user_id == user_id def test_get_user_id_from_body_incorrect(): """Test for error getting incorrect user id from body.""" request = mock.Mock() request.headers = {} request.get_json = lambda **kwargs: { field_const.ORCHARD_USER_ID: 'wrong' } user_id, auth_type = user_utils.get_user_id_from_headers_or_body(request) assert auth_type is None assert user_id is None def test_get_user_id_from_empty_body_failure(): """Test for error getting user id from empty body failure.""" request = mock.Mock() request.headers = {} request.get_json = lambda **kwargs: None user_id, auth_type = user_utils.get_user_id_from_headers_or_body(request) assert auth_type is None assert user_id is None