Ejemplo n.º 1
0
    def test_get_table(self):
        store = FeatureTable(self.sess, self.name, self.ft_space, self.ann_space)
        with pytest.raises(OmeroTablesFeatureStore.TableUsageException):
            store.get_table()

        tcols, meta, ftnames = TableStoreHelper.get_columns([2], "multi", False)
        store.new_table(meta, ftnames)
        assert store.get_table()
        store.close()
    def test_get_table(self):
        store = FeatureTable(
            self.sess, self.name, self.ft_space, self.ann_space)
        with pytest.raises(OmeroTablesFeatureStore.TableUsageException):
            store.get_table()

        tcols, meta, ftnames = TableStoreHelper.get_columns(
            [2], 'multi', False)
        store.new_table(meta, ftnames)
        assert store.get_table()
        store.close()
    def test_delete(self, owned):
        if owned:
            tablesess = self.sess
        else:
            user2 = self.create_user_same_group()
            tablesess = self.create_client_session(user2)

        iid1 = unwrap(TableStoreHelper.create_image(self.sess).getId())
        iid2 = unwrap(TableStoreHelper.create_image(self.sess).getId())
        store = FeatureTable(
            tablesess, self.name, self.ft_space, self.ann_space)
        store.new_table([('Long', 'id')], ['x'])
        ofile = store.get_table().getOriginalFile()

        link1 = store.create_file_annotation(
            'Image', iid1, self.ann_space, ofile)
        link2 = store.create_file_annotation(
            'Image', iid2, self.ann_space, ofile)

        if not owned:
            store.close()
            # Reopen the store with a different session
            store = FeatureTable(
                self.sess, self.name, self.ft_space, self.ann_space)
            store.open_table(unwrap(ofile.getId()))

        def get(obj):
            # Fetch the latest copy of an object
            return self.sess.getQueryService().find(
                'omero.model.%s' % obj.__class__.__name__, unwrap(obj.getId()))

        assert get(link1) is not None
        assert get(link1.getParent()) is not None
        assert get(link1.getChild())
        assert get(link1.getChild().getFile())

        assert get(link2)
        assert get(link2.getParent())
        assert get(link2.getChild())
        assert get(link2.getChild().getFile())

        if owned:
            store.delete()

            assert get(link1) is None
            assert get(link1.getParent())
            assert get(link1.getChild()) is None
            assert get(link1.getChild().getFile()) is None

            assert get(link2) is None
            assert get(link2.getParent())
            assert get(link2.getChild()) is None
            assert get(link2.getChild().getFile()) is None
        else:
            with pytest.raises(
                    OmeroTablesFeatureStore.FeaturePermissionException):
                store.delete()

        store.close()
Ejemplo n.º 4
0
    def test_delete(self, owned):
        if owned:
            tablesess = self.sess
        else:
            user2 = self.create_user_same_group()
            tablesess = self.create_client_session(user2)

        iid1 = unwrap(TableStoreHelper.create_image(self.sess).getId())
        iid2 = unwrap(TableStoreHelper.create_image(self.sess).getId())
        store = FeatureTable(tablesess, self.name, self.ft_space, self.ann_space)
        store.new_table([("Long", "id")], ["x"])
        ofile = store.get_table().getOriginalFile()

        link1 = store.create_file_annotation("Image", iid1, self.ann_space, ofile)
        link2 = store.create_file_annotation("Image", iid2, self.ann_space, ofile)

        if not owned:
            store.close()
            # Reopen the store with a different session
            store = FeatureTable(self.sess, self.name, self.ft_space, self.ann_space)
            store.open_table(unwrap(ofile.getId()))

        def get(obj):
            # Fetch the latest copy of an object
            return self.sess.getQueryService().find("omero.model.%s" % obj.__class__.__name__, unwrap(obj.getId()))

        assert get(link1) is not None
        assert get(link1.getParent()) is not None
        assert get(link1.getChild())
        assert get(link1.getChild().getFile())

        assert get(link2)
        assert get(link2.getParent())
        assert get(link2.getChild())
        assert get(link2.getChild().getFile())

        if owned:
            store.delete()

            assert get(link1) is None
            assert get(link1.getParent())
            assert get(link1.getChild()) is None
            assert get(link1.getChild().getFile()) is None

            assert get(link2) is None
            assert get(link2.getParent())
            assert get(link2.getChild()) is None
            assert get(link2.getChild().getFile()) is None
        else:
            with pytest.raises(OmeroTablesFeatureStore.FeaturePermissionException):
                store.delete()

        store.close()