예제 #1
0
    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))
예제 #2
0
    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))
예제 #3
0
    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))
예제 #4
0
    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')
예제 #5
0
    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)
예제 #7
0
    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
예제 #8
0
    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