def test_admin_role_is_recognized_as_a_validator(self, mock_user): # Arrange stub_user = User() stub_user.role = UserRole.ADMIN.value mock_user.return_value = stub_user # Act / Assert self.assertTrue(UserService.is_user_validator(123))
def test_mapper_role_is_not_recognized_as_a_validator(self, mock_user): # Arrange stub_user = User() stub_user.role = UserRole.MAPPER.value mock_user.return_value = stub_user # Act / Assert self.assertFalse(UserService.is_user_validator(123))
def test_user_not_identified_as_pm(self, mock_user): # Arrange test_user = User() test_user.role = UserRole.MAPPER.value mock_user.return_value = test_user # Act / Assert self.assertFalse(UserService.is_user_a_project_manager(123))
def test_pm_not_allowed_to_add_admin_role_when_setting_role( self, mock_admin): # Arrange admin = User() admin.role = UserRole.PROJECT_MANAGER.value mock_admin.return_value = admin # Act with self.assertRaises(UserServiceError): UserService.add_role_to_user(1, 'test', 'ADMIN')
def test_user_correctly_identified_as_pm(self, mock_user): # Arrange test_proj = Project() test_user = User() test_user.role = UserRole.PROJECT_MANAGER.value mock_user.return_value = test_user # Act / Assert self.assertTrue(UserService.is_user_a_project_manager(123)) self.assertTrue(test_proj)
def test_as_dto_will_not_return_email_if_owner(self): if self.skip_tests: return # Arrange test_user = User() test_user.role = UserRole.MAPPER.value test_user.mapping_level = MappingLevel.BEGINNER.value test_user.username = '******' test_user.email_address = '*****@*****.**' # Act user_dto = test_user.as_dto('mrtest') # Assert self.assertTrue(user_dto.email_address)
def setUp(self): # Arrange test_user = User() test_user.role = UserRole.MAPPER.value test_user.id = 12 test_user.mapping_level = MappingLevel.BEGINNER.value test_user.username = '******' test_user.email_address = '*****@*****.**' self.test_user = test_user """ Setup test context so we can connect to database """ self.app = create_app() self.ctx = self.app.app_context() self.ctx.push() if self.skip_tests: return
def create_user(user_dto: UserDTO): """ Creates a new admin user record :param user_dto: DTO containing all user details :return: User if created successfully :raises UserExistsError if username already exists """ # Check if username already exists if User.get_by_username(user_dto.username) is not None: raise UserExistsError( f'Cannot create account. Username {user_dto.username} already exists.' ) new_user = User() new_user.username = user_dto.username new_user.password = UserService._hash_password( user_dto.password) # Hash password so not storing in plaintext new_user.role = UserRole[user_dto.role].value new_user.create() return new_user