Ejemplo n.º 1
0
def test_project_annotation_result(test_client, init_db):
    # Create project
    response = create_proj_resp(test_client,
                                ProjectType.ANNOTATION.value,
                                name='Test_Create_Result_Annotation')
    assert response.status_code == http.HTTPStatus.CREATED
    # Get project
    response = test_client.get('/project/get/annotation/%s' %
                               'Test_Create_Result_Annotation')
    assert response.status_code == http.HTTPStatus.OK
    assert len(response.get_json()) > 0 is not None
    project_id = list(response.get_json().keys())[0]
    # Get document
    response = test_client.get('/project/%s/%s/%s/single_doc' %
                               (ProjectType.ANNOTATION.value,
                                ProjectCategory.HIGHLIGHT.value, project_id))
    doc_status_id = response.get_json()['doc_status_id']
    # Post result
    annotation_result_json = {
        'project_id': project_id,
        'status_id': doc_status_id,
        'result_json': {
            'highlights': {},
            'components': [],
            'words': [],
        },
        'category': 'highlight',
        'validity': True,
        'email': '*****@*****.**',
        'mturk_code': 'test123',
    }
    response = test_client.post('project/save_result/annotation',
                                data=json.dumps(annotation_result_json),
                                content_type='application/json')
    assert response.status_code == http.HTTPStatus.CREATED
Ejemplo n.º 2
0
def create_proj_resp(test_client, project_type, name, project_category=''):
    if project_type.lower() == ProjectType.ANNOTATION.value.lower():
        return test_client.post('/project/%s' % ProjectType.ANNOTATION.value,
                                data=json.dumps(dict(
                                    name=name,
                                    dataset_name='BBC_Sample',
                                    category=ProjectCategory.HIGHLIGHT.value,
                                    total_exp_results=3
                                    )
                                ),
                                content_type='application/json'
                                )
    elif project_type.lower() == ProjectType.EVALUATION.value.lower():
        if project_category.lower() == ProjectCategory.INFORMATIVENESS_DOC.value.lower():
            return test_client.post('/project/%s' % ProjectType.EVALUATION.value,
                                    data=json.dumps(dict(
                                        name=name,
                                        dataset_name='BBC_Sample',
                                        category=ProjectCategory.INFORMATIVENESS_DOC.value,
                                        total_exp_results=3,
                                        summ_group_name='BBC_Sample_ref_gold'
                                    )),
                                    content_type='application/json'
                                    )
        elif project_category.lower() == ProjectCategory.INFORMATIVENESS_REF.value.lower():
            return test_client.post('/project/%s' % ProjectType.EVALUATION.value,
                                    data=json.dumps(dict(
                                        name=name,
                                        dataset_name='BBC_Sample',
                                        category=ProjectCategory.INFORMATIVENESS_REF.value,
                                        total_exp_results=3,
                                        summ_group_name='BBC_Sample_ref_gold'
                                    )),
                                    content_type='application/json'
                                    )
        elif project_category.lower() == ProjectCategory.FLUENCY.value.lower():
            return test_client.post('/project/%s' % ProjectType.EVALUATION.value,
                                    data=json.dumps(dict(
                                        name=name,
                                        dataset_name='BBC_Sample',
                                        category=ProjectCategory.FLUENCY.value,
                                        total_exp_results=3,
                                        summ_group_name='BBC_Sample_ref_gold'
                                    )),
                                    content_type='application/json'
                                    )
Ejemplo n.º 3
0
def test_project_eval_inf_doc_result(test_client, init_db):
    # Create project
    response = create_proj_resp(
        test_client,
        ProjectType.EVALUATION.value,
        project_category=ProjectCategory.INFORMATIVENESS_DOC.value,
        name='Test_Create_Result_Evaluation_InfDoc'
    )
    assert response.status_code == http.HTTPStatus.CREATED
    # Get project
    response = test_client.get(
        '/project/get/evaluation/%s' % 'Test_Create_Result_Evaluation_InfDoc')
    assert response.status_code == http.HTTPStatus.OK
    assert len(response.get_json()) > 0 is not None
    project_id = list(response.get_json().keys())[0]
    # Get document
    response = test_client.get(
        '/project/%s/%s/%s/single_doc' %
        (ProjectType.EVALUATION.value, ProjectCategory.INFORMATIVENESS_DOC.value, project_id))
    assert response.status_code == http.HTTPStatus.OK
    summ_status_id = response.get_json()['summ_status_id']
    # Post result
    evaluation_result_json = {
        'project_id': project_id,
        'status_id': summ_status_id,
        'precision': 1.0,
        'recall': 1.0,
        'category': ProjectCategory.INFORMATIVENESS_DOC.value,
        'validity': True,
        'email': '*****@*****.**',
        'mturk_code': 'test123',
    }
    response = test_client.post('project/save_result/evaluation',
                                data=json.dumps(evaluation_result_json),
                                content_type='application/json')
    assert response.status_code == http.HTTPStatus.CREATED