Coverage report: 49%

Files Functions Classes

coverage.py v7.9.1, created at 2025-06-23 02:22 +0000

File function statements missing excluded coverage
application/__init__.py (no function) 38 10 0 74%
application/config.py (no function) 25 4 0 84%
application/image_reference/__init__.py (no function) 3 0 0 100%
application/image_reference/routes.py image_reference_page 5 5 0 0%
application/image_reference/routes.py add_image_reference 4 4 0 0%
application/image_reference/routes.py (no function) 7 0 0 100%
application/image_review/__init__.py (no function) 8 0 0 100%
application/image_review/external_review/__init__.py (no function) 3 0 0 100%
application/image_review/external_review/comment_processor.py CommentProcessor.__init__ 8 8 0 0%
application/image_review/external_review/comment_processor.py CommentProcessor.load_comments 143 143 0 0%
application/image_review/external_review/comment_processor.py (no function) 13 0 0 100%
application/image_review/external_review/routes.py get_external_review 53 53 0 0%
application/image_review/external_review/routes.py add_external_review 10 10 0 0%
application/image_review/external_review/routes.py add_external_review.add_vars_or_tator_comment 11 11 0 0%
application/image_review/external_review/routes.py delete_external_review 12 12 0 0%
application/image_review/external_review/routes.py reviewers 1 1 0 0%
application/image_review/external_review/routes.py update_reviewer_info 19 19 0 0%
application/image_review/external_review/routes.py delete_reviewer 7 7 0 0%
application/image_review/external_review/routes.py (no function) 20 0 0 100%
application/image_review/tator/__init__.py (no function) 3 0 0 100%
application/image_review/tator/routes.py tator_image_review 33 33 0 0%
application/image_review/tator/routes.py (no function) 7 0 0 100%
application/image_review/tator/tator_localization_processor.py TatorLocalizationProcessor.__init__ 12 12 0 0%
application/image_review/tator/tator_localization_processor.py TatorLocalizationProcessor.load_phylogeny 5 5 0 0%
application/image_review/tator/tator_localization_processor.py TatorLocalizationProcessor.save_phylogeny 7 7 0 0%
application/image_review/tator/tator_localization_processor.py TatorLocalizationProcessor.fetch_worms_phylogeny 20 20 0 0%
application/image_review/tator/tator_localization_processor.py TatorLocalizationProcessor.fetch_localizations 12 12 0 0%
application/image_review/tator/tator_localization_processor.py TatorLocalizationProcessor.process_records 80 80 0 0%
application/image_review/tator/tator_localization_processor.py TatorLocalizationProcessor.process_records.collect_localizations 1 1 0 0%
application/image_review/tator/tator_localization_processor.py TatorLocalizationProcessor.process_records.first_if_all_same 1 1 0 0%
application/image_review/tator/tator_localization_processor.py TatorLocalizationProcessor.process_records.is_populated 3 3 0 0%
application/image_review/tator/tator_localization_processor.py (no function) 19 0 0 100%
application/image_review/vars/__init__.py (no function) 3 0 0 100%
application/image_review/vars/routes.py view_images 16 16 0 0%
application/image_review/vars/routes.py (no function) 6 0 0 100%
application/image_review/vars/vars_annotation_processor.py VarsAnnotationProcessor.__init__ 10 0 0 100%
application/image_review/vars/vars_annotation_processor.py VarsAnnotationProcessor.process_sequences 12 12 0 0%
application/image_review/vars/vars_annotation_processor.py VarsAnnotationProcessor.load_phylogeny 5 1 0 80%
application/image_review/vars/vars_annotation_processor.py VarsAnnotationProcessor.save_phylogeny 7 7 0 0%
application/image_review/vars/vars_annotation_processor.py VarsAnnotationProcessor.fetch_media 8 0 0 100%
application/image_review/vars/vars_annotation_processor.py VarsAnnotationProcessor.fetch_vars_phylogeny 17 1 0 94%
application/image_review/vars/vars_annotation_processor.py VarsAnnotationProcessor.get_image_url 8 0 0 100%
application/image_review/vars/vars_annotation_processor.py VarsAnnotationProcessor.get_video 10 1 0 90%
application/image_review/vars/vars_annotation_processor.py VarsAnnotationProcessor.process_working_records 26 0 0 100%
application/image_review/vars/vars_annotation_processor.py VarsAnnotationProcessor.sort_records 5 0 0 100%
application/image_review/vars/vars_annotation_processor.py (no function) 18 0 0 100%
application/main.py favicon 1 1 0 0%
application/main.py index 28 28 0 0%
application/main.py video 2 2 0 0%
application/main.py page_not_found 1 1 0 0%
application/main.py server_error 6 6 0 0%
application/main.py (no function) 15 0 0 100%
application/qaqc/__init__.py (no function) 6 0 0 100%
application/qaqc/tator/__init__.py (no function) 3 0 0 100%
application/qaqc/tator/routes.py tator_qaqc_checklist 44 44 0 0%
application/qaqc/tator/routes.py patch_tator_qaqc_checklist 7 7 0 0%
application/qaqc/tator/routes.py tator_qaqc 107 107 0 0%
application/qaqc/tator/routes.py attracted_list 2 2 0 0%
application/qaqc/tator/routes.py add_attracted 5 5 0 0%
application/qaqc/tator/routes.py update_attracted 4 4 0 0%
application/qaqc/tator/routes.py delete_attracted 4 4 0 0%
application/qaqc/tator/routes.py (no function) 21 0 0 100%
application/qaqc/tator/tator_qaqc_processor.py TatorQaqcProcessor.__init__ 1 1 0 0%
application/qaqc/tator/tator_qaqc_processor.py TatorQaqcProcessor.fetch_start_times 24 24 0 0%
application/qaqc/tator/tator_qaqc_processor.py TatorQaqcProcessor.check_names_accepted 36 36 0 0%
application/qaqc/tator/tator_qaqc_processor.py TatorQaqcProcessor.check_missing_qualifier 7 7 0 0%
application/qaqc/tator/tator_qaqc_processor.py TatorQaqcProcessor.check_stet_reason 7 7 0 0%
application/qaqc/tator/tator_qaqc_processor.py TatorQaqcProcessor.check_attracted_not_attracted 14 14 0 0%
application/qaqc/tator/tator_qaqc_processor.py TatorQaqcProcessor.check_same_name_qualifier 16 16 0 0%
application/qaqc/tator/tator_qaqc_processor.py TatorQaqcProcessor.check_non_target_not_attracted 9 9 0 0%
application/qaqc/tator/tator_qaqc_processor.py TatorQaqcProcessor.check_exists_in_image_references 17 17 0 0%
application/qaqc/tator/tator_qaqc_processor.py TatorQaqcProcessor.get_all_tentative_ids 26 26 0 0%
application/qaqc/tator/tator_qaqc_processor.py TatorQaqcProcessor.get_all_notes_and_remarks 19 19 0 0%
application/qaqc/tator/tator_qaqc_processor.py TatorQaqcProcessor.get_re_examined 6 6 0 0%
application/qaqc/tator/tator_qaqc_processor.py TatorQaqcProcessor.get_unique_taxa 25 25 0 0%
application/qaqc/tator/tator_qaqc_processor.py TatorQaqcProcessor.get_max_n 22 22 0 0%
application/qaqc/tator/tator_qaqc_processor.py TatorQaqcProcessor.get_tofa 38 38 0 0%
application/qaqc/tator/tator_qaqc_processor.py TatorQaqcProcessor.get_summary 3 3 0 0%
application/qaqc/tator/tator_qaqc_processor.py TatorQaqcProcessor.download_image_guide 66 66 0 0%
application/qaqc/tator/tator_qaqc_processor.py (no function) 32 0 0 100%
application/qaqc/vars/__init__.py (no function) 3 0 0 100%
application/qaqc/vars/routes.py vars_qaqc_checklist 15 15 0 0%
application/qaqc/vars/routes.py get_sequence_counts 52 52 0 0%
application/qaqc/vars/routes.py patch_vars_qaqc_checklist 7 7 0 0%
application/qaqc/vars/routes.py vars_qaqc 59 59 0 0%
application/qaqc/vars/routes.py qaqc_quick 7 7 0 0%
application/qaqc/vars/routes.py (no function) 15 0 0 100%
application/qaqc/vars/vars_qaqc_processor.py VarsQaqcProcessor.__init__ 3 0 0 100%
application/qaqc/vars/vars_qaqc_processor.py VarsQaqcProcessor.fetch_annotations 9 0 0 100%
application/qaqc/vars/vars_qaqc_processor.py VarsQaqcProcessor.find_duplicate_associations 16 1 0 94%
application/qaqc/vars/vars_qaqc_processor.py VarsQaqcProcessor.find_missing_s1 8 0 0 100%
application/qaqc/vars/vars_qaqc_processor.py VarsQaqcProcessor.find_identical_s1_s2 14 1 0 93%
application/qaqc/vars/vars_qaqc_processor.py VarsQaqcProcessor.find_duplicate_s2 15 1 0 93%
application/qaqc/vars/vars_qaqc_processor.py VarsQaqcProcessor.find_missing_upon_substrate 21 1 0 95%
application/qaqc/vars/vars_qaqc_processor.py VarsQaqcProcessor.find_mismatched_substrates 35 4 0 89%
application/qaqc/vars/vars_qaqc_processor.py VarsQaqcProcessor.find_missing_upon 7 0 0 100%
application/qaqc/vars/vars_qaqc_processor.py VarsQaqcProcessor.get_num_records_missing_ancillary_data 6 0 0 100%
application/qaqc/vars/vars_qaqc_processor.py VarsQaqcProcessor.find_missing_ancillary_data 7 1 0 86%
application/qaqc/vars/vars_qaqc_processor.py VarsQaqcProcessor.find_id_refs_different_concept_name 19 1 0 95%
application/qaqc/vars/vars_qaqc_processor.py VarsQaqcProcessor.find_id_refs_conflicting_associations 52 10 0 81%
application/qaqc/vars/vars_qaqc_processor.py VarsQaqcProcessor.find_blank_associations 8 1 0 88%
application/qaqc/vars/vars_qaqc_processor.py VarsQaqcProcessor.find_suspicious_hosts 8 1 0 88%
application/qaqc/vars/vars_qaqc_processor.py VarsQaqcProcessor.find_missing_expected_association 19 1 0 95%
application/qaqc/vars/vars_qaqc_processor.py VarsQaqcProcessor.find_long_host_associate_time_diff 40 0 0 100%
application/qaqc/vars/vars_qaqc_processor.py VarsQaqcProcessor.find_num_bounding_boxes 14 0 0 100%
application/qaqc/vars/vars_qaqc_processor.py VarsQaqcProcessor.find_localizations_without_bounding_boxes 13 13 0 0%
application/qaqc/vars/vars_qaqc_processor.py VarsQaqcProcessor.find_unique_fields 79 12 0 85%
application/qaqc/vars/vars_qaqc_processor.py VarsQaqcProcessor.find_unique_fields.load_dict 6 0 0 100%
application/qaqc/vars/vars_qaqc_processor.py (no function) 25 0 0 100%
application/tator/__init__.py (no function) 3 0 0 100%
application/tator/routes.py tator_login 5 5 0 0%
application/tator/routes.py check_tator_token 8 8 0 0%
application/tator/routes.py tator_logout 2 2 0 0%
application/tator/routes.py tator_projects 5 5 0 0%
application/tator/routes.py tator_sections 5 5 0 0%
application/tator/routes.py load_media 18 18 0 0%
application/tator/routes.py refresh_tator_sections 4 4 0 0%
application/tator/routes.py tator_frame 11 11 0 0%
application/tator/routes.py tator_image 10 10 0 0%
application/tator/routes.py update_tator_localization 12 12 0 0%
application/tator/routes.py update_tator_localization_image 9 9 0 0%
application/tator/routes.py (no function) 29 0 0 100%
application/util/constants.py (no function) 4 0 0 100%
application/util/functions.py parse_datetime 3 0 0 100%
application/util/functions.py extract_recorded_datetime 8 0 0 100%
application/util/functions.py get_association 6 1 0 83%
application/util/functions.py format_annotator 3 0 0 100%
application/util/functions.py flatten_taxa_tree 4 0 0 100%
application/util/functions.py (no function) 8 0 0 100%
application/util/tator_localization_type.py (no function) 4 0 0 100%
application/vars/__init__.py (no function) 3 0 0 100%
application/vars/annosaurus.py AuthenticationError.__init__ 1 0 0 100%
application/vars/annosaurus.py JWTAuthentication.__init__ 3 0 0 100%
application/vars/annosaurus.py JWTAuthentication.authorize 8 0 0 100%
application/vars/annosaurus.py JWTAuthentication.authenticate 8 0 0 100%
application/vars/annosaurus.py JWTAuthentication._auth_header 1 0 0 100%
application/vars/annosaurus.py Annosaurus.__init__ 1 0 0 100%
application/vars/annosaurus.py Annosaurus.create_association 10 0 0 100%
application/vars/annosaurus.py Annosaurus.update_association 3 0 0 100%
application/vars/annosaurus.py Annosaurus.delete_association 3 0 0 100%
application/vars/annosaurus.py Annosaurus.update_concept_name 3 0 0 100%
application/vars/annosaurus.py Annosaurus.update_annotation_comment 37 3 0 92%
application/vars/annosaurus.py (no function) 17 0 0 100%
application/vars/routes.py get_current_associations 4 4 0 0%
application/vars/routes.py update_annotation 3 3 0 0%
application/vars/routes.py create_association 6 6 0 0%
application/vars/routes.py update_association 4 4 0 0%
application/vars/routes.py delete_association 3 3 0 0%
application/vars/routes.py video_frame 36 36 0 0%
application/vars/routes.py (no function) 18 0 0 100%
run.py (no function) 6 6 0 0%
test/__init__.py (no function) 0 0 0 100%
test/conftest.py app 2 2 0 0%
test/conftest.py client 1 1 0 0%
test/conftest.py (no function) 6 0 0 100%
test/data/vars_responses.py (no function) 4 0 0 100%
test/data/worms_responses.py (no function) 2 0 0 100%
test/test_annosaurus.py MockResponse.__init__ 5 0 0 100%
test/test_annosaurus.py MockResponse.json 51 6 0 88%
test/test_annosaurus.py MockResponse.text 1 1 0 0%
test/test_annosaurus.py mocked_requests_get 1 0 0 100%
test/test_annosaurus.py mocked_requests_get_404 1 0 0 100%
test/test_annosaurus.py mocked_requests_post 1 0 0 100%
test/test_annosaurus.py mocked_requests_put 1 0 0 100%
test/test_annosaurus.py mocked_requests_delete 1 0 0 100%
test/test_annosaurus.py TestAnnosaurus.test_init 2 0 0 100%
test/test_annosaurus.py TestAnnosaurus.test_authorize_jwt 2 0 0 100%
test/test_annosaurus.py TestAnnosaurus.test_authorize_client_secret 3 0 0 100%
test/test_annosaurus.py TestAnnosaurus.test_authorize_invalid 3 0 0 100%
test/test_annosaurus.py TestAnnosaurus.test_authorize_none 3 0 0 100%
test/test_annosaurus.py TestAnnosaurus.test_auth_header 2 0 0 100%
test/test_annosaurus.py TestAnnosaurus.test_create_association 5 0 0 100%
test/test_annosaurus.py TestAnnosaurus.test_create_association_missing_link_value 3 0 0 100%
test/test_annosaurus.py TestAnnosaurus.test_update_association 4 0 0 100%
test/test_annosaurus.py TestAnnosaurus.test_delete_association 4 0 0 100%
test/test_annosaurus.py TestAnnosaurus.test_update_concept_name 6 0 0 100%
test/test_annosaurus.py TestAnnosaurus.test_update_annotation_comment_404 4 0 0 100%
test/test_annosaurus.py TestAnnosaurus.test_update_annotation_comment_new_one_reviewer 4 0 0 100%
test/test_annosaurus.py TestAnnosaurus.test_update_annotation_comment_new_multiple_reviewers 4 0 0 100%
test/test_annosaurus.py TestAnnosaurus.test_update_annotation_comment_update_no_prev_reviewers 4 0 0 100%
test/test_annosaurus.py TestAnnosaurus.test_update_annotation_comment_update_prev_reviewers_add 4 0 0 100%
test/test_annosaurus.py TestAnnosaurus.test_update_annotation_comment_update_prev_reviewers_replace 4 0 0 100%
test/test_annosaurus.py TestAnnosaurus.test_update_annotation_comment_delete_empty 4 0 0 100%
test/test_annosaurus.py TestAnnosaurus.test_update_annotation_comment_delete_not_empty 4 0 0 100%
test/test_annosaurus.py (no function) 55 0 0 100%
test/test_functions.py TestFunctions.test_parse_datetime_micro 2 0 0 100%
test/test_functions.py TestFunctions.test_parse_datetime_no_micro 2 0 0 100%
test/test_functions.py TestFunctions.test_parse_datetime_fail 2 0 0 100%
test/test_functions.py TestFunctions.test_extract_recorded_datetime_no_micro 2 0 0 100%
test/test_functions.py TestFunctions.test_extract_recorded_datetime_round_up 2 0 0 100%
test/test_functions.py TestFunctions.test_extract_recorded_datetime_round_down 2 0 0 100%
test/test_functions.py TestFunctions.test_extract_recorded_datetime_fail 1 0 0 100%
test/test_functions.py TestFunctions.test_get_association 2 0 0 100%
test/test_functions.py TestFunctions.test_get_association_none 2 0 0 100%
test/test_functions.py TestFunctions.test_format_annotator_normal 1 0 0 100%
test/test_functions.py TestFunctions.test_format_annotator_harold 1 0 0 100%
test/test_functions.py TestFunctions.test_flatten_taxa_tree 1 0 0 100%
test/test_functions.py (no function) 17 0 0 100%
test/test_vars_annotation_processor.py mocked_requests_get 1 0 0 100%
test/test_vars_annotation_processor.py TestVarsAnnotationProcessor.test_init 7 0 0 100%
test/test_vars_annotation_processor.py TestVarsAnnotationProcessor.test_load_phylogeny 3 0 0 100%
test/test_vars_annotation_processor.py TestVarsAnnotationProcessor.test_fetch_media 5 0 0 100%
test/test_vars_annotation_processor.py TestVarsAnnotationProcessor.test_fetch_vars_phylogeny 3 0 0 100%
test/test_vars_annotation_processor.py TestVarsAnnotationProcessor.test_get_image_url_only_one 2 0 0 100%
test/test_vars_annotation_processor.py TestVarsAnnotationProcessor.test_get_image_url_png 2 0 0 100%
test/test_vars_annotation_processor.py TestVarsAnnotationProcessor.test_get_video 5 0 0 100%
test/test_vars_annotation_processor.py TestVarsAnnotationProcessor.test_get_video_url_second_media 4 0 0 100%
test/test_vars_annotation_processor.py TestVarsAnnotationProcessor.test_process_images 4 0 0 100%
test/test_vars_annotation_processor.py TestVarsAnnotationProcessor.test_sort_records 5 0 0 100%
test/test_vars_annotation_processor.py TestVarsAnnotationProcessor.test_find_highest_id_refs 5 0 0 100%
test/test_vars_annotation_processor.py (no function) 27 0 0 100%
test/test_vars_qaqc_processor.py mocked_requests_get 1 0 0 100%
test/test_vars_qaqc_processor.py TestVarsQaqcProcessor.test_init 6 0 0 100%
test/test_vars_qaqc_processor.py TestVarsQaqcProcessor.test_fetch_annotations 3 0 0 100%
test/test_vars_qaqc_processor.py TestVarsQaqcProcessor.test_find_duplicate_associations 6 0 0 100%
test/test_vars_qaqc_processor.py TestVarsQaqcProcessor.test_find_missing_s1 6 0 0 100%
test/test_vars_qaqc_processor.py TestVarsQaqcProcessor.test_find_identical_s1_s2 6 0 0 100%
test/test_vars_qaqc_processor.py TestVarsQaqcProcessor.test_find_duplicate_s2 6 0 0 100%
test/test_vars_qaqc_processor.py TestVarsQaqcProcessor.test_find_missing_upon_substrate 6 0 0 100%
test/test_vars_qaqc_processor.py TestVarsQaqcProcessor.test_find_mismatched_substrates 6 0 0 100%
test/test_vars_qaqc_processor.py TestVarsQaqcProcessor.test_find_missing_upon 6 0 0 100%
test/test_vars_qaqc_processor.py TestVarsQaqcProcessor.test_get_num_records_missing_ancillary_data 4 0 0 100%
test/test_vars_qaqc_processor.py TestVarsQaqcProcessor.test_find_missing_ancillary_data 6 0 0 100%
test/test_vars_qaqc_processor.py TestVarsQaqcProcessor.test_find_id_refs_different_concept_name 6 0 0 100%
test/test_vars_qaqc_processor.py TestVarsQaqcProcessor.test_find_id_refs_conflicting_associations 6 0 0 100%
test/test_vars_qaqc_processor.py TestVarsQaqcProcessor.test_find_blank_associations 6 0 0 100%
test/test_vars_qaqc_processor.py TestVarsQaqcProcessor.test_find_suspicious_hosts 6 0 0 100%
test/test_vars_qaqc_processor.py TestVarsQaqcProcessor.test_find_missing_expected_association 6 0 0 100%
test/test_vars_qaqc_processor.py TestVarsQaqcProcessor.test_find_long_host_associate_time_diff 6 0 0 100%
test/test_vars_qaqc_processor.py TestVarsQaqcProcessor.test_find_num_bounding_boxes 3 0 0 100%
test/test_vars_qaqc_processor.py TestVarsQaqcProcessor.test_find_unique_fields 3 0 0 100%
test/test_vars_qaqc_processor.py (no function) 46 0 0 100%
test/util/mock_response.py MockResponse.__init__ 2 0 0 100%
test/util/mock_response.py MockResponse.json 10 0 0 100%
test/util/mock_response.py (no function) 4 0 0 100%
Total   2766 1399 0 49%

No items found using the specified filter.