Пример #1
0
    def test_shares_confirmed_in_same_role(self):
        annotator1 = make_user()
        assign_user_to_role(annotator1, self.project.item, settings.ROLE_ANNOTATOR)
        annotator2 = make_user()
        assign_user_to_role(annotator2, self.project.item, settings.ROLE_ANNOTATOR)

        make_example_state(self.example, annotator1)
        response = self.assert_fetch(annotator1, status.HTTP_200_OK)
        self.assertTrue(response.data["results"][0]["is_confirmed"])
        response = self.assert_fetch(annotator2, status.HTTP_200_OK)
        self.assertTrue(response.data["results"][0]["is_confirmed"])
Пример #2
0
 def setUp(self):
     self.project = prepare_project()
     self.non_member = make_user()
     doc = make_doc(self.project.item)
     comment = make_comment(doc, self.project.admin)
     self.data = {"text": "example"}
     self.url = reverse(viewname="comment_detail", args=[self.project.item.id, comment.id])
Пример #3
0
def make_project(task: str,
                 users: List[str],
                 roles: List[str],
                 collaborative_annotation=False,
                 **kwargs):
    create_default_roles()

    # create users.
    users = [make_user(name) for name in users]

    # create a project.
    project_model = {
        DOCUMENT_CLASSIFICATION: "TextClassificationProject",
        SEQUENCE_LABELING: "SequenceLabelingProject",
        SEQ2SEQ: "Seq2seqProject",
        SPEECH2TEXT: "Speech2TextProject",
        IMAGE_CLASSIFICATION: "ImageClassificationProject",
        INTENT_DETECTION_AND_SLOT_FILLING:
        "IntentDetectionAndSlotFillingProject",
    }.get(task, "Project")
    project = mommy.make(
        _model=project_model,
        project_type=task,
        collaborative_annotation=collaborative_annotation,
        created_by=users[0],
        **kwargs,
    )

    # assign roles to the users.
    for user, role in zip(users, roles):
        assign_user_to_role(user, project, role)

    return ProjectData(item=project, members=users)
Пример #4
0
 def setUp(self):
     self.project = prepare_project(task=self.task)
     self.non_member = make_user()
     self.doc = make_doc(self.project.item)
     self.data = self.create_data()
     self.url = reverse(viewname=self.view_name,
                        args=[self.project.item.id, self.doc.id])
Пример #5
0
 def setUpTestData(cls):
     cls.non_member = make_user()
     cls.project = prepare_project()
     cls.example = make_doc(cls.project.item)
     for member in cls.project.members:
         make_example_state(cls.example, member)
     cls.url = reverse(viewname="example_state_list",
                       args=[cls.project.item.id, cls.example.id])
Пример #6
0
 def setUpTestData(cls):
     cls.project = prepare_project(task=cls.task)
     cls.non_member = make_user()
     doc = make_doc(cls.project.item)
     for member in cls.project.members:
         cls.make_annotation(doc, member)
     cls.url = reverse(viewname=cls.view_name,
                       args=[cls.project.item.id, doc.id])
Пример #7
0
 def setUp(self):
     self.project = prepare_project()
     self.non_member = make_user()
     admin_role = Role.objects.get(name=settings.ROLE_PROJECT_ADMIN)
     member = Member.objects.get(user=self.project.approver)
     self.url = reverse(viewname="member_detail",
                        args=[self.project.item.id, member.id])
     self.data = {"role": admin_role.id}
Пример #8
0
 def setUp(self):
     self.project = prepare_project(task=self.task)
     self.non_member = make_user()
     doc = make_doc(self.project.item)
     label = make_label(self.project.item)
     annotation = self.create_annotation_data(doc=doc)
     self.data = {"label": label.id}
     self.url = reverse(viewname=self.view_name,
                        args=[self.project.item.id, doc.id, annotation.id])
Пример #9
0
    def setUpTestData(cls):
        cls.non_member = make_user()
        cls.project_a = prepare_project(DOCUMENT_CLASSIFICATION)
        cls.label = make_label(cls.project_a.item)
        cls.url = reverse(viewname="category_types", args=[cls.project_a.item.id])

        # Ensure that the API does not return the labels of the other project.
        cls.project_b = make_project(task="Any", users=["admin"], roles=[settings.ROLE_PROJECT_ADMIN])
        make_label(cls.project_b.item)
Пример #10
0
 def setUpTestData(cls):
     cls.project = prepare_project("SequenceLabeling")
     cls.non_member = make_user()
     cls.url = reverse(viewname="project_detail",
                       args=[cls.project.item.id])
     cls.data = {
         "description": "lorem",
         "resourcetype": "SequenceLabelingProject"
     }
Пример #11
0
 def setUpTestData(cls):
     cls.project = prepare_project()
     cls.non_member = make_user()
     doc1 = make_doc(cls.project.item)
     doc2 = make_doc(cls.project.item)
     make_comment(doc1, cls.project.admin)
     make_comment(doc2, cls.project.admin)
     cls.data = {"text": "example"}
     cls.url = reverse(viewname="comment_list", args=[cls.project.item.id])
     cls.url += f"?example={doc1.id}"
Пример #12
0
 def setUp(self):
     self.project = prepare_project()
     self.non_member = make_user()
     admin_role = Role.objects.get(name=settings.ROLE_PROJECT_ADMIN)
     self.data = {
         "user": self.non_member.id,
         "role": admin_role.id,
         "project": self.project.item.id
     }
     self.url = reverse(viewname="member_list", args=[self.project.item.id])
Пример #13
0
 def setUpTestData(cls):
     create_default_roles()
     cls.user = make_user()
     cls.url = reverse(viewname="project_list")
     cls.data = {
         "name": "example",
         "project_type": "DocumentClassification",
         "description": "example",
         "guideline": "example",
         "resourcetype": "TextClassificationProject",
     }
Пример #14
0
 def setUpTestData(cls):
     create_default_roles()
     cls.user = make_user()
     cls.url = reverse(viewname="project_list")
     cls.data = {
         "name": "example",
         "project_type": "SequenceLabeling",
         "description": "example",
         "guideline": "example",
         "allow_overlapping": True,
         "grapheme_mode": True,
         "resourcetype": "SequenceLabelingProject",
     }
Пример #15
0
 def setUp(self):
     self.project = prepare_project(task=DOCUMENT_CLASSIFICATION)
     self.non_member = make_user()
     doc = make_doc(self.project.item)
     self.data = {"text": "example"}
     self.url = reverse(viewname="example_detail", args=[self.project.item.id, doc.id])
Пример #16
0
 def setUpTestData(cls):
     cls.project = prepare_project()
     cls.non_member = make_user()
     cls.url = reverse(viewname="project_list")
Пример #17
0
 def setUpTestData(cls):
     cls.project = prepare_project()
     cls.non_member = make_user()
Пример #18
0
 def setUpTestData(cls):
     cls.project = prepare_project()
     cls.non_member = make_user()
     cls.url = reverse(viewname="tag_list", args=[cls.project.item.id])
     cls.data = {"text": "example"}
Пример #19
0
 def setUpTestData(cls):
     cls.project = prepare_project()
     cls.non_member = make_user()
     make_tag(project=cls.project.item)
     cls.url = reverse(viewname="tag_list", args=[cls.project.item.id])
Пример #20
0
 def setUpTestData(cls):
     create_default_roles()
     cls.user = make_user()
     cls.url = reverse(viewname="roles")
Пример #21
0
 def setUp(self):
     self.project = prepare_project()
     self.non_member = make_user()
     self.doc = make_doc(self.project.item)
     make_comment(self.doc, self.project.admin)
     self.url = reverse(viewname="comment_list", args=[self.project.item.id])
Пример #22
0
 def setUpTestData(cls):
     cls.non_member = make_user()
     cls.project = prepare_project(DOCUMENT_CLASSIFICATION)
     cls.label = make_label(cls.project.item)
     cls.url = reverse(viewname="category_type", args=[cls.project.item.id, cls.label.id])
     cls.data = {"text": "example"}
Пример #23
0
 def setUpTestData(cls):
     cls.non_member = make_user()
     cls.project = prepare_project(DOCUMENT_CLASSIFICATION)
     cls.url = reverse(viewname="category_type_upload", args=[cls.project.item.id])