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)
def register_user(osm_id, username, changeset_count, picture_url, email): """ Creates user in DB :param osm_id: Unique OSM user id :param username: OSM Username :param changeset_count: OSM changeset count """ new_user = User() new_user.id = osm_id new_user.username = username if picture_url is not None: new_user.picture_url = picture_url intermediate_level = current_app.config["MAPPER_LEVEL_INTERMEDIATE"] advanced_level = current_app.config["MAPPER_LEVEL_ADVANCED"] if changeset_count > advanced_level: new_user.mapping_level = MappingLevel.ADVANCED.value elif intermediate_level < changeset_count < advanced_level: new_user.mapping_level = MappingLevel.INTERMEDIATE.value else: new_user.mapping_level = MappingLevel.BEGINNER.value if email is not None: new_user.email_address = email new_user.create() return new_user
def create_canned_user() -> User: """ Generate a canned user in the DB """ test_user = User() test_user.username = "******" test_user.mapping_level = 1 test_user.create() return test_user
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)
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 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" )