"""Test for reset_user_with_user_id.""" import json from unittest.mock import MagicMock from owsresponse import response import pytest from users.app import app from users.logic import user_info @pytest.mark.parametrize( ('user_id', 'expected_msg', 'expected_status'), [ ('alw:24468', {'foo': 'bar'}, 200), ('oa:123456', {'foo': 'bar'}, 200), ( 'fake:123456', { 'code': 'internal_error', 'message': 'user_identifier must be in the form oa:123 or alw:123.', }, 500, ), ( '1233', { 'code': 'internal_error', 'message': 'user_identifier must be in the form oa:123 or alw:123.', }, 500, ), ], ) def test_reset_user_with_user_id(monkeypatch, user_id, expected_msg, expected_status): """Test reset_user_with_user_id.""" app.testing = True monkeypatch.setattr( user_info, 'reset_user_auth0_details', MagicMock(return_value=response.Response(message=expected_msg)), ) request = app.test_client().delete('/auth0/reset-user/{}'.format(user_id)) response_data = json.loads(request.data.decode('utf-8')) assert request.status_code == expected_status assert response_data == expected_msg if request.status_code == 200: user_id_parts = user_id.split(':') user_type = user_id_parts[0] user_id_id = user_id_parts[1] user_info.reset_user_auth0_details.assert_called_once_with(user_id_id, user_type)