Ejemplo n.º 1
0
    def test_copy_past_rendering_settings_from_image(self):
        # Create 2 images with 2 channels each
        iid1 = self.createTestImage(sizeC=2, session=self.sf).id.val
        iid2 = self.createTestImage(sizeC=2, session=self.sf).id.val

        conn = omero.gateway.BlitzGateway(client_obj=self.client)

        # image1 set color model
        image1 = conn.getObject("Image", iid1)
        image1.resetDefaults()
        image1.setColorRenderingModel()
        image1.saveDefaults()
        image1 = conn.getObject("Image", iid1)

        # image2 set greyscale model
        image2 = conn.getObject("Image", iid2)
        image2.setGreyscaleRenderingModel()
        image2.saveDefaults()
        image2 = conn.getObject("Image", iid2)

        assert image1.isGreyscaleRenderingModel() is False
        assert image2.isGreyscaleRenderingModel() is True

        # copy rendering settings from image1 via ID
        request_url = reverse('webgateway.views.copy_image_rdef_json')
        data = {"fromid": iid1}
        _get_response(self.django_client, request_url, data, status_code=200)

        # paste rendering settings to image2
        data = {'toids': iid2}

        _csrf_post_response(self.django_client, request_url, data)

        image2 = conn.getObject("Image", iid2)
        assert image2.isGreyscaleRenderingModel() is False
Ejemplo n.º 2
0
    def test_edit_tag_and_tagset(self, dtype):
        """
        Creates Tag/Tagset and tests editing of name and description
        """

        request_url = reverse("manage_action_containers",
                              args=["addnewcontainer"])
        data = {'folder_type': dtype, 'name': 'beforeEdit'}
        response = _csrf_post_response(self.django_client, request_url, data)
        tagId = json.loads(response.content).get("id")

        # Edit name
        request_url = reverse("manage_action_containers",
                              args=["savename", dtype, tagId])
        data = {'name': 'afterEdit'}
        response = _csrf_post_response(self.django_client, request_url, data)

        # Edit description
        request_url = reverse("manage_action_containers",
                              args=["savedescription", dtype, tagId])
        data = {'description': 'New description after editing'}
        response = _csrf_post_response(self.django_client, request_url, data)

        # check edited name and description
        tagset = self.query.get('TagAnnotationI', tagId)
        assert tagset is not None
        if dtype == "tagset":
            assert tagset.ns.val == omero.constants.metadata.NSINSIGHTTAGSET
        assert tagset.textValue.val == 'afterEdit'
        assert tagset.description.val == 'New description after editing'
    def test_edit_share(self):

        # create images
        images = [self.createTestImage(session=self.sf),
                  self.createTestImage(session=self.sf)]

        sid = self.sf.getShareService().createShare(
            "foobar", rtime(None), images, [self.user], [], True)

        request_url = reverse("manage_action_containers",
                              args=["save", "share", sid])

        data = {
            'enable': 'on',
            'image': [i.id.val for i in images],
            'members': self.user.id.val,
            'message': 'another foobar'
        }
        _post_response(self.django_client, request_url, data)
        _csrf_post_response(self.django_client, request_url, data)

        # remove image from share
        request_url = reverse("manage_action_containers",
                              args=["removefromshare", "share", sid])
        data = {
            'source': images[1].id.val,
        }
        _post_response(self.django_client, request_url, data)
        _csrf_post_response(self.django_client, request_url, data)
Ejemplo n.º 4
0
    def test_paste_move_remove_deletamany_image(self):

        # Add dataset
        request_url = reverse("manage_action_containers",
                              args=["addnewcontainer"])
        data = {'folder_type': 'dataset', 'name': 'foobar'}
        _post_response(self.django_client, request_url, data)
        response = _csrf_post_response(self.django_client, request_url, data)
        did = json.loads(response.content).get("id")

        img = self.make_image()
        print img

        # Link image to Dataset
        request_url = reverse("api_links")
        data = {'dataset': {did: {'image': [img.id.val]}}}

        _post_response(self.django_client, request_url, data)
        _csrf_post_response(self.django_client,
                            request_url,
                            json.dumps(data),
                            content_type="application/json")

        # Unlink image from Dataset
        request_url = reverse("api_links")
        data = {'dataset': {did: {'image': [img.id.val]}}}
        _delete_response(self.django_client, request_url, data)
        response = _csrf_delete_response(self.django_client,
                                         request_url,
                                         json.dumps(data),
                                         content_type="application/json")
        # Response will contain remaining links from image (see test_links.py)
        response = json.loads(response.content)
        assert response == {"success": True}
Ejemplo n.º 5
0
    def test_edit_share(self):

        # create images
        images = [
            self.createTestImage(session=self.sf),
            self.createTestImage(session=self.sf)
        ]

        sid = self.sf.getShareService().createShare("foobar", rtime(None),
                                                    images, [self.user], [],
                                                    True)

        request_url = reverse("manage_action_containers",
                              args=["save", "share", sid])

        data = {
            'enable': 'on',
            'image': [i.id.val for i in images],
            'members': self.user.id.val,
            'message': 'another foobar'
        }
        _post_response(self.django_client, request_url, data)
        _csrf_post_response(self.django_client, request_url, data)

        # remove image from share
        request_url = reverse("manage_action_containers",
                              args=["removefromshare", "share", sid])
        data = {
            'source': images[1].id.val,
        }
        _post_response(self.django_client, request_url, data)
        _csrf_post_response(self.django_client, request_url, data)
Ejemplo n.º 6
0
    def test_attach_file(self):

        # Due to EOF both posts must be test separately
        # Bad post
        img = self.image_with_channels()
        try:
            temp = tempfile.NamedTemporaryFile(suffix='.csrf')
            temp.write("Testing without csrf token")
            temp.seek(0)

            request_url = reverse('annotate_file')
            data = {
                'image': img.id.val,
                'index': 0,
                'annotation_file': temp
            }
            _post_response(self.django_client, request_url, data)
        finally:
            temp.close()

        # Good post
        try:
            temp = tempfile.NamedTemporaryFile(suffix='.csrf')
            temp.write("Testing csrf token")
            temp.seek(0)

            request_url = reverse('annotate_file')
            data = {
                'image': img.id.val,
                'index': 0,
                'annotation_file': temp
            }
            _csrf_post_response(self.django_client, request_url, data)
        finally:
            temp.close()
Ejemplo n.º 7
0
    def test_create_tag_and_tagset(self):
        """
        Creates a Tagset then a Tag within the Tagset
        """

        tsValue = 'testTagset'
        request_url = reverse("manage_action_containers",
                              args=["addnewcontainer"])
        data = {'folder_type': 'tagset', 'name': tsValue}
        response = _csrf_post_response(self.django_client, request_url, data)
        tagsetId = json.loads(response.content).get("id")

        # check creation
        tagset = self.query.get('TagAnnotationI', tagsetId)
        assert tagset is not None
        assert tagset.ns.val == omero.constants.metadata.NSINSIGHTTAGSET
        assert tagset.textValue.val == tsValue

        # Add tag to the tagset
        request_url = reverse("manage_action_containers",
                              args=["addnewcontainer", "tagset", tagsetId])
        data = {'folder_type': 'tag', 'name': 'tagInTagset'}
        _post_response(self.django_client, request_url, data)
        response2 = _csrf_post_response(self.django_client, request_url, data)
        tagId = json.loads(response2.content).get("id")

        # Check that tag is listed under tagset...
        request_url = reverse("api_tags_and_tagged")
        data = {'id': tagsetId}
        data = _get_response_json(self.django_client, request_url, data)
        assert len(data['tags']) == 1
        assert data['tags'][0]['id'] == tagId
Ejemplo n.º 8
0
    def test_attach_file(self):

        # Due to EOF both posts must be test separately
        # Bad post
        img = self.image_with_channels()
        try:
            temp = tempfile.NamedTemporaryFile(suffix='.csrf')
            temp.write("Testing without csrf token")
            temp.seek(0)

            request_url = reverse('annotate_file')
            data = {'image': img.id.val, 'index': 0, 'annotation_file': temp}
            _post_response(self.django_client, request_url, data)
        finally:
            temp.close()

        # Good post
        try:
            temp = tempfile.NamedTemporaryFile(suffix='.csrf')
            temp.write("Testing csrf token")
            temp.seek(0)

            request_url = reverse('annotate_file')
            data = {'image': img.id.val, 'index': 0, 'annotation_file': temp}
            _csrf_post_response(self.django_client, request_url, data)
        finally:
            temp.close()
Ejemplo n.º 9
0
 def test_create_group(self):
     uuid = self.uuid()
     request_url = reverse('wamanagegroupid', args=["create"])
     data = {"name": uuid, "description": uuid, "permissions": 0}
     _post_response(self.django_root_client, request_url, data)
     _csrf_post_response(self.django_root_client,
                         request_url,
                         data,
                         status_code=302)
Ejemplo n.º 10
0
    def test_add_and_remove_comment(self):

        request_url = reverse('annotate_comment')
        data = {
            'comment': 'foobar',
            'image': self.image_with_channels().id.val
        }
        _post_response(self.django_client, request_url, data)
        _csrf_post_response(self.django_client, request_url, data)
Ejemplo n.º 11
0
    def test_apply_owners_rendering_settings(self):

        img = self.createTestImage(session=self.sf)

        request_url = reverse('reset_owners_rdef_json')
        data = {'toids': img.id.val, 'to_type': 'image'}

        _post_response(self.django_client, request_url, data, status_code=403)
        _csrf_post_response(self.django_client, request_url, data)
Ejemplo n.º 12
0
    def test_forgot_password(self):

        request_url = reverse('waforgottenpassword')
        data = {
            'username': "******",
            'email': "email"
        }
        _post_response(self.django_client, request_url, data)
        _csrf_post_response(self.django_client, request_url, data)
Ejemplo n.º 13
0
    def test_add_and_remove_comment(self):

        request_url = reverse('annotate_comment')
        data = {
            'comment': 'foobar',
            'image': self.image_with_channels().id.val
        }
        _post_response(self.django_client, request_url, data)
        _csrf_post_response(self.django_client, request_url, data)
Ejemplo n.º 14
0
 def test_create_group(self):
     uuid = self.uuid()
     request_url = reverse('wamanagegroupid', args=["create"])
     data = {
         "name": uuid,
         "description": uuid,
         "permissions": 0
     }
     _post_response(self.django_root_client, request_url, data)
     _csrf_post_response(self.django_root_client, request_url, data,
                         status_code=302)
Ejemplo n.º 15
0
    def test_avatar(self):

        user_id = self.user.id.val

        # Due to EOF both posts must be test separately
        # Bad post
        try:
            temp = tempfile.NamedTemporaryFile(suffix='.png')

            img = Image.new("RGB", (200, 200), "#FFFFFF")
            draw = ImageDraw.Draw(img)

            r, g, b = rint(0, 255), rint(0, 255), rint(0, 255)
            for i in range(200):
                draw.line((i, 0, i, 200), fill=(int(r), int(g), int(b)))
            img.save(temp, "PNG")
            temp.seek(0)

            request_url = reverse('wamanageavatar', args=[user_id, "upload"])
            data = {'filename': 'avatar.png', "photo": temp}
            _post_response(self.django_client, request_url, data)
        finally:
            temp.close()

        # Good post
        try:
            temp = tempfile.NamedTemporaryFile(suffix='.png')

            img = Image.new("RGB", (200, 200), "#FFFFFF")
            draw = ImageDraw.Draw(img)

            r, g, b = rint(0, 255), rint(0, 255), rint(0, 255)
            for i in range(200):
                draw.line((i, 0, i, 200), fill=(int(r), int(g), int(b)))
            img.save(temp, "PNG")
            temp.seek(0)

            request_url = reverse('wamanageavatar', args=[user_id, "upload"])
            data = {'filename': 'avatar.png', "photo": temp}
            _csrf_post_response(self.django_client,
                                request_url,
                                data,
                                status_code=302)
        finally:
            temp.close()

        # Crop avatar
        request_url = reverse('wamanageavatar', args=[user_id, "crop"])
        data = {'x1': 50, 'x2': 150, 'y1': 50, 'y2': 150}
        _post_response(self.django_client, request_url, data)
        _csrf_post_response(self.django_client,
                            request_url,
                            data,
                            status_code=302)
Ejemplo n.º 16
0
 def test_change_password(self):
     user = self.new_user()
     request_url = reverse('wamanagechangepasswordid', args=[user.id.val])
     data = {
         "old_password": self.root.ic.getProperties().getProperty(
             'omero.rootpass'),
         "password": "******",
         "confirmation": "new"
     }
     _post_response(self.django_root_client, request_url, data)
     _csrf_post_response(self.django_root_client, request_url, data)
Ejemplo n.º 17
0
 def test_edit_group(self):
     group = self.new_group(perms="rw----")
     request_url = reverse('wamanagegroupid', args=["save", group.id.val])
     data = {
         "name": group.name.val,
         "description": "description",
         "permissions": 0
     }
     _post_response(self.django_root_client, request_url, data)
     _csrf_post_response(self.django_root_client, request_url, data,
                         status_code=302)
Ejemplo n.º 18
0
    def test_move_data(self):

        group_id = self.new_group(experimenters=[self.user]).id.val

        request_url = reverse('chgrp')
        data = {
            'image': self.image_with_channels().id.val,
            'group_id': group_id
        }

        _post_response(self.django_root_client, request_url, data)
        _csrf_post_response(self.django_root_client, request_url, data)
Ejemplo n.º 19
0
    def test_move_data(self):

        group_id = self.new_group(experimenters=[self.user]).id.val

        request_url = reverse('chgrp')
        data = {
            'image': self.image_with_channels().id.val,
            'group_id': group_id
        }

        _post_response(self.django_root_client, request_url, data)
        _csrf_post_response(self.django_root_client, request_url, data)
Ejemplo n.º 20
0
 def test_change_password(self):
     user = self.new_user()
     request_url = reverse('wamanagechangepasswordid', args=[user.id.val])
     data = {
         "old_password":
         self.root.ic.getProperties().getProperty('omero.rootpass'),
         "password":
         "******",
         "confirmation":
         "new"
     }
     _post_response(self.django_root_client, request_url, data)
     _csrf_post_response(self.django_root_client, request_url, data)
Ejemplo n.º 21
0
    def test_myaccount(self):

        request_url = reverse('wamyaccount', args=["save"])
        data = {
            "omename": self.user.omeName.val,
            "first_name": self.user.omeName.val,
            "last_name": self.user.lastName.val,
            "institution": "foo bar",
            "default_group": self.group.id.val
        }
        _post_response(self.django_client, request_url, data)
        _csrf_post_response(self.django_client, request_url, data,
                            status_code=302)
Ejemplo n.º 22
0
 def test_edit_group(self):
     group = self.new_group(perms="rw----")
     request_url = reverse('wamanagegroupid', args=["save", group.id.val])
     data = {
         "name": group.name.val,
         "description": "description",
         "permissions": 0
     }
     _post_response(self.django_root_client, request_url, data)
     _csrf_post_response(self.django_root_client,
                         request_url,
                         data,
                         status_code=302)
Ejemplo n.º 23
0
    def test_apply_owners_rendering_settings(self):

        img = self.createTestImage(session=self.sf)

        request_url = reverse('reset_owners_rdef_json')
        data = {
            'toids': img.id.val,
            'to_type': 'image'
        }

        _post_response(self.django_client, request_url, data,
                       status_code=403)
        _csrf_post_response(self.django_client, request_url, data)
Ejemplo n.º 24
0
 def test_edit_channel_names(self):
     """
     CSRF protection does not check `GET` requests so we need to be sure
     that this request results in an HTTP 405 (method not allowed) status
     code.
     """
     img = self.image_with_channels()
     query_string = data = {'channel0': 'foobar'}
     request_url = reverse('edit_channel_names', args=[img.id.val])
     _csrf_get_response(self.django_client,
                        request_url,
                        query_string,
                        status_code=405)
     _csrf_post_response(self.django_client, request_url, data)
Ejemplo n.º 25
0
    def test_create_share(self):

        img = self.make_image()
        request_url = reverse("manage_action_containers",
                              args=["add", "share"])
        data = {
            'enable': 'on',
            'image': img.id.val,
            'members': self.user.id.val,
            'message': 'foobar'
        }

        _post_response(self.django_client, request_url, data)
        _csrf_post_response(self.django_client, request_url, data)
Ejemplo n.º 26
0
    def test_create_share(self):

        img = self.make_image()
        request_url = reverse("manage_action_containers",
                              args=["add", "share"])
        data = {
            'enable': 'on',
            'image': img.id.val,
            'members': self.user.id.val,
            'message': 'foobar'
        }

        _post_response(self.django_client, request_url, data)
        _csrf_post_response(self.django_client, request_url, data)
Ejemplo n.º 27
0
    def test_su(self):
        """
        CSRF protection does not check `GET` requests so we need to be sure
        that this request results in an HTTP 405 (method not allowed) status
        code.
        """

        user = self.new_user()

        request_url = reverse('webgateway_su', args=[user.omeName.val])

        _csrf_get_response(self.django_root_client, request_url, {})
        _post_response(self.django_root_client, request_url, {})
        _csrf_post_response(self.django_root_client, request_url, {})
Ejemplo n.º 28
0
 def test_edit_user(self):
     user = self.new_user()
     request_url = reverse('wamanageexperimenterid',
                           args=["save", user.id.val])
     data = {
         "omename": user.omeName.val,
         "first_name": user.firstName.val,
         "last_name": user.lastName.val,
         "default_group": user.copyGroupExperimenterMap()[0].parent.id.val,
         "other_groups": user.copyGroupExperimenterMap()[0].parent.id.val,
     }
     _post_response(self.django_root_client, request_url, data)
     _csrf_post_response(self.django_root_client, request_url, data,
                         status_code=302)
Ejemplo n.º 29
0
    def test_edit_group_by_owner(self):

        self.add_groups(experimenter=self.user, groups=[self.group],
                        owner=True)

        request_url = reverse('wamanagegroupownerid',
                              args=["save", self.group.id.val])
        data = {
            "members": self.user.id.val,
            "owners": self.user.id.val,
            "permissions": 0
        }
        _post_response(self.django_client, request_url, data)
        _csrf_post_response(self.django_client, request_url, data,
                            status_code=302)
Ejemplo n.º 30
0
    def test_edit_channel_names(self):

        """
        CSRF protection does not check `GET` requests so we need to be sure
        that this request results in an HTTP 405 (method not allowed) status
        code.
        """
        img = self.image_with_channels()
        query_string = data = {'channel0': 'foobar'}
        request_url = reverse(
            'edit_channel_names', args=[img.id.val]
        )
        _csrf_get_response(self.django_client, request_url, query_string,
                           status_code=405)
        _csrf_post_response(self.django_client, request_url, data)
Ejemplo n.º 31
0
    def test_myaccount(self):

        request_url = reverse('wamyaccount', args=["save"])
        data = {
            "omename": self.user.omeName.val,
            "first_name": self.user.omeName.val,
            "last_name": self.user.lastName.val,
            "institution": "foo bar",
            "default_group": self.group.id.val
        }
        _post_response(self.django_client, request_url, data)
        _csrf_post_response(self.django_client,
                            request_url,
                            data,
                            status_code=302)
Ejemplo n.º 32
0
    def test_su(self):

        """
        CSRF protection does not check `GET` requests so we need to be sure
        that this request results in an HTTP 405 (method not allowed) status
        code.
        """

        user = self.new_user()

        request_url = reverse('webgateway_su', args=[user.omeName.val])

        _csrf_get_response(self.django_root_client, request_url, {})
        _post_response(self.django_root_client, request_url, {})
        _csrf_post_response(self.django_root_client, request_url, {})
Ejemplo n.º 33
0
    def test_ome_tiff_script(self):

        """
        CSRF protection does not check `GET` requests so we need to be sure
        that this request results in an HTTP 405 (method not allowed) status
        code.
        """

        img = self.createTestImage(session=self.sf)

        request_url = reverse('ome_tiff_script', args=[img.id.val])

        _post_response(self.django_client, request_url, {})
        _csrf_post_response(self.django_client, request_url, {})
        _csrf_get_response(self.django_client, request_url, {},
                           status_code=405)
Ejemplo n.º 34
0
    def test_ome_tiff_script(self):
        """
        CSRF protection does not check `GET` requests so we need to be sure
        that this request results in an HTTP 405 (method not allowed) status
        code.
        """

        img = self.createTestImage(session=self.sf)

        request_url = reverse('ome_tiff_script', args=[img.id.val])

        _post_response(self.django_client, request_url, {})
        _csrf_post_response(self.django_client, request_url, {})
        _csrf_get_response(self.django_client,
                           request_url, {},
                           status_code=405)
Ejemplo n.º 35
0
 def test_edit_user(self):
     user = self.new_user()
     request_url = reverse('wamanageexperimenterid',
                           args=["save", user.id.val])
     data = {
         "omename": user.omeName.val,
         "first_name": user.firstName.val,
         "last_name": user.lastName.val,
         "default_group": user.copyGroupExperimenterMap()[0].parent.id.val,
         "other_groups": user.copyGroupExperimenterMap()[0].parent.id.val,
     }
     _post_response(self.django_root_client, request_url, data)
     _csrf_post_response(self.django_root_client,
                         request_url,
                         data,
                         status_code=302)
Ejemplo n.º 36
0
 def test_create_user(self):
     uuid = self.uuid()
     groupid = self.new_group().id.val
     request_url = reverse('wamanageexperimenterid', args=["create"])
     data = {
         "omename": uuid,
         "first_name": uuid,
         "last_name": uuid,
         "active": "on",
         "default_group": groupid,
         "other_groups": groupid,
         "password": uuid,
         "confirmation": uuid
     }
     _post_response(self.django_root_client, request_url, data)
     _csrf_post_response(self.django_root_client, request_url, data,
                         status_code=302)
Ejemplo n.º 37
0
    def test_add_and_rename_container(self):

        # Add project
        request_url = reverse("manage_action_containers",
                              args=["addnewcontainer"])
        data = {'folder_type': 'project', 'name': 'foobar'}
        _post_response(self.django_client, request_url, data)
        response = _csrf_post_response(self.django_client, request_url, data)
        pid = json.loads(response.content).get("id")

        # Add dataset to the project
        request_url = reverse("manage_action_containers",
                              args=["addnewcontainer", "project", pid])
        data = {'folder_type': 'dataset', 'name': 'foobar'}
        _post_response(self.django_client, request_url, data)
        _csrf_post_response(self.django_client, request_url, data)

        # Rename project
        request_url = reverse("manage_action_containers",
                              args=["savename", "project", pid])
        data = {'name': 'anotherfoobar'}
        _post_response(self.django_client, request_url, data)
        _csrf_post_response(self.django_client, request_url, data)

        # Change project description
        request_url = reverse("manage_action_containers",
                              args=["savedescription", "project", pid])
        data = {'description': 'anotherfoobar'}
        _post_response(self.django_client, request_url, data)
        _csrf_post_response(self.django_client, request_url, data)
Ejemplo n.º 38
0
    def test_paste_move_remove_deletamany_image(self):

        # Add dataset
        request_url = reverse("manage_action_containers",
                              args=["addnewcontainer"])
        data = {
            'folder_type': 'dataset',
            'name': 'foobar'
        }
        _post_response(self.django_client, request_url, data)
        response = _csrf_post_response(self.django_client, request_url, data)
        did = json.loads(response.content).get("id")

        # Copy image
        img = self.image_with_channels()
        request_url = reverse("manage_action_containers",
                              args=["paste", "image", img.id.val])
        data = {
            'destination': "dataset-%i" % did
        }
        _post_response(self.django_client, request_url, data)
        _csrf_post_response(self.django_client, request_url, data)

        # Move image
        request_url = reverse("manage_action_containers",
                              args=["move", "image", img.id.val])
        data = {
            'destination': 'orphaned-0',
            'parent': 'dataset-%i' % did
        }
        _post_response(self.django_client, request_url, data)
        _csrf_post_response(self.django_client, request_url, data)

        # Remove image
        request_url = reverse("manage_action_containers",
                              args=["remove", "image", img.id.val])
        data = {
            'parent': 'dataset-%i' % did
        }
        _post_response(self.django_client, request_url, data)
        _csrf_post_response(self.django_client, request_url, data)

        # Delete image
        request_url = reverse("manage_action_containers", args=["deletemany"])
        data = {
            'child': 'on',
            'dataset': did
        }
        _post_response(self.django_client, request_url, data)
        _csrf_post_response(self.django_client, request_url, data)
Ejemplo n.º 39
0
    def test_edit_group_by_owner(self):

        self.add_groups(experimenter=self.user,
                        groups=[self.group],
                        owner=True)

        request_url = reverse('wamanagegroupownerid',
                              args=["save", self.group.id.val])
        data = {
            "members": self.user.id.val,
            "owners": self.user.id.val,
            "permissions": 0
        }
        _post_response(self.django_client, request_url, data)
        _csrf_post_response(self.django_client,
                            request_url,
                            data,
                            status_code=302)
Ejemplo n.º 40
0
 def test_create_user(self):
     uuid = self.uuid()
     groupid = self.new_group().id.val
     request_url = reverse('wamanageexperimenterid', args=["create"])
     data = {
         "omename": uuid,
         "first_name": uuid,
         "last_name": uuid,
         "active": "on",
         "default_group": groupid,
         "other_groups": groupid,
         "password": uuid,
         "confirmation": uuid
     }
     _post_response(self.django_root_client, request_url, data)
     _csrf_post_response(self.django_root_client,
                         request_url,
                         data,
                         status_code=302)
Ejemplo n.º 41
0
    def test_paste_move_remove_deletamany_image(self):

        # Add dataset
        request_url = reverse("manage_action_containers",
                              args=["addnewcontainer"])
        data = {
            'folder_type': 'dataset',
            'name': 'foobar'
        }
        _post_response(self.django_client, request_url, data)
        response = _csrf_post_response(self.django_client, request_url, data)
        did = json.loads(response.content).get("id")

        img = self.make_image()
        print img

        # Link image to Dataset
        request_url = reverse("api_links")
        data = {
            'dataset': {did: {'image': [img.id.val]}}
        }

        _post_response(self.django_client, request_url, data)
        _csrf_post_response(self.django_client,
                            request_url,
                            json.dumps(data),
                            content_type="application/json")

        # Unlink image from Dataset
        request_url = reverse("api_links")
        data = {
            'dataset': {did: {'image': [img.id.val]}}
        }
        _delete_response(self.django_client, request_url, data)
        response = _csrf_delete_response(self.django_client,
                                         request_url,
                                         json.dumps(data),
                                         content_type="application/json")
        # Response will contain remaining links from image (see test_links.py)
        response = json.loads(response.content)
        assert response == {"success": True}
Ejemplo n.º 42
0
    def test_script(self):

        img = self.createTestImage(session=self.sf)

        script_path = "omero/export_scripts/Batch_Image_Export.py"
        script = self.sf.getScriptService().getScriptID(script_path)

        request_url = reverse('script_run', args=[script])
        data = {
            "Data_Type": "Image",
            "IDs": img.id.val,
            "Choose_T_Section": "Default-T (last-viewed)",
            "Choose_Z_Section": "Default-Z (last-viewed)",
            "Export_Individual_Channels": "on",
            "Export_Merged_Image": "on",
            "Folder_Name": "Batch_Image_Export",
            "Format": "JPEG",
            "Zoom": "100%"
        }
        _post_response(self.django_client, request_url, data)
        _csrf_post_response(self.django_client, request_url, data)
Ejemplo n.º 43
0
    def test_script(self):

        img = self.createTestImage(session=self.sf)

        script_path = "omero/export_scripts/Batch_Image_Export.py"
        script = self.sf.getScriptService().getScriptID(script_path)

        request_url = reverse('script_run', args=[script])
        data = {
            "Data_Type": "Image",
            "IDs": img.id.val,
            "Choose_T_Section": "Default-T (last-viewed)",
            "Choose_Z_Section": "Default-Z (last-viewed)",
            "Export_Individual_Channels": "on",
            "Export_Merged_Image": "on",
            "Folder_Name": "Batch_Image_Export",
            "Format": "JPEG",
            "Zoom": "100%"
        }
        _post_response(self.django_client, request_url, data)
        _csrf_post_response(self.django_client, request_url, data)
Ejemplo n.º 44
0
 def doDryRun(data):
     request_url = reverse('chgrpDryRun')
     rsp = _csrf_post_response(django_client, request_url, data)
     jobId = rsp.content
     # Keep polling activities until dry-run job completed
     activities_url = reverse('activities_json')
     data = {'jobId': jobId}
     rsp = _get_response_json(django_client, activities_url, data)
     while rsp['finished'] is not True:
         time.sleep(0.5)
         rsp = _get_response_json(django_client, activities_url, data)
     return rsp
Ejemplo n.º 45
0
    def test_reset_rendering_settings(self):
        """
        CSRF protection does not check `GET` requests so we need to be sure
        that this request results in an HTTP 405 (method not allowed) status
        code.
        """

        img = self.createTestImage(session=self.sf)

        # Reset through webclient as it is calling directly
        # webgateway.reset_image_rdef_json
        request_url = reverse('reset_rdef_json')
        data = {'toids': img.id.val, 'to_type': 'image'}

        _post_response(self.django_client, request_url, data)
        _csrf_post_response(self.django_client, request_url, data)
        _get_response(self.django_client, request_url, data)
        _csrf_get_response(self.django_client,
                           request_url,
                           data,
                           status_code=405)
Ejemplo n.º 46
0
    def test_add_edit_and_remove_tag(self):

        # Add tag
        img = self.make_image()
        tag = self.new_tag()
        request_url = reverse('annotate_tags')
        data = {
            'image': img.id.val,
            'filter_mode': 'any',
            'filter_owner_mode': 'all',
            'index': 0,
            'newtags-0-description': '',
            'newtags-0-tag': 'foobar',
            'newtags-0-tagset': '',
            'newtags-INITIAL_FORMS': 0,
            'newtags-MAX_NUM_FORMS': 1000,
            'newtags-TOTAL_FORMS': 1,
            'tags': tag.id.val
        }
        _post_response(self.django_client, request_url, data)
        _csrf_post_response(self.django_client, request_url, data)

        # Remove tag
        request_url = reverse("manage_action_containers",
                              args=["remove", "tag", tag.id.val])
        data = {'index': 0, 'parent': "image-%i" % img.id.val}
        _post_response(self.django_client, request_url, data)
        _csrf_post_response(self.django_client, request_url, data)

        # Delete tag
        request_url = reverse("manage_action_containers",
                              args=["delete", "tag", tag.id.val])
        _post_response(self.django_client, request_url, {})
        _csrf_post_response(self.django_client, request_url, {})
Ejemplo n.º 47
0
    def test_copy_past_rendering_settings_from_image(self):
        # Create 2 images with 2 channels each
        iid1 = self.createTestImage(sizeC=2, session=self.sf).id.val
        iid2 = self.createTestImage(sizeC=2, session=self.sf).id.val

        conn = omero.gateway.BlitzGateway(client_obj=self.client)

        # image1 set color model
        image1 = conn.getObject("Image", iid1)
        image1.resetDefaults()
        image1.setColorRenderingModel()
        image1.saveDefaults()
        image1 = conn.getObject("Image", iid1)

        # image2 set greyscale model
        image2 = conn.getObject("Image", iid2)
        image2.setGreyscaleRenderingModel()
        image2.saveDefaults()
        image2 = conn.getObject("Image", iid2)

        assert image1.isGreyscaleRenderingModel() is False
        assert image2.isGreyscaleRenderingModel() is True

        # copy rendering settings from image1 via ID
        request_url = reverse('webgateway.views.copy_image_rdef_json')
        data = {
            "fromid": iid1
        }
        _get_response(self.django_client, request_url, data, status_code=200)

        # paste rendering settings to image2
        data = {
            'toids': iid2
        }

        _csrf_post_response(self.django_client, request_url, data)

        image2 = conn.getObject("Image", iid2)
        assert image2.isGreyscaleRenderingModel() is False
Ejemplo n.º 48
0
    def test_create_tag_and_tagset(self):
        """
        Creates a Tagset then a Tag within the Tagset
        """

        tsValue = 'testTagset'
        request_url = reverse("manage_action_containers",
                              args=["addnewcontainer"])
        data = {
            'folder_type': 'tagset',
            'name': tsValue
        }
        response = _csrf_post_response(self.django_client, request_url, data)
        tagsetId = json.loads(response.content).get("id")

        # check creation
        tagset = self.query.get('TagAnnotationI', tagsetId)
        assert tagset is not None
        assert tagset.ns.val == omero.constants.metadata.NSINSIGHTTAGSET
        assert tagset.textValue.val == tsValue

        # Add tag to the tagset
        request_url = reverse("manage_action_containers",
                              args=["addnewcontainer", "tagset", tagsetId])
        data = {
            'folder_type': 'tag',
            'name': 'tagInTagset'
        }
        _post_response(self.django_client, request_url, data)
        response2 = _csrf_post_response(self.django_client, request_url, data)
        tagId = json.loads(response2.content).get("id")

        # Check that tag is listed under tagset...
        request_url = reverse("api_tags_and_tagged")
        data = {'id': tagsetId}
        data = _get_response_json(self.django_client, request_url, data)
        assert len(data['tags']) == 1
        assert data['tags'][0]['id'] == tagId
Ejemplo n.º 49
0
    def test_copy_past_rendering_settings(self):
        """
        CSRF protection does not check `GET` requests so we need to be sure
        that this request results in an HTTP 405 (method not allowed) status
        code.
        """

        img = self.createTestImage(session=self.sf)

        # put image id into session
        session = self.django_client.session
        session['fromid'] = img.id.val
        session.save()

        request_url = reverse('webgateway.views.copy_image_rdef_json')
        data = {'toids': img.id.val}

        _post_response(self.django_client, request_url, data)
        _csrf_post_response(self.django_client, request_url, data)
        _csrf_get_response(self.django_client,
                           request_url,
                           data,
                           status_code=405)
Ejemplo n.º 50
0
    def test_reset_rendering_settings(self):

        """
        CSRF protection does not check `GET` requests so we need to be sure
        that this request results in an HTTP 405 (method not allowed) status
        code.
        """

        img = self.createTestImage(session=self.sf)

        # Reset through webclient as it is calling directly
        # webgateway.reset_image_rdef_json
        request_url = reverse('reset_rdef_json')
        data = {
            'toids': img.id.val,
            'to_type': 'image'
        }

        _post_response(self.django_client, request_url, data)
        _csrf_post_response(self.django_client, request_url, data)
        _get_response(self.django_client, request_url, data)
        _csrf_get_response(self.django_client, request_url, data,
                           status_code=405)
Ejemplo n.º 51
0
    def test_edit_tag_and_tagset(self, dtype):
        """
        Creates Tag/Tagset and tests editing of name and description
        """

        request_url = reverse("manage_action_containers",
                              args=["addnewcontainer"])
        data = {
            'folder_type': dtype,
            'name': 'beforeEdit'
        }
        response = _csrf_post_response(self.django_client, request_url, data)
        tagId = json.loads(response.content).get("id")

        # Edit name
        request_url = reverse("manage_action_containers",
                              args=["savename", dtype, tagId])
        data = {
            'name': 'afterEdit'
        }
        response = _csrf_post_response(self.django_client, request_url, data)

        # Edit description
        request_url = reverse("manage_action_containers",
                              args=["savedescription", dtype, tagId])
        data = {
            'description': 'New description after editing'
        }
        response = _csrf_post_response(self.django_client, request_url, data)

        # check edited name and description
        tagset = self.query.get('TagAnnotationI', tagId)
        assert tagset is not None
        if dtype == "tagset":
            assert tagset.ns.val == omero.constants.metadata.NSINSIGHTTAGSET
        assert tagset.textValue.val == 'afterEdit'
        assert tagset.description.val == 'New description after editing'
Ejemplo n.º 52
0
    def test_copy_past_rendering_settings(self):

        """
        CSRF protection does not check `GET` requests so we need to be sure
        that this request results in an HTTP 405 (method not allowed) status
        code.
        """

        img = self.createTestImage(session=self.sf)

        # put image id into session
        session = self.django_client.session
        session['fromid'] = img.id.val
        session.save()

        request_url = reverse('webgateway.views.copy_image_rdef_json')
        data = {
            'toids': img.id.val
        }

        _post_response(self.django_client, request_url, data)
        _csrf_post_response(self.django_client, request_url, data)
        _csrf_get_response(self.django_client, request_url, data,
                           status_code=405)
Ejemplo n.º 53
0
    def test_add_and_rename_container(self):

        # Add project
        request_url = reverse("manage_action_containers",
                              args=["addnewcontainer"])
        data = {
            'folder_type': 'project',
            'name': 'foobar'
        }
        _post_response(self.django_client, request_url, data)
        response = _csrf_post_response(self.django_client, request_url, data)
        pid = json.loads(response.content).get("id")

        # Add dataset to the project
        request_url = reverse("manage_action_containers",
                              args=["addnewcontainer", "project", pid])
        data = {
            'folder_type': 'dataset',
            'name': 'foobar'
        }
        _post_response(self.django_client, request_url, data)
        _csrf_post_response(self.django_client, request_url, data)

        # Rename project
        request_url = reverse("manage_action_containers",
                              args=["savename", "project", pid])
        data = {
            'name': 'anotherfoobar'
        }
        _post_response(self.django_client, request_url, data)
        _csrf_post_response(self.django_client, request_url, data)

        # Change project description
        request_url = reverse("manage_action_containers",
                              args=["savedescription", "project", pid])
        data = {
            'description': 'anotherfoobar'
        }
        _post_response(self.django_client, request_url, data)
        _csrf_post_response(self.django_client, request_url, data)
Ejemplo n.º 54
0
    def test_add_edit_and_remove_tag(self):

        # Add tag
        img = self.image_with_channels()
        tag = self.new_tag()
        request_url = reverse('annotate_tags')
        data = {
            'image': img.id.val,
            'filter_mode': 'any',
            'filter_owner_mode': 'all',
            'index': 0,
            'newtags-0-description': '',
            'newtags-0-tag': 'foobar',
            'newtags-0-tagset': '',
            'newtags-INITIAL_FORMS': 0,
            'newtags-MAX_NUM_FORMS': 1000,
            'newtags-TOTAL_FORMS': 1,
            'tags': tag.id.val
        }
        _post_response(self.django_client, request_url, data)
        _csrf_post_response(self.django_client, request_url, data)

        # Edit tag, see save container name and description
        # http://localhost/webclient/action/savename/tag/ID/
        # http://localhost/webclient/action/savedescription/tag/ID/

        # Remove tag
        request_url = reverse("manage_action_containers",
                              args=["remove", "tag", tag.id.val])
        data = {
            'index': 0,
            'parent': "image-%i" % img.id.val
        }
        _post_response(self.django_client, request_url, data)
        _csrf_post_response(self.django_client, request_url, data)

        # Delete tag
        request_url = reverse("manage_action_containers",
                              args=["delete", "tag", tag.id.val])
        _post_response(self.django_client, request_url, {})
        _csrf_post_response(self.django_client, request_url, {})
Ejemplo n.º 55
0
    def test_add_edit_and_remove_tag(self):

        # Add tag
        img = self.image_with_channels()
        tag = self.new_tag()
        request_url = reverse('annotate_tags')
        data = {
            'image': img.id.val,
            'filter_mode': 'any',
            'filter_owner_mode': 'all',
            'index': 0,
            'newtags-0-description': '',
            'newtags-0-tag': 'foobar',
            'newtags-0-tagset': '',
            'newtags-INITIAL_FORMS': 0,
            'newtags-MAX_NUM_FORMS': 1000,
            'newtags-TOTAL_FORMS': 1,
            'tags': tag.id.val
        }
        _post_response(self.django_client, request_url, data)
        _csrf_post_response(self.django_client, request_url, data)

        # Edit tag, see save container name and description
        # http://localhost/webclient/action/savename/tag/ID/
        # http://localhost/webclient/action/savedescription/tag/ID/

        # Remove tag
        request_url = reverse("manage_action_containers",
                              args=["remove", "tag", tag.id.val])
        data = {'index': 0, 'parent': "image-%i" % img.id.val}
        _post_response(self.django_client, request_url, data)
        _csrf_post_response(self.django_client, request_url, data)

        # Delete tag
        request_url = reverse("manage_action_containers",
                              args=["delete", "tag", tag.id.val])
        _post_response(self.django_client, request_url, {})
        _csrf_post_response(self.django_client, request_url, {})
Ejemplo n.º 56
0
    def test_add_edit_and_remove_tag(self):

        # Add tag
        img = self.make_image()
        tag = self.new_tag()
        request_url = reverse('annotate_tags')
        data = {
            'image': img.id.val,
            'filter_mode': 'any',
            'filter_owner_mode': 'all',
            'index': 0,
            'newtags-0-description': '',
            'newtags-0-tag': 'foobar',
            'newtags-0-tagset': '',
            'newtags-INITIAL_FORMS': 0,
            'newtags-MAX_NUM_FORMS': 1000,
            'newtags-TOTAL_FORMS': 1,
            'tags': tag.id.val
        }
        _post_response(self.django_client, request_url, data)
        _csrf_post_response(self.django_client, request_url, data)

        # Remove tag
        request_url = reverse("manage_action_containers",
                              args=["remove", "tag", tag.id.val])
        data = {
            'index': 0,
            'parent': "image-%i" % img.id.val
        }
        _post_response(self.django_client, request_url, data)
        _csrf_post_response(self.django_client, request_url, data)

        # Delete tag
        request_url = reverse("manage_action_containers",
                              args=["delete", "tag", tag.id.val])
        _post_response(self.django_client, request_url, {})
        _csrf_post_response(self.django_client, request_url, {})
Ejemplo n.º 57
0
def _csrf_post_response_json(django_client, request_url,
                             query_string, status_code=200):
    rsp = _csrf_post_response(django_client, request_url,
                              query_string, status_code)
    assert rsp.get('Content-Type') == 'application/json'
    return json.loads(rsp.content)
    def test_copy_past_rendering_settings_from_url(self):
        # Create 2 images with 2 channels each
        iid1 = self.createTestImage(sizeC=2, session=self.sf).id.val
        iid2 = self.createTestImage(sizeC=2, session=self.sf).id.val

        conn = omero.gateway.BlitzGateway(client_obj=self.client)

        # image1 set color model
        image1 = conn.getObject("Image", iid1)
        image1.resetDefaults()
        image1.setColorRenderingModel()
        image1.saveDefaults()
        image1 = conn.getObject("Image", iid1)

        # image2 set greyscale model
        image2 = conn.getObject("Image", iid2)
        image2.setGreyscaleRenderingModel()
        image2.saveDefaults()
        image2 = conn.getObject("Image", iid2)

        assert image1.isGreyscaleRenderingModel() is False
        assert image2.isGreyscaleRenderingModel() is True

        def buildParamC(im):
            chs = []
            for i, ch in enumerate(im.getChannels()):
                act = "" if ch.isActive() else "-"
                start = ch.getWindowStart()
                end = ch.getWindowEnd()
                color = ch.getColor().getHtml()
                chs.append("%s%s|%s:%s$%s" % (act, i+1, start, end, color))
            return ",".join(chs)

        # build channel parameter e.g. 1|0:15$FF0000...
        old_c1 = buildParamC(image1)

        # copy rendering settings from image1 via URL
        request_url = reverse('webgateway.views.copy_image_rdef_json')
        data = {
            "imageId": iid1,
            "c": old_c1,
            "ia": 0,
            "m": "c",
            "p": "normal",
            "q": 0.9,
            "t": 1,
            "x": 0,
            "y": 0,
            "z": 1,
            "zm": 100
        }
        _get_response(self.django_client, request_url, data, status_code=200)

        # paste rendering settings to image2
        data = {
            'toids': iid2
        }
        _csrf_post_response(self.django_client, request_url, data)

        # reload image1
        image1 = conn.getObject("Image", iid1)

        # reload image2
        image2 = conn.getObject("Image", iid2)
        new_c2 = buildParamC(image2)

        # compare Channels
        # old image1 1|0:15$FF0000,2|0:15$00FF00
        # image2 1|0:15$00FF00,2|0:15$00FF00
        # new image1 1|0:15$FF0000,2|0:15$00FF00
        # image2 1|0:15$FF0000,2|0:15$00FF00
        assert old_c1 == new_c2
        # check if image2 rendering model changed from greyscale to color
        assert image2.isGreyscaleRenderingModel() is False
Ejemplo n.º 59
0
    def test_avatar(self):

        user_id = self.user.id.val

        # Due to EOF both posts must be test separately
        # Bad post
        try:
            temp = tempfile.NamedTemporaryFile(suffix='.png')

            img = Image.new("RGB", (200, 200), "#FFFFFF")
            draw = ImageDraw.Draw(img)

            r, g, b = rint(0, 255), rint(0, 255), rint(0, 255)
            for i in range(200):
                draw.line((i, 0, i, 200), fill=(int(r), int(g), int(b)))
            img.save(temp, "PNG")
            temp.seek(0)

            request_url = reverse('wamanageavatar', args=[user_id, "upload"])
            data = {
                'filename': 'avatar.png',
                "photo": temp
            }
            _post_response(self.django_client, request_url, data)
        finally:
            temp.close()

        # Good post
        try:
            temp = tempfile.NamedTemporaryFile(suffix='.png')

            img = Image.new("RGB", (200, 200), "#FFFFFF")
            draw = ImageDraw.Draw(img)

            r, g, b = rint(0, 255), rint(0, 255), rint(0, 255)
            for i in range(200):
                draw.line((i, 0, i, 200), fill=(int(r), int(g), int(b)))
            img.save(temp, "PNG")
            temp.seek(0)

            request_url = reverse('wamanageavatar', args=[user_id, "upload"])
            data = {
                'filename': 'avatar.png',
                "photo": temp
            }
            _csrf_post_response(self.django_client, request_url, data,
                                status_code=302)
        finally:
            temp.close()

        # Crop avatar
        request_url = reverse('wamanageavatar', args=[user_id, "crop"])
        data = {
            'x1': 50,
            'x2': 150,
            'y1': 50,
            'y2': 150
        }
        _post_response(self.django_client, request_url, data)
        _csrf_post_response(self.django_client, request_url, data,
                            status_code=302)