def project_datasets(self, user1): """Return Project with Datasets and an orphaned Dataset.""" # Create and name all the objects project = ProjectI() project.name = rstring('Project') # Create 5 Datasets, each with 0-4 images. for d in range(5): dataset1 = DatasetI() dataset1.name = rstring('Dataset%s' % d) for i in range(d): image = self.create_test_image(size_x=5, size_y=5, session=user1[0].getSession(), name="Image%s" % i) image = ImageI(image.id.val, False) dataset1.linkImage(image) project.linkDataset(dataset1) # Create single orphaned Dataset dataset = DatasetI() dataset.name = rstring('Dataset') project = get_update_service(user1).saveAndReturnObject(project) dataset = get_update_service(user1).saveAndReturnObject(dataset) return project, dataset
def project_hierarchy_user1_group1(self, user1): """ Returns OMERO Projects with Dataset Children with Image Children Note: This returns a list of mixed objects in a specified order """ # Create and name all the objects project1 = ProjectI() project1.name = rstring('Project1') project2 = ProjectI() project2.name = rstring('Project2') dataset1 = DatasetI() dataset1.name = rstring('Dataset1') dataset2 = DatasetI() dataset2.name = rstring('Dataset2') image1 = self.new_image(name='Image1') image2 = self.new_image(name='Image2') # Link them together like so: # project1 # dataset1 # image1 # image2 # dataset2 # image2 # project2 # dataset2 # image2 project1.linkDataset(dataset1) project1.linkDataset(dataset2) project2.linkDataset(dataset2) dataset1.linkImage(image1) dataset1.linkImage(image2) dataset2.linkImage(image2) to_save = [project1, project2] projects = get_update_service(user1).saveAndReturnArray(to_save) projects.sort(key=lambda x: lower_or_none(unwrap(x.name))) datasets = projects[0].linkedDatasetList() datasets.sort(key=lambda x: lower_or_none(unwrap(x.name))) images = datasets[0].linkedImageList() images.sort(key=lambda x: lower_or_none(unwrap(x.name))) return projects + datasets + images
def project_with_datasets(project): for dataset_id in range(1, 3): o = DatasetI() o.id = rlong(dataset_id) o.name = rstring('dataset_name_%d' % dataset_id) o.description = rstring('dataset_description_%d' % dataset_id) project.linkDataset(o) return project
def project_dataset(request, itest, update_service): """ Returns a new OMERO Project and linked Dataset with required fields set. """ project = ProjectI() project.name = rstring(itest.uuid()) dataset = DatasetI() dataset.name = rstring(itest.uuid()) project.linkDataset(dataset) return update_service.saveAndReturnObject(project)
def project_dataset(self): """ Returns a new OMERO Project and linked Dataset with required fields set. """ project = ProjectI() project.name = rstring(self.uuid()) dataset = DatasetI() dataset.name = rstring(self.uuid()) project.linkDataset(dataset) return self.update.saveAndReturnObject(project)
def testListOrphans(self, orphaned, load_pixels, gatewaywrapper): # We login as 'User', since they have no other orphaned images gatewaywrapper.loginAsUser() conn = gatewaywrapper.gateway eid = conn.getUserId() # Create 5 orphaned images iids = [] for i in range(0, 5): img = gatewaywrapper.createTestImage(imageName=str(uuid.uuid1())) iids.append(img.id) # Create image in Dataset, to check this isn't found dataset = DatasetI() dataset.name = wrap('testListOrphans') image = ImageI() image.name = wrap('testListOrphans') dataset.linkImage(image) dataset = conn.getUpdateService().saveAndReturnObject(dataset) try: # Only test listOrphans() if orphaned if orphaned: # Pagination params = omero.sys.ParametersI() params.page(1, 3) findImagesInPage = list( conn.listOrphans("Image", eid=eid, params=params)) assert len(findImagesInPage) == 3 # No pagination (all orphans) findImages = list( conn.listOrphans("Image", loadPixels=load_pixels)) assert len(findImages) == 5 for p in findImages: assert p._obj.pixelsLoaded == load_pixels # Test getObjects() with 'orphaned' option opts = {'orphaned': orphaned, 'load_pixels': load_pixels} getImages = list(conn.getObjects("Image", opts=opts)) assert orphaned == (len(getImages) == 5) for p in getImages: assert p._obj.pixelsLoaded == load_pixels # Simply check this doesn't fail See https://github.com/ # openmicroscopy/openmicroscopy/pull/4950#issuecomment-264142956 dsIds = [d.id for d in conn.listOrphans("Dataset")] assert dataset.id.val in dsIds finally: # Cleanup - Delete what we created conn.deleteObjects('Image', iids, deleteAnns=True, wait=True) conn.deleteObjects('Dataset', [dataset.id.val], deleteChildren=True, wait=True)
def project_dataset_image(request, itest, update_service): """ Returns a new OMERO Project, linked Dataset and linked Image populated by an L{test.integration.library.ITest} instance with required fields set. """ project = ProjectI() project.name = rstring(itest.uuid()) dataset = DatasetI() dataset.name = rstring(itest.uuid()) image = itest.new_image(name=itest.uuid()) dataset.linkImage(image) project.linkDataset(dataset) return update_service.saveAndReturnObject(project)
def project_dataset_image(self): """ Returns a new OMERO Project, linked Dataset and linked Image populated by an L{test.integration.library.ITest} instance with required fields set. """ project = ProjectI() project.name = rstring(self.uuid()) dataset = DatasetI() dataset.name = rstring(self.uuid()) image = self.new_image(name=self.uuid()) dataset.linkImage(image) project.linkDataset(dataset) return self.update.saveAndReturnObject(project)
def datasets(self): """ Returns four new OMERO Datasets with required fields set and with names that can be used to exercise sorting semantics. """ to_save = [DatasetI(), DatasetI(), DatasetI(), DatasetI()] for index, dataset in enumerate(to_save): dataset.name = rstring(self.names[index]) # Non-orphaned Dataset to catch issues with queries where non-orphaned # datasets are included in the results. project = ProjectI() project.name = rstring(self.uuid()) dataset = DatasetI() dataset.name = rstring(self.uuid()) project.linkDataset(dataset) self.update.saveAndReturnObject(project) return self.update.saveAndReturnArray(to_save)
def datasets(request, itest, update_service, names): """ Returns four new OMERO Datasets with required fields set and with names that can be used to exercise sorting semantics. """ to_save = [DatasetI(), DatasetI(), DatasetI(), DatasetI()] for index, dataset in enumerate(to_save): dataset.name = rstring(names[index]) # Non-orphaned Dataset to catch issues with queries where non-orphaned # datasets are included in the results. project = ProjectI() project.name = rstring(itest.uuid()) dataset = DatasetI() dataset.name = rstring(itest.uuid()) project.linkDataset(dataset) update_service.saveAndReturnObject(project) return update_service.saveAndReturnArray(to_save)
def dataset_images(self, user1): """Return Dataset with Images and an orphaned Image.""" dataset = DatasetI() dataset.name = rstring('Dataset') # Create 5 Images in Dataset for i in range(5): img = self.create_test_image(size_x=125, size_y=125, session=user1[0].getSession(), name="Image%s" % i) img = ImageI(img.id.val, False) dataset.linkImage(img) # Create a single orphaned Image image = self.create_test_image(size_x=125, size_y=125, session=user1[0].getSession()) dataset = get_update_service(user1).saveAndReturnObject(dataset) return dataset, image
def datasets_different_users(request, itest, conn): """ Returns two new OMERO Datasets created by different users with required fields set. """ client = conn.c group = conn.getGroupFromContext()._obj datasets = list() # User that has already been created by the "client" fixture user, name = itest.user_and_name(client) itest.add_experimenters(group, [user]) for name in (rstring(itest.uuid()), rstring(itest.uuid())): client, user = itest.new_client_and_user(group=group) try: dataset = DatasetI() dataset.name = name update_service = client.getSession().getUpdateService() datasets.append(update_service.saveAndReturnObject(dataset)) finally: client.closeSession() return datasets
def create_project(with_datasets=False, with_images=False): project = ProjectI() project.id = rlong(1L) project.name = rstring("the_name") project.description = rstring("the_description") dataset_count = 2 if not with_datasets: return project for dataset_id in range(0, dataset_count): dataset = DatasetI() dataset.id = rlong(dataset_id + 1) dataset.name = rstring("dataset_name_%d" % (dataset_id + 1)) dataset.description = rstring("dataset_description_%d" % (dataset_id + 1)) project.linkDataset(dataset) if not with_images: continue for image_id in range(1, 3): image_id = (dataset_id * dataset_count) + image_id dataset.linkImage(create_image(image_id)) return project
def projects_dataset_image_tag(self): """ Returns 2 new OMERO Projects, linked Dataset and linked Image populated by an L{test.integration.library.ITest} instance with required fields set. Also a Tag linked to both Projects. """ project1 = ProjectI() project1.name = rstring(self.uuid()) project2 = ProjectI() project2.name = rstring(self.uuid()) dataset = DatasetI() dataset.name = rstring(self.uuid()) image = self.new_image(name=self.uuid()) dataset.linkImage(image) project1.linkDataset(dataset) project2.linkDataset(dataset) tag = TagAnnotationI() tag.textValue = rstring("ChgrpTag") project1.linkAnnotation(tag) project2.linkAnnotation(tag) return self.update.saveAndReturnArray([project1, project2])
def projects_dataset_image_tag(self): """ Returns 2 new OMERO Projects, linked Dataset and linked Image populated by an L{test.integration.library.ITest} instance with required fields set. Also a Tag linked to both Projects. """ project1 = ProjectI() project1.name = rstring(f'P1_{self.uuid()}') project2 = ProjectI() project2.name = rstring(f'P2_{self.uuid()}') dataset = DatasetI() dataset.name = rstring(f'D{self.uuid()}') image = self.new_image(f'I{self.uuid()}') dataset.linkImage(image) project1.linkDataset(dataset) project2.linkDataset(dataset) tag = TagAnnotationI() tag.textValue = rstring("ChgrpTag") project1.linkAnnotation(tag) project2.linkAnnotation(tag) return self.update.saveAndReturnArray([project1, project2])
def datasets_different_users(self): """ Returns two new OMERO Datasets created by different users with required fields set. """ client = self.conn.c group = self.conn.getGroupFromContext()._obj datasets = list() # User that has already been created by the "client" fixture user, name = self.user_and_name(client) self.add_experimenters(group, [user]) for name in (rstring(self.uuid()), rstring(self.uuid())): client, user = self.new_client_and_user(group=group) try: dataset = DatasetI() dataset.name = name update_service = client.getSession().getUpdateService() datasets.append(update_service.saveAndReturnObject(dataset)) finally: client.closeSession() return datasets
def create_project(with_datasets=False, with_images=False): project = ProjectI() project.id = rlong(1) project.name = rstring('the_name') project.description = rstring('the_description') dataset_count = 2 if not with_datasets: return project for dataset_id in range(0, dataset_count): dataset = DatasetI() dataset.id = rlong(dataset_id + 1) dataset.name = rstring('dataset_name_%d' % (dataset_id + 1)) dataset.description = rstring('dataset_description_%d' % (dataset_id + 1)) project.linkDataset(dataset) if not with_images: continue for image_id in range(1, 3): image_id = (dataset_id * dataset_count) + image_id dataset.linkImage(create_image(image_id)) return project
def create_dataset(self, conn, dataset_name): print "Creating new Dataset:", dataset_name d = DatasetI() d.name = wrap(dataset_name) return conn.getUpdateService().saveAndReturnObject(d)
def dataset(self): """Returns a new OMERO Dataset with required fields set.""" dataset = DatasetI() dataset.name = rstring(self.uuid()) return self.update.saveAndReturnObject(dataset)
def create_dataset(self, conn, dataset): print "Creating new Dataset:", dataset d = DatasetI() d.name = wrap(dataset.encode('ascii','ignore')) return conn.getUpdateService().saveAndReturnObject(d)
def dataset(self): """Returns a new OMERO Project with required fields set.""" dataset = DatasetI() dataset.name = rstring(self.uuid()) return self.update.saveAndReturnObject(dataset)