"""Test user's endpoints.""" import pytest from tests.integration.consts import schema from tests.integration.test_helpers import api as api_calls from tests.integration.test_helpers import utils @pytest.fixture(scope='module') def test_get_users(new_user_fixture): """Get users endpoint test.""" response_body = utils.validate_response_status( api_calls.user.get() ) for item in response_body['items']: utils.assert_has_keys(item, schema.USER_FIELDS) new_user = [item for item in response_body['items'] if item['id'] == new_user_fixture['id']] assert new_user, 'Expected to see user {} in response'.format(new_user_fixture['id']) def test_get_current_user(): """Get current user endpoint test.""" response_body = utils.validate_response_status( api_calls.user.get_current() ) utils.assert_has_keys(response_body, schema.USER_FIELDS) assert response_body['name'] == 'podcast-admin', \ 'Expected current user to be {}, was {}'.format( 'podcast-admin', '') @pytest.fixture(scope='module') def test_delete_user(new_user_fixture): """Delete user endpoint test.""" response_body = utils.validate_response_status( api_calls.user.delete(new_user_fixture['id']) ) expected_body = {**new_user_fixture, **{'active': False}} response_body = utils.omit_keys(response_body, ['updated_date']) expected_body = utils.omit_keys(expected_body, ['updated_date']) assert response_body == expected_body, \ 'Expected response to be {}, was {}'.format( expected_body, response_body ) def test_ownership_check(episode_fixture, test_network_id_fixture): """Check ownership for the given object test.""" response_body = utils.validate_response_status( api_calls.user.check_ownership('network', test_network_id_fixture) ) assert response_body == { 'authorized': True } response_body = utils.validate_response_status( api_calls.user.check_ownership('podcast', episode_fixture['podcast_id']) ) assert response_body == { 'authorized': True } response_body = utils.validate_response_status( api_calls.user.check_ownership('episode', episode_fixture['id']) ) assert response_body == { 'authorized': True }