from unittest.mock import patch, MagicMock import nose.tools as nt from behave import step from atlas_um.auth import utils from atlas_um.auth.claims import Audience, Role from atlas_um.auth.models import User @step("I authenticated as admin") def step_authenticated_as_admin(context): mocked_get_user = MagicMock() patcher = patch.object(utils, "_get_user", mocked_get_user) mocked_get_user.return_value = User("dna|admin", [Role(Role.Values.admin)]) patcher.start() context.patched.append((utils, patcher)) @step("I authenticated as manager") def step_authenticated_as_manager(context): mocked_get_user = MagicMock() patcher = patch.object(utils, "_get_user", mocked_get_user) mocked_get_user.return_value = User( "dna|admin", [Role(Role.Values.manager)] ) patcher.start() context.patched.append((utils, patcher)) @step("I authenticated as api client") def step_authenticated_as_api_client(context): mocked_get_user = MagicMock() patcher = patch.object(utils, "_get_user", mocked_get_user) mocked_get_user.return_value = User( context.faker.pystr(), [Audience(Audience.Values.api_read)] ) patcher.start() context.patched.append((utils, patcher)) @step("I should see unauthorized error") def step_should_be_assigned_dna_bearer_token(context): nt.assert_equal(context.response.status_code, 401)