def test_published_project_with_incomplete_default_locale_raises_error(
            self, mock_project, mock_user):
        # Arrange
        stub_project = Project()
        stub_project.status = ProjectStatus.PUBLISHED.value

        mock_project.return_value = stub_project

        locales = []
        info = ProjectInfoDTO()
        info.locale = "en"
        info.name = "Test"
        locales.append(info)

        dto = ProjectDTO()
        dto.project_id = 1
        dto.default_locale = "en"
        dto.project_info_locales = locales
        dto.project_status = ProjectStatus.PUBLISHED.name

        stub_admin_user = User()
        stub_admin_user.username = "******"
        stub_admin_user.role = UserRole.ADMIN.value

        mock_user.return_value = stub_admin_user
        # Act / Assert
        with self.assertRaises(ProjectAdminServiceError):
            ProjectAdminService.update_project(dto, mock_user.id)
Exemple #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))
Exemple #3
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))
    def test_updating_a_project_with_different_roles(self, mock_project,
                                                     mock_project2, mock_user):
        stub_project = Project()
        stub_project.status = ProjectStatus.DRAFT.value

        mock_project.return_value = stub_project

        locales = []
        info = ProjectInfoDTO()
        info.locale = "en"
        info.name = "Test"
        locales.append(info)

        dto = ProjectDTO()
        dto.project_id = 1
        dto.default_locale = "en"
        dto.project_status = ProjectStatus.DRAFT.name
        dto.project_priority = ProjectPriority.LOW.name
        dto.mapper_level = MappingLevel.BEGINNER.name
        dto.mapping_types = ["ROADS"]
        dto.mapping_editors = ["ID"]
        dto.validation_editors = ["ID"]
        dto.project_info_locales = locales

        stub_user = User()
        stub_user.username = "******"
        stub_user.role = UserRole.MAPPER.value

        mock_user.return_value = stub_user

        with self.assertRaises(ValueError) as e:
            ProjectAdminService.update_project(dto, mock_user.id)
        the_exception = e.exception
        self.assertTrue(isinstance(the_exception, ValueError))

        # stub_project.author_id = mock_user.id

        stub_user.username = "******"
        stub_user.role = UserRole.ADMIN.value
        mock_user.return_value = stub_user

        try:
            ProjectAdminService.update_project(dto, mock_user.id)
        except ProjectAdminServiceError:
            self.fail("update_project raised an exception with admin role")
    def test_updating_a_private_project_with_no_allowed_users_causes_an_error(
            self, mock_project, mock_user):
        # Arrange
        mock_project.return_value = Project()

        dto = ProjectDTO()
        dto.private = True
        dto.allowed_usernames = []

        stub_user = User()
        stub_user.username = "******"
        stub_user.role = UserRole.ADMIN.value

        mock_user.return_value = stub_user

        with self.assertRaises(ProjectAdminServiceError):
            ProjectAdminService.update_project(dto, mock_user.id)
Exemple #6
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
Exemple #7
0
    def test_updating_a_private_project_with_no_allowed_users(
            self, mock_project, mock_project2, mock_user):
        # Arrange
        mock_project.return_value = Project()

        dto = ProjectDTO()
        dto.private = True
        dto.allowed_usernames = []

        stub_user = User()
        stub_user.username = "******"
        stub_user.role = UserRole.ADMIN.value

        mock_user.return_value = stub_user

        try:
            ProjectAdminService.update_project(dto, mock_user.id)
        except ProjectAdminServiceError:
            self.fail(
                "update_project raised an exception when setting it as private"
            )