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
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' )
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