Coverage report: 97%

Files Functions Classes

coverage.py v7.12.0, created at 2025-12-03 01:35 +0000

File function   statements missing excluded   coverage
postrfp / __init__.py (no function)   0 0 0   100%
postrfp / auth / __init__.py (no function)   0 0 0   100%
postrfp / auth / endpoints.py post_login   11 0 0   100%
postrfp / auth / endpoints.py _lock_user_account   3 0 0   100%
postrfp / auth / endpoints.py _handle_failed_login   10 0 0   100%
postrfp / auth / endpoints.py post_password_emailkey   12 0 0   100%
postrfp / auth / endpoints.py post_password_update   16 0 0   100%
postrfp / auth / endpoints.py post_refresh_token   17 0 0   100%
postrfp / auth / endpoints.py post_logout   17 0 2   100%
postrfp / auth / endpoints.py _check_and_clear_lockout   8 0 0   100%
postrfp / auth / endpoints.py _generate_access_token   5 0 0   100%
postrfp / auth / endpoints.py _generate_and_store_refresh_token   6 0 0   100%
postrfp / auth / endpoints.py _update_user_on_login   5 0 0   100%
postrfp / auth / endpoints.py _create_login_response   4 0 0   100%
postrfp / auth / endpoints.py (no function)   38 0 0   100%
postrfp / auth / policy.py AbstractIdentityPolicy.identify   0 0 2   100%
postrfp / auth / policy.py AbstractIdentityPolicy.remember   0 0 2   100%
postrfp / auth / policy.py set_user_object   7 0 0   100%
postrfp / auth / policy.py jwt_exceptions   16 2 0   88%
postrfp / auth / policy.py JwtBearerPolicy.identify   9 0 0   100%
postrfp / auth / policy.py JwtBearerPolicy.remember   0 0 1   100%
postrfp / auth / policy.py JwtBearerPolicy._decode_jwt_token   6 0 0   100%
postrfp / auth / policy.py PassthroughPolicy.identify   0 0 1   100%
postrfp / auth / policy.py PassthroughPolicy.remember   0 0 1   100%
postrfp / auth / policy.py DevHeaderPolicy.__init__   4 0 0   100%
postrfp / auth / policy.py DevHeaderPolicy.identify   13 0 0   100%
postrfp / auth / policy.py DevHeaderPolicy.remember   0 0 1   100%
postrfp / auth / policy.py FallbackPolicy.__init__   3 0 0   100%
postrfp / auth / policy.py FallbackPolicy.identify   6 0 0   100%
postrfp / auth / policy.py FallbackPolicy.remember   0 0 1   100%
postrfp / auth / policy.py (no function)   27 0 16   100%
postrfp / authorisation / __init__.py (no function)   0 0 0   100%
postrfp / authorisation / actions.py (no function)   7 0 0   100%
postrfp / authorisation / errors.py AuthorisationFailures.__init__   2 0 0   100%
postrfp / authorisation / errors.py AuthorisationFailures.p_action   1 0 0   100%
postrfp / authorisation / errors.py AuthorisationFailures.has_errors   1 0 0   100%
postrfp / authorisation / errors.py AuthorisationFailures.add   1 0 0   100%
postrfp / authorisation / errors.py AuthorisationFailures.auth_failure   1 0 0   100%
postrfp / authorisation / errors.py AuthorisationFailures.invalid_issue_status   2 0 0   100%
postrfp / authorisation / errors.py AuthorisationFailures.invalid_project_status   2 0 0   100%
postrfp / authorisation / errors.py AuthorisationFailures.__iter__   1 0 0   100%
postrfp / authorisation / errors.py AuthorisationFailures.__len__   1 0 0   100%
postrfp / authorisation / errors.py AuthorisationFailures.as_dict   1 0 0   100%
postrfp / authorisation / errors.py AuthorisationFailures.__repr__   0 0 5   100%
postrfp / authorisation / errors.py (no function)   19 0 1   100%
postrfp / authorisation / perms.py _is_perm   5 0 0   100%
postrfp / authorisation / perms.py title_cased   1 0 0   100%
postrfp / authorisation / perms.py (no function)   58 0 0   100%
postrfp / authorisation / roles.py CheckingSet.add   3 0 0   100%
postrfp / authorisation / roles.py (no function)   7 0 0   100%
postrfp / authorisation / vendor_actions.py (no function)   8 0 2   100%
postrfp / buyer / __init__.py (no function)   0 0 0   100%
postrfp / buyer / api / __init__.py (no function)   0 0 0   100%
postrfp / buyer / api / authorise.py check   3 0 0   100%
postrfp / buyer / api / authorise.py apply_rules   13 0 0   100%
postrfp / buyer / api / authorise.py validate_action   2 0 0   100%
postrfp / buyer / api / authorise.py enforce_restricted_user_guard   2 0 0   100%
postrfp / buyer / api / authorise.py ensure_user_permission   2 0 0   100%
postrfp / buyer / api / authorise.py enforce_project_rules   8 0 0   100%
postrfp / buyer / api / authorise.py enforce_questionnaire_rules   8 0 0   100%
postrfp / buyer / api / authorise.py enforce_issue_rules   7 0 0   100%
postrfp / buyer / api / authorise.py enforce_admin_rules   10 0 0   100%
postrfp / buyer / api / authorise.py require_project   3 0 0   100%
postrfp / buyer / api / authorise.py require_section_id   3 0 0   100%
postrfp / buyer / api / authorise.py verify_project_membership   7 0 0   100%
postrfp / buyer / api / authorise.py verify_restricted_project_access   2 0 0   100%
postrfp / buyer / api / authorise.py verify_project_status_allows_action   2 0 0   100%
postrfp / buyer / api / authorise.py resolve_admin_target   8 0 0   100%
postrfp / buyer / api / authorise.py verify_can_view_answers   2 0 0   100%
postrfp / buyer / api / authorise.py (no function)   36 0 0   100%
postrfp / buyer / api / buyer_authoriser.py authoriser   14 0 0   100%
postrfp / buyer / api / buyer_authoriser.py (no function)   5 0 3   100%
postrfp / buyer / api / domain_permissions.py save_project_permissions   34 0 0   100%
postrfp / buyer / api / domain_permissions.py (no function)   6 0 0   100%
postrfp / buyer / api / endpoints / __init__.py (no function)   2 0 0   100%
postrfp / buyer / api / endpoints / answers.py get_question_answers   4 0 0   100%
postrfp / buyer / api / endpoints / answers.py get_project_issue_question   5 0 0   100%
postrfp / buyer / api / endpoints / answers.py get_project_section_issue_answers   6 0 0   100%
postrfp / buyer / api / endpoints / answers.py get_question_issue_answers   8 0 0   100%
postrfp / buyer / api / endpoints / answers.py get_element_answers   2 0 0   100%
postrfp / buyer / api / endpoints / answers.py get_project_answers   11 0 0   100%
postrfp / buyer / api / endpoints / answers.py (no function)   24 0 0   100%
postrfp / buyer / api / endpoints / attachments.py get_project_attachments   3 0 0   100%
postrfp / buyer / api / endpoints / attachments.py get_project_issueattachments   3 0 0   100%
postrfp / buyer / api / endpoints / attachments.py get_project_answerattachments   3 0 0   100%
postrfp / buyer / api / endpoints / attachments.py get_project_attachment   4 0 0   100%
postrfp / buyer / api / endpoints / attachments.py post_project_attachment   8 0 0   100%
postrfp / buyer / api / endpoints / attachments.py delete_project_attachment   8 0 0   100%
postrfp / buyer / api / endpoints / attachments.py get_project_issue_attachment   5 0 0   100%
postrfp / buyer / api / endpoints / attachments.py get_question_element_attachment   6 1 0   83%
postrfp / buyer / api / endpoints / attachments.py get_answer_attachment   6 0 0   100%
postrfp / buyer / api / endpoints / attachments.py (no function)   28 0 0   100%
postrfp / buyer / api / endpoints / audit.py get_project_events   5 0 0   100%
postrfp / buyer / api / endpoints / audit.py get_events   4 0 0   100%
postrfp / buyer / api / endpoints / audit.py get_event   24 1 0   96%
postrfp / buyer / api / endpoints / audit.py get_event_types   1 0 0   100%
postrfp / buyer / api / endpoints / audit.py get_question_events   5 0 0   100%
postrfp / buyer / api / endpoints / audit.py (no function)   21 0 0   100%
postrfp / buyer / api / endpoints / auth.py get_role   4 0 0   100%
postrfp / buyer / api / endpoints / auth.py get_roles   4 4 0   0%
postrfp / buyer / api / endpoints / auth.py get_permissions   11 0 0   100%
postrfp / buyer / api / endpoints / auth.py get_users   5 0 0   100%
postrfp / buyer / api / endpoints / auth.py get_user   6 1 0   83%
postrfp / buyer / api / endpoints / auth.py put_user   15 0 0   100%
postrfp / buyer / api / endpoints / auth.py post_user   25 2 0   92%
postrfp / buyer / api / endpoints / auth.py delete_user   9 0 0   100%
postrfp / buyer / api / endpoints / auth.py get_organisations   9 0 0   100%
postrfp / buyer / api / endpoints / auth.py get_organisation   5 0 0   100%
postrfp / buyer / api / endpoints / auth.py post_client   10 0 0   100%
postrfp / buyer / api / endpoints / auth.py put_organisation   9 0 0   100%
postrfp / buyer / api / endpoints / auth.py (no function)   36 0 0   100%
postrfp / buyer / api / endpoints / categories.py get_category   1 0 0   100%
postrfp / buyer / api / endpoints / categories.py delete_category   3 0 0   100%
postrfp / buyer / api / endpoints / categories.py post_category   9 0 0   100%
postrfp / buyer / api / endpoints / categories.py put_category   4 0 0   100%
postrfp / buyer / api / endpoints / categories.py get_categories   2 0 0   100%
postrfp / buyer / api / endpoints / categories.py (no function)   19 0 0   100%
postrfp / buyer / api / endpoints / datafeeds.py _check_can_manage   4 0 0   100%
postrfp / buyer / api / endpoints / datafeeds.py post_feed   7 0 0   100%
postrfp / buyer / api / endpoints / datafeeds.py put_feed   8 0 0   100%
postrfp / buyer / api / endpoints / datafeeds.py get_feeds   6 0 0   100%
postrfp / buyer / api / endpoints / datafeeds.py delete_feed   5 0 0   100%
postrfp / buyer / api / endpoints / datafeeds.py post_feed_trigger   12 2 0   83%
postrfp / buyer / api / endpoints / datafeeds.py get_feed_executions   11 1 0   91%
postrfp / buyer / api / endpoints / datafeeds.py get_feed   3 0 0   100%
postrfp / buyer / api / endpoints / datafeeds.py (no function)   25 0 0   100%
postrfp / buyer / api / endpoints / issues.py get_vendor   5 0 0   100%
postrfp / buyer / api / endpoints / issues.py get_project_issue   4 0 0   100%
postrfp / buyer / api / endpoints / issues.py get_project_issues   4 0 0   100%
postrfp / buyer / api / endpoints / issues.py put_project_issue   9 0 0   100%
postrfp / buyer / api / endpoints / issues.py get_issue   3 0 0   100%
postrfp / buyer / api / endpoints / issues.py post_project_issue   16 0 0   100%
postrfp / buyer / api / endpoints / issues.py delete_project_issue   7 0 0   100%
postrfp / buyer / api / endpoints / issues.py post_issue_status   3 0 0   100%
postrfp / buyer / api / endpoints / issues.py get_issues   16 0 0   100%
postrfp / buyer / api / endpoints / issues.py (no function)   30 0 0   100%
postrfp / buyer / api / endpoints / network.py get_network   2 0 0   100%
postrfp / buyer / api / endpoints / network.py delete_network   3 0 0   100%
postrfp / buyer / api / endpoints / network.py get_reltypes   1 0 0   100%
postrfp / buyer / api / endpoints / network.py post_reltype   5 0 0   100%
postrfp / buyer / api / endpoints / network.py put_reltype   5 0 0   100%
postrfp / buyer / api / endpoints / network.py delete_reltype   4 0 0   100%
postrfp / buyer / api / endpoints / network.py post_relationship   7 0 0   100%
postrfp / buyer / api / endpoints / network.py delete_relationship   7 0 0   100%
postrfp / buyer / api / endpoints / network.py post_network_project   33 0 0   100%
postrfp / buyer / api / endpoints / network.py (no function)   34 0 0   100%
postrfp / buyer / api / endpoints / notes.py get_project_notes   3 0 0   100%
postrfp / buyer / api / endpoints / notes.py issue_if_target_set   7 0 0   100%
postrfp / buyer / api / endpoints / notes.py post_project_note   16 0 0   100%
postrfp / buyer / api / endpoints / notes.py put_project_note   9 0 0   100%
postrfp / buyer / api / endpoints / notes.py delete_project_note   8 0 0   100%
postrfp / buyer / api / endpoints / notes.py (no function)   18 0 0   100%
postrfp / buyer / api / endpoints / projects.py get_projects   22 1 0   95%
postrfp / buyer / api / endpoints / projects.py get_project   5 0 0   100%
postrfp / buyer / api / endpoints / projects.py post_project   38 0 0   100%
postrfp / buyer / api / endpoints / projects.py put_project   17 0 0   100%
postrfp / buyer / api / endpoints / projects.py delete_project   9 0 0   100%
postrfp / buyer / api / endpoints / projects.py get_project_participants   3 0 0   100%
postrfp / buyer / api / endpoints / projects.py put_project_participants   15 0 0   100%
postrfp / buyer / api / endpoints / projects.py put_project_permissions   4 0 0   100%
postrfp / buyer / api / endpoints / projects.py get_project_users   5 0 0   100%
postrfp / buyer / api / endpoints / projects.py get_project_user_permissions   15 0 0   100%
postrfp / buyer / api / endpoints / projects.py get_project_permissions   5 0 0   100%
postrfp / buyer / api / endpoints / projects.py get_project_watchlist   3 0 0   100%
postrfp / buyer / api / endpoints / projects.py post_project_watch   11 0 0   100%
postrfp / buyer / api / endpoints / projects.py delete_project_watch   6 0 0   100%
postrfp / buyer / api / endpoints / projects.py put_project_category   6 0 0   100%
postrfp / buyer / api / endpoints / projects.py delete_project_category   6 0 0   100%
postrfp / buyer / api / endpoints / projects.py put_project_publish   18 0 0   100%
postrfp / buyer / api / endpoints / projects.py put_project_close   8 0 0   100%
postrfp / buyer / api / endpoints / projects.py get_project_approvals   3 0 0   100%
postrfp / buyer / api / endpoints / projects.py post_project_approval   10 0 0   100%
postrfp / buyer / api / endpoints / projects.py delete_project_approval   12 0 0   100%
postrfp / buyer / api / endpoints / projects.py (no function)   58 0 0   100%
postrfp / buyer / api / endpoints / questions.py get_project_section_question   4 0 0   100%
postrfp / buyer / api / endpoints / questions.py put_project_section_question   25 0 0   100%
postrfp / buyer / api / endpoints / questions.py post_project_section_question   12 0 0   100%
postrfp / buyer / api / endpoints / questions.py delete_project_section_question   7 0 0   100%
postrfp / buyer / api / endpoints / questions.py post_project_section_question_copy   21 0 0   100%
postrfp / buyer / api / endpoints / questions.py get_question_instances   6 0 0   100%
postrfp / buyer / api / endpoints / questions.py put_project_question_element   14 0 0   100%
postrfp / buyer / api / endpoints / questions.py post_project_section_question_unlink   15 0 0   100%
postrfp / buyer / api / endpoints / questions.py (no function)   26 0 0   100%
postrfp / buyer / api / endpoints / reports / __init__.py (no function)   3 0 0   100%
postrfp / buyer / api / endpoints / reports / msword.py is_comments_label   5 0 0   100%
postrfp / buyer / api / endpoints / reports / msword.py render_paragraph_question   15 0 0   100%
postrfp / buyer / api / endpoints / reports / msword.py render_table_question   22 0 2   100%
postrfp / buyer / api / endpoints / reports / msword.py _el_answer_lookup   3 0 0   100%
postrfp / buyer / api / endpoints / reports / msword.py get_project_report_msword   29 0 0   100%
postrfp / buyer / api / endpoints / reports / msword.py (no function)   23 0 0   100%
postrfp / buyer / api / endpoints / reports / qtextxlsx.py _generate_xlsx   16 0 0   100%
postrfp / buyer / api / endpoints / reports / qtextxlsx.py get_project_report_qtext   5 0 0   100%
postrfp / buyer / api / endpoints / reports / qtextxlsx.py (no function)   16 0 0   100%
postrfp / buyer / api / endpoints / reports / responses.py attachment   4 0 0   100%
postrfp / buyer / api / endpoints / reports / responses.py (no function)   2 0 0   100%
postrfp / buyer / api / endpoints / reports / yesnoqual.py get_project_report_yesno   62 1 2   98%
postrfp / buyer / api / endpoints / reports / yesnoqual.py get_scoretotals   14 0 0   100%
postrfp / buyer / api / endpoints / reports / yesnoqual.py (no function)   23 0 0   100%
postrfp / buyer / api / endpoints / scoring.py get_project_scores   9 0 0   100%
postrfp / buyer / api / endpoints / scoring.py get_question_scores   6 0 0   100%
postrfp / buyer / api / endpoints / scoring.py post_question_score   13 0 0   100%
postrfp / buyer / api / endpoints / scoring.py get_project_section_issue_scores   7 0 0   100%
postrfp / buyer / api / endpoints / scoring.py post_question_score_comment   21 0 0   100%
postrfp / buyer / api / endpoints / scoring.py check_autoscore_permissions   7 0 0   100%
postrfp / buyer / api / endpoints / scoring.py get_project_calcautoscores   6 1 0   83%
postrfp / buyer / api / endpoints / scoring.py post_project_calcautoscores   22 1 0   95%
postrfp / buyer / api / endpoints / scoring.py get_section_scoresummaries   6 0 0   100%
postrfp / buyer / api / endpoints / scoring.py get_section_scores   24 0 0   100%
postrfp / buyer / api / endpoints / scoring.py get_project_scoresets   8 0 0   100%
postrfp / buyer / api / endpoints / scoring.py get_question_issue_comments   10 0 0   100%
postrfp / buyer / api / endpoints / scoring.py post_section_scoreset_scores   39 3 0   92%
postrfp / buyer / api / endpoints / scoring.py (no function)   42 0 0   100%
postrfp / buyer / api / endpoints / search.py get_search   10 0 0   100%
postrfp / buyer / api / endpoints / search.py post_project_questions_replace   17 0 0   100%
postrfp / buyer / api / endpoints / search.py (no function)   15 0 0   100%
postrfp / buyer / api / endpoints / sections.py put_project_section   13 0 0   100%
postrfp / buyer / api / endpoints / sections.py post_project_section   12 1 0   92%
postrfp / buyer / api / endpoints / sections.py delete_project_section   4 0 0   100%
postrfp / buyer / api / endpoints / sections.py put_project_movesection   19 1 0   95%
postrfp / buyer / api / endpoints / sections.py put_project_section_children   15 1 0   93%
postrfp / buyer / api / endpoints / sections.py get_project_section   9 0 0   100%
postrfp / buyer / api / endpoints / sections.py get_project_treenodes   6 0 0   100%
postrfp / buyer / api / endpoints / sections.py get_project_nodes   9 0 0   100%
postrfp / buyer / api / endpoints / sections.py post_project_section_excel   13 0 0   100%
postrfp / buyer / api / endpoints / sections.py get_project_qstats   3 0 0   100%
postrfp / buyer / api / endpoints / sections.py post_project_section_import   34 2 0   94%
postrfp / buyer / api / endpoints / sections.py (no function)   34 0 0   100%
postrfp / buyer / api / endpoints / tags.py get_tags   2 0 0   100%
postrfp / buyer / api / endpoints / tags.py get_tags_section   8 0 0   100%
postrfp / buyer / api / endpoints / tags.py post_tag   7 0 0   100%
postrfp / buyer / api / endpoints / tags.py put_tag   6 0 0   100%
postrfp / buyer / api / endpoints / tags.py delete_tag   3 0 0   100%
postrfp / buyer / api / endpoints / tags.py _tag_assign   11 0 0   100%
postrfp / buyer / api / endpoints / tags.py _add_questions_from_sections   6 0 0   100%
postrfp / buyer / api / endpoints / tags.py post_tag_assign   2 0 0   100%
postrfp / buyer / api / endpoints / tags.py post_tag_assign.assign   4 0 0   100%
postrfp / buyer / api / endpoints / tags.py delete_tag_assign   2 0 0   100%
postrfp / buyer / api / endpoints / tags.py delete_tag_assign.un_assign   4 0 0   100%
postrfp / buyer / api / endpoints / tags.py (no function)   28 0 0   100%
postrfp / buyer / api / endpoints / webhooks.py _check_can_manage   4 0 0   100%
postrfp / buyer / api / endpoints / webhooks.py post_webhook   7 0 0   100%
postrfp / buyer / api / endpoints / webhooks.py put_webhook   7 0 0   100%
postrfp / buyer / api / endpoints / webhooks.py get_webhooks   5 0 0   100%
postrfp / buyer / api / endpoints / webhooks.py delete_webhook   5 0 0   100%
postrfp / buyer / api / endpoints / webhooks.py get_webhook_events   2 0 0   100%
postrfp / buyer / api / endpoints / webhooks.py get_webhook_executions   11 0 0   100%
postrfp / buyer / api / endpoints / webhooks.py (no function)   23 0 0   100%
postrfp / buyer / api / endpoints / weighting.py get_project_weightings   9 0 0   100%
postrfp / buyer / api / endpoints / weighting.py post_project_weightings   13 2 0   85%
postrfp / buyer / api / endpoints / weighting.py get_project_weightsets   3 0 0   100%
postrfp / buyer / api / endpoints / weighting.py post_project_weightset   14 0 0   100%
postrfp / buyer / api / endpoints / weighting.py put_project_weightset   4 0 0   100%
postrfp / buyer / api / endpoints / weighting.py delete_project_weightset   4 0 0   100%
postrfp / buyer / api / endpoints / weighting.py get_project_section_weightings   6 0 0   100%
postrfp / buyer / api / endpoints / weighting.py (no function)   26 0 0   100%
postrfp / buyer / api / fix / __init__.py (no function)   0 0 0   100%
postrfp / buyer / api / fix / orphan_questions.py delete_orphan_questions   7 0 0   100%
postrfp / buyer / api / fix / orphan_questions.py (no function)   3 0 0   100%
postrfp / buyer / api / fix / qtables.py fix_spans   39 0 0   100%
postrfp / buyer / api / fix / qtables.py (no function)   3 0 0   100%
postrfp / buyer / api / io / __init__.py (no function)   0 0 0   100%
postrfp / buyer / api / io / excel_import.py XLCell.__init__   1 0 0   100%
postrfp / buyer / api / io / excel_import.py XLCell.__get__   1 0 0   100%
postrfp / buyer / api / io / excel_import.py QRow.__init__   1 0 0   100%
postrfp / buyer / api / io / excel_import.py QRow.is_root_question   1 0 0   100%
postrfp / buyer / api / io / excel_import.py QRow.choices_list   7 1 0   86%
postrfp / buyer / api / io / excel_import.py row_to_question   14 0 0   100%
postrfp / buyer / api / io / excel_import.py ExcelQImporter.__init__   9 1 0   89%
postrfp / buyer / api / io / excel_import.py ExcelQImporter.read_questions_excel   4 0 0   100%
postrfp / buyer / api / io / excel_import.py ExcelQImporter.process_rows   5 0 0   100%
postrfp / buyer / api / io / excel_import.py ExcelQImporter.process_one_row   19 0 0   100%
postrfp / buyer / api / io / excel_import.py (no function)   23 0 0   100%
postrfp / buyer / api / io / qbuilder.py QuestionnaireBuilder.__init__   11 0 0   100%
postrfp / buyer / api / io / qbuilder.py QuestionnaireBuilder.__enter__   1 0 0   100%
postrfp / buyer / api / io / qbuilder.py QuestionnaireBuilder.__exit__   3 0 0   100%
postrfp / buyer / api / io / qbuilder.py QuestionnaireBuilder.current_section   1 0 0   100%
postrfp / buyer / api / io / qbuilder.py QuestionnaireBuilder.root_section   1 0 0   100%
postrfp / buyer / api / io / qbuilder.py QuestionnaireBuilder.finalise   3 0 0   100%
postrfp / buyer / api / io / qbuilder.py QuestionnaireBuilder.start_section   10 0 0   100%
postrfp / buyer / api / io / qbuilder.py QuestionnaireBuilder.end_section   4 0 0   100%
postrfp / buyer / api / io / qbuilder.py QuestionnaireBuilder.section_context   3 0 0   100%
postrfp / buyer / api / io / qbuilder.py QuestionnaireBuilder.start_question   9 0 0   100%
postrfp / buyer / api / io / qbuilder.py QuestionnaireBuilder.end_question   3 0 0   100%
postrfp / buyer / api / io / qbuilder.py QuestionnaireBuilder.question_context   3 0 0   100%
postrfp / buyer / api / io / qbuilder.py QuestionnaireBuilder.flush_elements   4 0 0   100%
postrfp / buyer / api / io / qbuilder.py QuestionnaireBuilder.add_element   10 0 0   100%
postrfp / buyer / api / io / qbuilder.py QuestionnaireBuilder._element   3 0 0   100%
postrfp / buyer / api / io / qbuilder.py QuestionnaireBuilder.add_text_input   3 0 0   100%
postrfp / buyer / api / io / qbuilder.py QuestionnaireBuilder.add_checkbox   1 0 0   100%
postrfp / buyer / api / io / qbuilder.py QuestionnaireBuilder.add_label   1 0 0   100%
postrfp / buyer / api / io / qbuilder.py QuestionnaireBuilder.add_attachment   1 0 0   100%
postrfp / buyer / api / io / qbuilder.py QuestionnaireBuilder.add_question_attachment   4 0 0   100%
postrfp / buyer / api / io / qbuilder.py QuestionnaireBuilder.add_choice_set   2 0 0   100%
postrfp / buyer / api / io / qbuilder.py QuestionnaireBuilder.start_choice_set   4 0 0   100%
postrfp / buyer / api / io / qbuilder.py QuestionnaireBuilder.add_choice   7 0 0   100%
postrfp / buyer / api / io / qbuilder.py QuestionnaireBuilder.end_choice_set   10 0 0   100%
postrfp / buyer / api / io / qbuilder.py QuestionnaireBuilder.choice_set_context   3 0 0   100%
postrfp / buyer / api / io / qbuilder.py parse_bool_attr   6 0 0   100%
postrfp / buyer / api / io / qbuilder.py (no function)   48 0 3   100%
postrfp / buyer / api / io / streaming.py StreamingVisitor.__init__   3 0 0   100%
postrfp / buyer / api / io / streaming.py StreamingVisitor.visit   2 0 0   100%
postrfp / buyer / api / io / streaming.py StreamingVisitor._visit_section   19 0 0   100%
postrfp / buyer / api / io / streaming.py StreamingVisitor.finish_section   0 0 1   100%
postrfp / buyer / api / io / streaming.py StreamingVisitor.process_section   0 0 1   100%
postrfp / buyer / api / io / streaming.py StreamingVisitor.process_question   0 0 1   100%
postrfp / buyer / api / io / streaming.py StreamingVisitor.process_question_details   0 0 1   100%
postrfp / buyer / api / io / streaming.py StreamingVisitor.should_load_question_details   1 0 0   100%
postrfp / buyer / api / io / streaming.py StreamingVisitor.cleanup   1 0 0   100%
postrfp / buyer / api / io / streaming.py XmlExportVisitor.__init__   9 0 0   100%
postrfp / buyer / api / io / streaming.py XmlExportVisitor.visit   9 0 0   100%
postrfp / buyer / api / io / streaming.py XmlExportVisitor.process_section   9 0 0   100%
postrfp / buyer / api / io / streaming.py XmlExportVisitor.finish_section   1 0 0   100%
postrfp / buyer / api / io / streaming.py XmlExportVisitor.process_question   2 0 0   100%
postrfp / buyer / api / io / streaming.py XmlExportVisitor.process_question_details   9 0 0   100%
postrfp / buyer / api / io / streaming.py XmlExportVisitor._write_element   7 1 0   86%
postrfp / buyer / api / io / streaming.py XmlExportVisitor.cleanup   3 0 0   100%
postrfp / buyer / api / io / streaming.py (no function)   22 0 4   100%
postrfp / buyer / api / io / xml / importer.py XmlQuestionnaireImporter.__init__   6 0 0   100%
postrfp / buyer / api / io / xml / importer.py XmlQuestionnaireImporter.dispatch   5 0 0   100%
postrfp / buyer / api / io / xml / importer.py XmlQuestionnaireImporter.parse   6 0 0   100%
postrfp / buyer / api / io / xml / importer.py XmlQuestionnaireImporter.start_section   3 0 0   100%
postrfp / buyer / api / io / xml / importer.py XmlQuestionnaireImporter.end_section   3 0 0   100%
postrfp / buyer / api / io / xml / importer.py XmlQuestionnaireImporter.start_description   1 0 0   100%
postrfp / buyer / api / io / xml / importer.py XmlQuestionnaireImporter.start_question   3 0 0   100%
postrfp / buyer / api / io / xml / importer.py XmlQuestionnaireImporter.end_question   2 0 0   100%
postrfp / buyer / api / io / xml / importer.py XmlQuestionnaireImporter.start_td   1 0 0   100%
postrfp / buyer / api / io / xml / importer.py XmlQuestionnaireImporter.end_td   1 0 0   100%
postrfp / buyer / api / io / xml / importer.py XmlQuestionnaireImporter.start_text   2 0 0   100%
postrfp / buyer / api / io / xml / importer.py XmlQuestionnaireImporter.start_checkbox   2 0 0   100%
postrfp / buyer / api / io / xml / importer.py XmlQuestionnaireImporter.start_label   2 0 0   100%
postrfp / buyer / api / io / xml / importer.py XmlQuestionnaireImporter.start_attachment   2 0 0   100%
postrfp / buyer / api / io / xml / importer.py XmlQuestionnaireImporter.start_questionattachment   4 0 0   100%
postrfp / buyer / api / io / xml / importer.py XmlQuestionnaireImporter.start_choiceset   3 0 0   100%
postrfp / buyer / api / io / xml / importer.py XmlQuestionnaireImporter.end_choiceset   1 0 0   100%
postrfp / buyer / api / io / xml / importer.py XmlQuestionnaireImporter.start_choice   3 0 0   100%
postrfp / buyer / api / io / xml / importer.py (no function)   25 0 0   100%
postrfp / buyer / fsm_endpoints.py get_workflows   10 0 0   100%
postrfp / buyer / fsm_endpoints.py get_workflow   5 0 0   100%
postrfp / buyer / fsm_endpoints.py _create_update_statuses   30 0 0   100%
postrfp / buyer / fsm_endpoints.py _create_update_transitions   14 0 0   100%
postrfp / buyer / fsm_endpoints.py post_workflow   10 0 0   100%
postrfp / buyer / fsm_endpoints.py put_workflow   20 0 0   100%
postrfp / buyer / fsm_endpoints.py delete_workflow   6 0 0   100%
postrfp / buyer / fsm_endpoints.py get_workflow_statuses   6 0 0   100%
postrfp / buyer / fsm_endpoints.py get_workflow_transitions   6 0 0   100%
postrfp / buyer / fsm_endpoints.py get_workflow_entity_transitions   16 0 0   100%
postrfp / buyer / fsm_endpoints.py get_entities   12 0 0   100%
postrfp / buyer / fsm_endpoints.py post_transition   8 0 0   100%
postrfp / buyer / fsm_endpoints.py (no function)   35 0 2   100%
postrfp / conf / __init__.py (no function)   2 0 2   100%
postrfp / conf / logHandlers.py PostmarkHandler.__init__   5 0 0   100%
postrfp / conf / logHandlers.py PostmarkHandler.emit   8 0 0   100%
postrfp / conf / logHandlers.py (no function)   9 0 0   100%
postrfp / conf / logconf.py (no function)   5 0 0   100%
postrfp / conf / settings.py AppSettings.sqlalchemy_dsn   1 0 0   100%
postrfp / conf / settings.py AppSettings._build_dsn   1 0 0   100%
postrfp / conf / settings.py AppSettings.conn_string   2 0 0   100%
postrfp / conf / settings.py AppSettings.cache_dir   1 0 0   100%
postrfp / conf / settings.py AppSettings.attachments_dir   1 0 0   100%
postrfp / conf / settings.py AppSettings.validate_dirs   9 0 0   100%
postrfp / conf / settings.py AppSettings.random_cache_file_path   2 0 0   100%
postrfp / conf / settings.py AppSettings.test_usable   10 0 0   100%
postrfp / conf / settings.py AppSettings.__iter__   4 0 0   100%
postrfp / conf / settings.py (no function)   70 0 0   100%
postrfp / fsm / __init__.py (no function)   3 0 0   100%
postrfp / fsm / schemas.py TransitionSchema.source   1 0 0   100%
postrfp / fsm / schemas.py TransitionSchema.target   1 0 0   100%
postrfp / fsm / schemas.py WorkflowSchema.validate_workflow_integrity   30 1 0   97%
postrfp / fsm / schemas.py (no function)   65 0 0   100%
postrfp / fsm / service.py get_entity_type_name   1 0 0   100%
postrfp / fsm / service.py get_definitions_for_entity   5 0 0   100%
postrfp / fsm / service.py get_all_states   2 0 0   100%
postrfp / fsm / service.py get_all_transitions   2 0 0   100%
postrfp / fsm / service.py get_available_transitions   4 0 0   100%
postrfp / fsm / service.py get_permitted_actions   5 0 0   100%
postrfp / fsm / service.py get_next_state_for_transition   7 0 0   100%
postrfp / fsm / service.py create_fsm_from_status_actions   28 2 0   93%
postrfp / fsm / service.py get_all_states_for_entity   5 0 0   100%
postrfp / fsm / service.py get_all_transitions_for_entity   5 0 0   100%
postrfp / fsm / service.py migrate_from_status_actions   1 0 0   100%
postrfp / fsm / service.py evaluate_transition   9 2 0   78%
postrfp / fsm / service.py execute_transition   12 2 0   83%
postrfp / fsm / service.py (no function)   22 0 0   100%
postrfp / jobs / __init__.py (no function)   0 0 0   100%
postrfp / jobs / dagu.py generate_dag_name   1 0 0   100%
postrfp / jobs / dagu.py create_webhook_dag   6 1 0   83%
postrfp / jobs / dagu.py delete_webhook_dag   3 0 0   100%
postrfp / jobs / dagu.py update_webhook_dag   4 0 0   100%
postrfp / jobs / dagu.py build_webhook_dag   11 0 0   100%
postrfp / jobs / dagu.py trigger_webhook_dag   11 4 0   64%
postrfp / jobs / dagu.py build_process_event_dag   3 0 0   100%
postrfp / jobs / dagu.py deploy_process_event_dag   16 5 0   69%
postrfp / jobs / dagu.py generate_datafeed_dag_name   1 0 0   100%
postrfp / jobs / dagu.py create_datafeed_dag   6 6 0   0%
postrfp / jobs / dagu.py delete_datafeed_dag   3 3 0   0%
postrfp / jobs / dagu.py update_datafeed_dag   4 4 0   0%
postrfp / jobs / dagu.py build_datafeed_dag   11 11 0   0%
postrfp / jobs / dagu.py trigger_datafeed_dag   11 11 0   0%
postrfp / jobs / dagu.py (no function)   25 0 0   100%
postrfp / jobs / events / __init__.py (no function)   2 0 0   100%
postrfp / jobs / events / action.py debug_model   3 0 0   100%
postrfp / jobs / events / action.py webhook_evt_types   1 0 0   100%
postrfp / jobs / events / action.py handles.__init__   1 0 0   100%
postrfp / jobs / events / action.py handles.__call__   5 1 0   80%
postrfp / jobs / events / action.py handle_event   7 0 0   100%
postrfp / jobs / events / action.py handler_exists_for   1 0 0   100%
postrfp / jobs / events / action.py run_event_handlers   2 0 0   100%
postrfp / jobs / events / action.py logging_context   2 0 0   100%
postrfp / jobs / events / action.py logging_context._cm   6 0 0   100%
postrfp / jobs / events / action.py EventProcessor.__init__   5 0 0   100%
postrfp / jobs / events / action.py EventProcessor.process   14 1 0   93%
postrfp / jobs / events / action.py EventProcessor.generate_evt_model   1 0 0   100%
postrfp / jobs / events / action.py EventProcessor.moderate_event_acl   0 0 1   100%
postrfp / jobs / events / action.py EventProcessor._iter_watchers   5 0 0   100%
postrfp / jobs / events / action.py EventProcessor.recipients   6 0 0   100%
postrfp / jobs / events / action.py EventProcessor.assign_notifications   7 0 0   100%
postrfp / jobs / events / action.py EventProcessor.get_model   5 0 0   100%
postrfp / jobs / events / action.py EventProcessor.augment_model   0 0 1   100%
postrfp / jobs / events / action.py EventProcessor.send_emails   15 3 0   80%
postrfp / jobs / events / action.py EventProcessor.ping_webhooks   36 0 0   100%
postrfp / jobs / events / action.py EventProcessor.extra   0 0 1   100%
postrfp / jobs / events / action.py VendorStatusAction.extra   2 0 0   100%
postrfp / jobs / events / action.py VendorStatusAction.assign_accepting_admin_to_watchlist   2 0 0   100%
postrfp / jobs / events / action.py IssueReleased.assign_notifications   17 0 0   100%
postrfp / jobs / events / action.py SectionAccess.recipients   10 1 0   90%
postrfp / jobs / events / action.py ProjectNoteHandler.moderate_event_acl   15 0 0   100%
postrfp / jobs / events / action.py ProjectNoteHandler.recipients   4 0 0   100%
postrfp / jobs / events / action.py ProjectNoteHandler.augment_model   4 0 0   100%
postrfp / jobs / events / action.py ScoreCommentHandler.recipients   14 0 1   100%
postrfp / jobs / events / action.py ScoreCommentHandler.augment_model   8 0 0   100%
postrfp / jobs / events / action.py (no function)   82 0 10   100%
postrfp / jobs / events / listeners.py init_event_listeners   10 2 0   80%
postrfp / jobs / events / listeners.py set_status_done_if_no_handler   2 0 0   100%
postrfp / jobs / events / listeners.py enqueue_event_job   3 0 0   100%
postrfp / jobs / events / listeners.py (no function)   11 0 0   100%
postrfp / jobs / executor.py Executor.enqueue_event   0 0 1   100%
postrfp / jobs / executor.py InlineExecutor.enqueue_event   0 0 4   100%
postrfp / jobs / executor.py DaguExecutor.__init__   2 0 0   100%
postrfp / jobs / executor.py DaguExecutor.enqueue_event   10 0 0   100%
postrfp / jobs / executor.py init_jobs_executor   8 2 0   75%
postrfp / jobs / executor.py get_executor   3 1 0   67%
postrfp / jobs / executor.py reset_executor_for_tests   4 0 0   100%
postrfp / jobs / executor.py (no function)   18 0 4   100%
postrfp / jobs / internal / __init__.py (no function)   0 0 0   100%
postrfp / jobs / internal / endpoints.py post_webhooklogger   7 7 0   0%
postrfp / jobs / internal / endpoints.py post_event_process   2 0 0   100%
postrfp / jobs / internal / endpoints.py post_jobstatus   9 1 0   89%
postrfp / jobs / internal / endpoints.py (no function)   16 0 0   100%
postrfp / jobs / internal / schemas.py (no function)   8 0 0   100%
postrfp / jobs / offload.py process_event_task   24 4 0   83%
postrfp / jobs / offload.py (no function)   10 0 0   100%
postrfp / mail / __init__.py (no function)   0 0 0   100%
postrfp / mail / factory.py get_mailer   10 5 0   50%
postrfp / mail / factory.py (no function)   4 0 0   100%
postrfp / mail / postmark.py api_headers   1 0 0   100%
postrfp / mail / postmark.py _handle_response   4 0 0   100%
postrfp / mail / postmark.py send_simple_email   4 0 0   100%
postrfp / mail / postmark.py send_template_email   4 0 0   100%
postrfp / mail / postmark.py send_email   6 6 0   0%
postrfp / mail / postmark.py (no function)   12 0 9   100%
postrfp / mail / protocol.py MailerProtocol.send_email   0 0 1   100%
postrfp / mail / protocol.py (no function)   4 0 2   100%
postrfp / mail / schemas.py build_template_model   5 0 0   100%
postrfp / mail / schemas.py (no function)   65 0 2   100%
postrfp / mail / stub.py clear_mailbox   1 0 0   100%
postrfp / mail / stub.py get_tmpl   4 0 0   100%
postrfp / mail / stub.py render_msg   1 0 0   100%
postrfp / mail / stub.py send_email   14 1 0   93%
postrfp / mail / stub.py (no function)   14 0 0   100%
postrfp / model / __init__.py (no function)   20 0 0   100%
postrfp / model / acl.py Participant.__repr__   0 0 2   100%
postrfp / model / acl.py Participant.role_permissions   1 0 0   100%
postrfp / model / acl.py Participant.role_name   5 2 0   60%
postrfp / model / acl.py Participant.as_dict   2 2 0   0%
postrfp / model / acl.py ProjectPermission.__repr__   0 0 4   100%
postrfp / model / acl.py SectionPermission.__repr__   0 0 1   100%
postrfp / model / acl.py (no function)   41 0 8   100%
postrfp / model / audit / __init__.py (no function)   2 0 0   100%
postrfp / model / audit / event.py PropertyChanges.__init__   1 0 0   100%
postrfp / model / audit / event.py PropertyChanges.add   3 0 0   100%
postrfp / model / audit / event.py PropertyChanges.as_string   1 0 0   100%
postrfp / model / audit / event.py change_to_json   4 0 0   100%
postrfp / model / audit / event.py AuditEvent.__init__   3 0 0   100%
postrfp / model / audit / event.py AuditEvent.__repr__   0 0 1   100%
postrfp / model / audit / event.py AuditEvent.check_object_id_unicode   1 0 0   100%
postrfp / model / audit / event.py AuditEvent.create   12 0 0   100%
postrfp / model / audit / event.py AuditEvent.changes   8 1 0   88%
postrfp / model / audit / event.py AuditEvent.set_changes   1 0 0   100%
postrfp / model / audit / event.py AuditEvent.add_change   4 0 0   100%
postrfp / model / audit / event.py AuditEvent.build_acl   13 0 0   100%
postrfp / model / audit / event.py AuditEvent.add_to_acl   1 0 0   100%
postrfp / model / audit / event.py AuditEvent.set_done   1 0 0   100%
postrfp / model / audit / event.py EventOrgACL.__repr__   0 0 1   100%
postrfp / model / audit / event.py serialize_property_changes   2 0 0   100%
postrfp / model / audit / event.py (no function)   63 0 7   100%
postrfp / model / audit / evt_types.py (no function)   92 0 0   100%
postrfp / model / audit / visible.py check_all_events_assigned   6 0 0   100%
postrfp / model / audit / visible.py (no function)   5 0 0   100%
postrfp / model / composite.py QuestionMeta.__repr__   0 0 1   100%
postrfp / model / composite.py qsignature   1 0 0   100%
postrfp / model / composite.py update_meta_row_stmt   14 0 0   100%
postrfp / model / composite.py update_qmeta_table   10 0 0   100%
postrfp / model / composite.py (no function)   20 0 1   100%
postrfp / model / datafeeds.py Datafeed.__repr__   0 0 1   100%
postrfp / model / datafeeds.py (no function)   16 0 4   100%
postrfp / model / exc.py BusinessRuleViolation.__init__   1 0 0   100%
postrfp / model / exc.py DuplicateDataProvided.__init__   1 0 0   100%
postrfp / model / exc.py ValidationFailure.__init__   5 0 0   100%
postrfp / model / exc.py ValidationFailure.__str__   4 0 0   100%
postrfp / model / exc.py DuplicateQuestionDefinition.__init__   1 0 0   100%
postrfp / model / exc.py (no function)   14 0 15   100%
postrfp / model / fsm.py Workflow.status_by_name   1 1 0   0%
postrfp / model / fsm.py Workflow.get_initial_status   4 1 0   75%
postrfp / model / fsm.py Workflow.__repr__   0 0 1   100%
postrfp / model / fsm.py Workflow.validate   15 3 0   80%
postrfp / model / fsm.py Status.has_action   1 0 0   100%
postrfp / model / fsm.py Status.__repr__   0 0 1   100%
postrfp / model / fsm.py Transition.has_functions   1 0 0   100%
postrfp / model / fsm.py Transition.__repr__   0 0 1   100%
postrfp / model / fsm.py StatusAction.validate_action   3 0 0   100%
postrfp / model / fsm.py (no function)   70 0 5   100%
postrfp / model / fsm_context / __init__.py (no function)   0 0 0   100%
postrfp / model / fsm_context / project_context.py get_project_context_data   3 0 0   100%
postrfp / model / fsm_context / project_context.py (no function)   27 0 2   100%
postrfp / model / graph.py RelationshipType.__repr__   0 0 1   100%
postrfp / model / graph.py Edge.relationship   1 1 0   0%
postrfp / model / graph.py Edge.__repr__   0 0 1   100%
postrfp / model / graph.py (no function)   25 0 2   100%
postrfp / model / helpers.py validate_section_children   9 0 0   100%
postrfp / model / helpers.py audited_patch   7 0 0   100%
postrfp / model / helpers.py random_string   1 0 0   100%
postrfp / model / helpers.py (no function)   7 0 3   100%
postrfp / model / humans.py ConsultantClientRelationship.__repr__   0 0 1   100%
postrfp / model / humans.py ConsultantClientRelationship.__init__   2 0 0   100%
postrfp / model / humans.py Organisation.__init__   2 0 0   100%
postrfp / model / humans.py Organisation.__repr__   0 0 1   100%
postrfp / model / humans.py Organisation.is_consultant   1 0 0   100%
postrfp / model / humans.py Organisation.is_buyside   1 0 0   100%
postrfp / model / humans.py Organisation.has_supplier   5 0 0   100%
postrfp / model / humans.py custom_perms   1 0 0   100%
postrfp / model / humans.py RefreshToken.__repr__   0 0 1   100%
postrfp / model / humans.py User.__init__   3 0 0   100%
postrfp / model / humans.py User.__repr__   0 0 1   100%
postrfp / model / humans.py User.custom_permissions   2 0 0   100%
postrfp / model / humans.py User.is_restricted   1 0 0   100%
postrfp / model / humans.py User.is_restricted   1 0 0   100%
postrfp / model / humans.py User.has_permission   5 0 0   100%
postrfp / model / humans.py User.check_permission   2 0 0   100%
postrfp / model / humans.py User.check_is_standard   2 0 0   100%
postrfp / model / humans.py User.builtin_permissions   6 0 0   100%
postrfp / model / humans.py User.all_permissions   1 0 0   100%
postrfp / model / humans.py User.sorted_permissions   1 0 0   100%
postrfp / model / humans.py User.add_role   4 0 0   100%
postrfp / model / humans.py User.is_in_role   1 0 0   100%
postrfp / model / humans.py User.is_administrator   1 0 0   100%
postrfp / model / humans.py User.can_view_section_id   5 0 0   100%
postrfp / model / humans.py UserRole.__repr__   0 0 1   100%
postrfp / model / humans.py munged_id   5 0 0   100%
postrfp / model / humans.py CustomRole.__repr__   0 0 1   100%
postrfp / model / humans.py CustomRolePermission.__repr__   0 0 1   100%
postrfp / model / humans.py CustomRolePermission.known_permission   3 0 0   100%
postrfp / model / humans.py OrganisationCategory.__repr__   0 0 1   100%
postrfp / model / humans.py FailedLoginAttempt.__repr__   0 0 1   100%
postrfp / model / humans.py (no function)   162 0 17   100%
postrfp / model / issue.py IssueStatusType.process_bind_param   5 0 0   100%
postrfp / model / issue.py IssueStatusType.process_result_value   1 0 0   100%
postrfp / model / issue.py Issue.get_attachment   1 0 0   100%
postrfp / model / issue.py Issue.can_view_winloss   1 0 0   100%
postrfp / model / issue.py Issue.can_view_sql   1 0 0   100%
postrfp / model / issue.py Issue.__repr__   0 0 4   100%
postrfp / model / issue.py Issue.deadline_passed   3 0 0   100%
postrfp / model / issue.py Issue.scoreable_filter   2 0 0   100%
postrfp / model / issue.py Issue.log_event   6 0 0   100%
postrfp / model / issue.py Issue.response_state_for_q   1 0 0   100%
postrfp / model / issue.py Issue.add_watcher   4 0 0   100%
postrfp / model / issue.py check_org_or_email   3 0 0   100%
postrfp / model / issue.py Score.__repr__   0 0 1   100%
postrfp / model / issue.py Score.question_id   1 0 0   100%
postrfp / model / issue.py Score.validate_scoreset   2 0 0   100%
postrfp / model / issue.py Score.check_score_value   3 0 0   100%
postrfp / model / issue.py ScoreComment.user_name   1 0 0   100%
postrfp / model / issue.py IssueAttachment.url   1 0 0   100%
postrfp / model / issue.py IssueAttachment.respondent_name   1 0 0   100%
postrfp / model / issue.py issue_after_insert_handler   7 1 0   86%
postrfp / model / issue.py (no function)   122 0 6   100%
postrfp / model / jobs.py JobExecution.datafeed_uid   3 1 0   67%
postrfp / model / jobs.py JobExecution.event_id   1 0 0   100%
postrfp / model / jobs.py JobExecution.error_message   1 0 0   100%
postrfp / model / jobs.py JobExecution.error_message   1 1 0   0%
postrfp / model / jobs.py JobExecution.__repr__   0 0 1   100%
postrfp / model / jobs.py (no function)   41 0 5   100%
postrfp / model / meta.py human_friendly_bytes   7 0 0   100%
postrfp / model / meta.py Visitor.hello_section   0 0 1   100%
postrfp / model / meta.py Visitor.goodbye_section   0 0 1   100%
postrfp / model / meta.py Visitor.visit_question   0 0 8   100%
postrfp / model / meta.py Base.as_dict   2 0 0   100%
postrfp / model / meta.py Base.__repr__   0 0 1   100%
postrfp / model / meta.py Base._instance_session   1 0 0   100%
postrfp / model / meta.py AttachmentMixin._make_safe_filename   3 0 0   100%
postrfp / model / meta.py AttachmentMixin.guess_set_mimetype   3 0 0   100%
postrfp / model / meta.py AttachmentMixin.size   1 0 0   100%
postrfp / model / meta.py AttachmentMixin.__repr__   0 0 3   100%
postrfp / model / meta.py HTTPHeadersMixin.validate_headers   13 8 0   38%
postrfp / model / meta.py SqidsMixin.__init_subclass__   3 1 0   67%
postrfp / model / meta.py SqidsMixin._get_sqids   5 1 0   80%
postrfp / model / meta.py SqidsMixin.uid   4 1 0   75%
postrfp / model / meta.py SqidsMixin.decode_uid   4 4 0   0%
postrfp / model / meta.py (no function)   42 0 13   100%
postrfp / model / misc.py Category.__repr__   0 0 1   100%
postrfp / model / misc.py clean_search_term   15 0 0   100%
postrfp / model / misc.py (no function)   15 0 4   100%
postrfp / model / notes.py ProjectNote.__repr__   0 0 3   100%
postrfp / model / notes.py ProjectNote.distribution   12 0 0   100%
postrfp / model / notes.py ProjectNote.pretty_distribution   1 0 0   100%
postrfp / model / notes.py (no function)   36 0 3   100%
postrfp / model / notify.py ProjectWatchList.__repr__   0 0 1   100%
postrfp / model / notify.py IssueWatchList.__repr__   0 0 1   100%
postrfp / model / notify.py EmailNotification.__repr__   0 0 4   100%
postrfp / model / notify.py EmailNotification.set_sent   2 0 0   100%
postrfp / model / notify.py EmailNotification.set_delivered   2 0 0   100%
postrfp / model / notify.py EmailNotification.set_bounced   1 0 0   100%
postrfp / model / notify.py EmailNotification.set_failed   1 0 0   100%
postrfp / model / notify.py WebhookSubscription.__repr__   0 0 1   100%
postrfp / model / notify.py (no function)   64 0 10   100%
postrfp / model / project.py LazyParticipants.__init__   1 0 0   100%
postrfp / model / project.py LazyParticipants.roleq   1 0 0   100%
postrfp / model / project.py LazyParticipants.__contains__   6 1 0   83%
postrfp / model / project.py LazyParticipants.__iter__   2 0 0   100%
postrfp / model / project.py LazyParticipants.__len__   1 0 0   100%
postrfp / model / project.py LazyParticipants.get   1 0 0   100%
postrfp / model / project.py LazyParticipants.add   1 0 0   100%
postrfp / model / project.py LazyParticipants.clear   1 0 0   100%
postrfp / model / project.py LazyRestrictedUsers.__init__   1 0 0   100%
postrfp / model / project.py LazyRestrictedUsers.project_perms_query   4 0 0   100%
postrfp / model / project.py LazyRestrictedUsers.__contains__   5 1 0   80%
postrfp / model / project.py LazyRestrictedUsers.__iter__   2 0 0   100%
postrfp / model / project.py Project.__init__   2 0 0   100%
postrfp / model / project.py Project.issues   1 0 0   100%
postrfp / model / project.py Project.issue_by_id   1 0 0   100%
postrfp / model / project.py Project.question_by_number   1 0 0   100%
postrfp / model / project.py Project.published_issues   1 0 0   100%
postrfp / model / project.py Project.opportunity_issues   1 0 0   100%
postrfp / model / project.py Project.respondent_watchers   2 0 0   100%
postrfp / model / project.py Project.iter_all_watchers   2 0 0   100%
postrfp / model / project.py Project.deadline_passed   3 0 0   100%
postrfp / model / project.py Project.scoreable_issues   4 0 0   100%
postrfp / model / project.py Project.get_issue   1 0 0   100%
postrfp / model / project.py Project.__repr__   0 0 1   100%
postrfp / model / project.py Project.participants   1 0 0   100%
postrfp / model / project.py Project.restricted_users   1 0 0   100%
postrfp / model / project.py Project.participant_role_permissions   5 2 0   60%
postrfp / model / project.py Project.list_attachments   2 0 0   100%
postrfp / model / project.py Project.get_attachment   2 0 0   100%
postrfp / model / project.py Project.list_issue_attachments   3 0 0   100%
postrfp / model / project.py Project.check_attachments_visible   2 0 0   100%
postrfp / model / project.py Project.get_participant   1 0 0   100%
postrfp / model / project.py Project.query_visible_questions   3 0 0   100%
postrfp / model / project.py Project.visit_questionnaire   10 0 0   100%
postrfp / model / project.py Project.print_questionnaire   0 0 1   100%
postrfp / model / project.py Project.get_or_create_default_weighting_set_id   9 1 0   89%
postrfp / model / project.py Project.calculate_normalised_weights   1 0 0   100%
postrfp / model / project.py Project.save_total_weights   4 1 0   75%
postrfp / model / project.py Project.delete_total_weights   1 0 0   100%
postrfp / model / project.py Project.add_issue   1 0 0   100%
postrfp / model / project.py Project.add_watcher   4 0 0   100%
postrfp / model / project.py Project.log_approval   3 0 0   100%
postrfp / model / project.py Project.contains_section_id   1 0 0   100%
postrfp / model / project.py Project.get_context_data   2 0 0   100%
postrfp / model / project.py Project.get_context_schema   2 0 0   100%
postrfp / model / project.py ProjectField.__repr__   0 0 4   100%
postrfp / model / project.py ProjectApproval.__repr__   0 0 1   100%
postrfp / model / project.py PrintVisitor.__init__   0 0 1   100%
postrfp / model / project.py PrintVisitor.inset   0 0 1   100%
postrfp / model / project.py PrintVisitor.hello_section   0 0 22   100%
postrfp / model / project.py PrintVisitor.goodbye_section   0 0 1   100%
postrfp / model / project.py PrintVisitor.visit_question   0 0 7   100%
postrfp / model / project.py (no function)   151 0 23   100%
postrfp / model / questionnaire / __init__.py (no function)   0 0 0   100%
postrfp / model / questionnaire / answering.py AnswerReport.__repr__   0 0 1   100%
postrfp / model / questionnaire / answering.py ResponseStatusCol.process_bind_param   1 0 0   100%
postrfp / model / questionnaire / answering.py ResponseStatusCol.process_result_value   1 0 0   100%
postrfp / model / questionnaire / answering.py Answer.as_dict   1 1 0   0%
postrfp / model / questionnaire / answering.py Answer.__repr__   0 0 1   100%
postrfp / model / questionnaire / answering.py AAttachment.__repr__   0 0 1   100%
postrfp / model / questionnaire / answering.py (no function)   58 0 7   100%
postrfp / model / questionnaire / b36.py base36encode   13 0 0   100%
postrfp / model / questionnaire / b36.py to_b36   3 0 0   100%
postrfp / model / questionnaire / b36.py from_b36   5 0 0   100%
postrfp / model / questionnaire / b36.py visible_relatives_regex   5 0 0   100%
postrfp / model / questionnaire / b36.py Node.base36   1 1 0   0%
postrfp / model / questionnaire / b36.py materialised_paths   20 0 0   100%
postrfp / model / questionnaire / b36.py parse_path   1 0 0   100%
postrfp / model / questionnaire / b36.py nearest_common_ancestor   13 0 0   100%
postrfp / model / questionnaire / b36.py (no function)   17 0 2   100%
postrfp / model / questionnaire / cte_weights.py calculate_absolute_weights_from_hierarchy   17 0 0   100%
postrfp / model / questionnaire / cte_weights.py calculate_question_weights   23 0 0   100%
postrfp / model / questionnaire / cte_weights.py save_total_weights_cte   16 0 0   100%
postrfp / model / questionnaire / cte_weights.py (no function)   11 0 2   100%
postrfp / model / questionnaire / nodes.py _ModelDumpable.model_dump   0 0 1   100%
postrfp / model / questionnaire / nodes.py NodeMixin.number   1 0 0   100%
postrfp / model / questionnaire / nodes.py NodeMixin.number   1 0 0   100%
postrfp / model / questionnaire / nodes.py Section.__repr__   0 0 1   100%
postrfp / model / questionnaire / nodes.py Section.as_dict   1 0 0   100%
postrfp / model / questionnaire / nodes.py Section.renumber   4 0 0   100%
postrfp / model / questionnaire / nodes.py Section.accept   7 0 0   100%
postrfp / model / questionnaire / nodes.py Section.is_top_level   1 0 0   100%
postrfp / model / questionnaire / nodes.py Section.absolute_weight   12 3 0   75%
postrfp / model / questionnaire / nodes.py Section.absolute_weight   1 0 0   100%
postrfp / model / questionnaire / nodes.py Section.set_question_positions   2 0 0   100%
postrfp / model / questionnaire / nodes.py Section.set_subsection_positions   2 1 0   50%
postrfp / model / questionnaire / nodes.py Section.assign_project_id   3 0 0   100%
postrfp / model / questionnaire / nodes.py QuestionDefinition.__repr__   0 0 1   100%
postrfp / model / questionnaire / nodes.py QuestionDefinition.__eq__   5 1 0   80%
postrfp / model / questionnaire / nodes.py QuestionDefinition.__hash__   1 1 0   0%
postrfp / model / questionnaire / nodes.py QuestionDefinition.is_shared   3 1 0   67%
postrfp / model / questionnaire / nodes.py QuestionDefinition.get_element   1 0 0   100%
postrfp / model / questionnaire / nodes.py QuestionDefinition.as_dict   13 0 0   100%
postrfp / model / questionnaire / nodes.py QuestionDefinition.answerable_elements   1 0 0   100%
postrfp / model / questionnaire / nodes.py QuestionDefinition.add_element   3 0 0   100%
postrfp / model / questionnaire / nodes.py QuestionDefinition.is_tabular   1 0 0   100%
postrfp / model / questionnaire / nodes.py QuestionDefinition.column_count   3 0 0   100%
postrfp / model / questionnaire / nodes.py QuestionDefinition.row_count   3 0 0   100%
postrfp / model / questionnaire / nodes.py QuestionDefinition.grid_area   1 0 0   100%
postrfp / model / questionnaire / nodes.py QuestionDefinition.occupied_area   1 0 0   100%
postrfp / model / questionnaire / nodes.py QuestionDefinition.is_table_valid   1 0 0   100%
postrfp / model / questionnaire / nodes.py QuestionDefinition.build   11 0 0   100%
postrfp / model / questionnaire / nodes.py SaveAnswersResult.__init__   3 0 0   100%
postrfp / model / questionnaire / nodes.py QuestionInstance.__repr__   0 0 1   100%
postrfp / model / questionnaire / nodes.py QuestionInstance.__eq__   3 1 0   67%
postrfp / model / questionnaire / nodes.py QuestionInstance.__hash__   1 0 0   100%
postrfp / model / questionnaire / nodes.py QuestionInstance.answers_for_issue   1 0 0   100%
postrfp / model / questionnaire / nodes.py QuestionInstance.single_vendor_dict   2 0 0   100%
postrfp / model / questionnaire / nodes.py QuestionInstance.title   1 0 0   100%
postrfp / model / questionnaire / nodes.py QuestionInstance.elements   1 0 0   100%
postrfp / model / questionnaire / nodes.py QuestionInstance.as_dict   1 1 0   0%
postrfp / model / questionnaire / nodes.py QuestionInstance.is_autoscored   6 0 0   100%
postrfp / model / questionnaire / nodes.py QuestionInstance.absolute_weight   7 0 0   100%
postrfp / model / questionnaire / nodes.py QuestionInstance.absolute_weight   1 0 0   100%
postrfp / model / questionnaire / nodes.py QuestionInstance.validate_and_save_answers   27 0 0   100%
postrfp / model / questionnaire / nodes.py (no function)   122 0 11   100%
postrfp / model / questionnaire / qelements.py QElement.__eq__   9 3 0   67%
postrfp / model / questionnaire / qelements.py QElement.__hash__   1 1 0   0%
postrfp / model / questionnaire / qelements.py QElement.get_answer   1 0 0   100%
postrfp / model / questionnaire / qelements.py QElement.get_question_instance   1 0 0   100%
postrfp / model / questionnaire / qelements.py QElement.split_choice_string   5 0 0   100%
postrfp / model / questionnaire / qelements.py QElement.build   3 0 0   100%
postrfp / model / questionnaire / qelements.py QElement.cell_area   1 0 0   100%
postrfp / model / questionnaire / qelements.py QElement.summary   1 0 0   100%
postrfp / model / questionnaire / qelements.py QElement.validate   0 0 1   100%
postrfp / model / questionnaire / qelements.py Checkbox.validate   3 0 0   100%
postrfp / model / questionnaire / qelements.py TextInput.as_dict   1 0 0   100%
postrfp / model / questionnaire / qelements.py TextInput.validate   3 0 0   100%
postrfp / model / questionnaire / qelements.py TextInput.summary   1 0 0   100%
postrfp / model / questionnaire / qelements.py MultipleChoice.as_dict   4 0 0   100%
postrfp / model / questionnaire / qelements.py MultipleChoice.validate   5 0 0   100%
postrfp / model / questionnaire / qelements.py MultipleChoice.summary   3 0 0   100%
postrfp / model / questionnaire / qelements.py SupportingAttachment.validate   2 0 0   100%
postrfp / model / questionnaire / qelements.py SupportingAttachment.summary   1 0 0   100%
postrfp / model / questionnaire / qelements.py (no function)   96 0 5   100%
postrfp / model / questionnaire / renumber.py fetch_section_tuples   8 0 0   100%
postrfp / model / questionnaire / renumber.py save_section_numbers   6 0 0   100%
postrfp / model / questionnaire / renumber.py update_qinstance_numbers   3 0 0   100%
postrfp / model / questionnaire / renumber.py renumber_tree   4 0 0   100%
postrfp / model / questionnaire / renumber.py (no function)   8 0 0   100%
postrfp / model / questionnaire / score_views.py QuestionScoreComponent.get_calculated_score   16 3 0   81%
postrfp / model / questionnaire / score_views.py (no function)   20 0 0   100%
postrfp / model / questionnaire / weightings.py WeightingSet.__repr__   0 0 1   100%
postrfp / model / questionnaire / weightings.py Weighting.__repr__   0 0 1   100%
postrfp / model / questionnaire / weightings.py TotalWeighting.__repr__   0 0 1   100%
postrfp / model / questionnaire / weightings.py (no function)   36 0 6   100%
postrfp / model / ref.py ContentSpec.validate_spec   2 0 0   100%
postrfp / model / ref.py ContentSpec.jsonschema_validate   1 0 0   100%
postrfp / model / ref.py ContentSpec.__repr__   0 0 1   100%
postrfp / model / ref.py Content.add_relationship   4 0 0   100%
postrfp / model / ref.py Content.jsonschema_validate   9 1 0   89%
postrfp / model / ref.py Content.etag   1 0 0   100%
postrfp / model / ref.py Content.__repr__   0 0 1   100%
postrfp / model / ref.py Subject.__repr__   0 0 1   100%
postrfp / model / ref.py ContentSpecMap.__repr__   0 0 1   100%
postrfp / model / ref.py ContentQElementPair.__repr__   0 0 1   100%
postrfp / model / ref.py extract_text_from_json   4 0 0   100%
postrfp / model / ref.py extract_text_from_json.recurse   8 2 0   75%
postrfp / model / ref.py validate_schema_not_draft_before_insert   6 0 0   100%
postrfp / model / ref.py update_content_fts_before_insert   1 0 0   100%
postrfp / model / ref.py validate_schema_not_draft_before_update   9 0 0   100%
postrfp / model / ref.py update_content_fts_before_update   1 0 0   100%
postrfp / model / ref.py (no function)   136 0 7   100%
postrfp / model / tags.py (no function)   17 0 0   100%
postrfp / ref / __init__.py (no function)   0 0 0   100%
postrfp / ref / handlers / __init__.py (no function)   2 0 0   100%
postrfp / ref / handlers / administrators.py post_policy   12 0 0   100%
postrfp / ref / handlers / administrators.py delete_policy   13 0 0   100%
postrfp / ref / handlers / administrators.py (no function)   11 0 0   100%
postrfp / ref / handlers / designers.py get_specs   8 0 0   100%
postrfp / ref / handlers / designers.py get_spec   2 0 0   100%
postrfp / ref / handlers / designers.py post_spec   5 0 0   100%
postrfp / ref / handlers / designers.py put_spec   10 1 0   90%
postrfp / ref / handlers / designers.py patch_spec   28 0 2   100%
postrfp / ref / handlers / designers.py delete_spec   3 0 0   100%
postrfp / ref / handlers / designers.py (no function)   21 0 0   100%
postrfp / ref / handlers / editors.py build_saved_content   3 0 0   100%
postrfp / ref / handlers / editors.py get_contents   18 0 0   100%
postrfp / ref / handlers / editors.py get_content   5 1 0   80%
postrfp / ref / handlers / editors.py post_content   4 0 0   100%
postrfp / ref / handlers / editors.py put_content   4 0 0   100%
postrfp / ref / handlers / editors.py patch_content   4 0 0   100%
postrfp / ref / handlers / editors.py get_content_validation   9 1 0   89%
postrfp / ref / handlers / editors.py delete_content   6 1 0   83%
postrfp / ref / handlers / editors.py build_content_spec_map_document   2 0 0   100%
postrfp / ref / handlers / editors.py _require_same_org   3 0 0   100%
postrfp / ref / handlers / editors.py get_content_maps   10 0 0   100%
postrfp / ref / handlers / editors.py get_content_map   3 0 0   100%
postrfp / ref / handlers / editors.py post_content_map   16 1 0   94%
postrfp / ref / handlers / editors.py put_content_map   21 1 0   95%
postrfp / ref / handlers / editors.py delete_content_map   4 0 0   100%
postrfp / ref / handlers / editors.py get_spec_pointers   5 0 0   100%
postrfp / ref / handlers / editors.py (no function)   43 0 0   100%
postrfp / ref / handlers / readers.py get_search   4 0 0   100%
postrfp / ref / handlers / readers.py (no function)   9 0 0   100%
postrfp / ref / handlers / subjects.py get_subjects   18 0 0   100%
postrfp / ref / handlers / subjects.py get_subject   2 0 0   100%
postrfp / ref / handlers / subjects.py post_subject   8 0 0   100%
postrfp / ref / handlers / subjects.py put_subject   14 0 0   100%
postrfp / ref / handlers / subjects.py delete_subject   9 0 0   100%
postrfp / ref / handlers / subjects.py get_subject_children   2 0 0   100%
postrfp / ref / handlers / subjects.py (no function)   20 0 0   100%
postrfp / ref / json_migration / __init__.py (no function)   2 0 0   100%
postrfp / ref / json_migration / patches.py PatchBuilder.__init__   1 0 0   100%
postrfp / ref / json_migration / patches.py PatchBuilder._parse_schema_path   8 0 0   100%
postrfp / ref / json_migration / patches.py PatchBuilder._parse_data_path   3 0 0   100%
postrfp / ref / json_migration / patches.py PatchBuilder._get_schema_value_at_path   7 0 0   100%
postrfp / ref / json_migration / patches.py PatchBuilder._build_field_schema   4 0 0   100%
postrfp / ref / json_migration / patches.py PatchBuilder._handle_required_field_move   10 0 0   100%
postrfp / ref / json_migration / patches.py PatchBuilder.add_optional_field   4 0 0   100%
postrfp / ref / json_migration / patches.py PatchBuilder.add_required_field   13 0 0   100%
postrfp / ref / json_migration / patches.py PatchBuilder.delete_field   12 0 0   100%
postrfp / ref / json_migration / patches.py PatchBuilder.rename_field   19 0 0   100%
postrfp / ref / json_migration / patches.py PatchBuilder.move_field   16 0 0   100%
postrfp / ref / json_migration / patches.py (no function)   18 0 0   100%
postrfp / ref / permissions.py AuthorizationResult.get_user_friendly_message   4 1 0   75%
postrfp / ref / permissions.py AuthorizationResult.to_dict   1 1 0   0%
postrfp / ref / permissions.py CELAuthorizationChecker.__init__   8 2 0   75%
postrfp / ref / permissions.py CELAuthorizationChecker.check_authorization   7 0 0   100%
postrfp / ref / permissions.py AuthorizationDeniedError.__init__   5 0 0   100%
postrfp / ref / permissions.py check_content_authorization   2 0 0   100%
postrfp / ref / permissions.py (no function)   19 0 0   100%
postrfp / ref / service / __init__.py (no function)   0 0 0   100%
postrfp / ref / service / auth_service.py update_content_policy   3 0 0   100%
postrfp / ref / service / auth_service.py update_subject_policy   3 0 0   100%
postrfp / ref / service / auth_service.py update_content_spec_policy   3 0 0   100%
postrfp / ref / service / auth_service.py get_policy_info   1 0 0   100%
postrfp / ref / service / auth_service.py (no function)   8 0 0   100%
postrfp / ref / service / content_service.py _update_content_tags   8 1 0   88%
postrfp / ref / service / content_service.py _update_content_subjects   8 1 0   88%
postrfp / ref / service / content_service.py create_content   7 0 0   100%
postrfp / ref / service / content_service.py update_content   11 0 0   100%
postrfp / ref / service / content_service.py patch_content_doc   14 0 0   100%
postrfp / ref / service / content_service.py fetch_answer_references   6 0 0   100%
postrfp / ref / service / content_service.py fetch_content_spec   1 0 0   100%
postrfp / ref / service / content_service.py jsonpatch_from_answers   7 0 0   100%
postrfp / ref / service / content_service.py (no function)   21 0 1   100%
postrfp / ref / service / helpers.py fetch_related_items   9 0 0   100%
postrfp / ref / service / helpers.py (no function)   4 0 0   100%
postrfp / ref / service / reference_validator.py ContentReferenceValidator.__init__   2 0 0   100%
postrfp / ref / service / reference_validator.py ContentReferenceValidator.get_valid_paths   4 0 0   100%
postrfp / ref / service / reference_validator.py ContentReferenceValidator._extract_paths_from_schema   22 0 0   100%
postrfp / ref / service / reference_validator.py ContentReferenceValidator._resolve_ref   9 0 0   100%
postrfp / ref / service / reference_validator.py ContentReferenceValidator.validate_references_batch   11 0 0   100%
postrfp / ref / service / reference_validator.py ContentReferenceValidator.validate_pairs   8 0 0   100%
postrfp / ref / service / reference_validator.py ContentReferenceValidator._is_valid_array_reference   8 0 0   100%
postrfp / ref / service / reference_validator.py ContentReferenceValidator._get_error_message   4 0 0   100%
postrfp / ref / service / reference_validator.py ContentReferenceValidator.validate_reference   4 0 0   100%
postrfp / ref / service / reference_validator.py (no function)   13 0 0   100%
postrfp / ref / service / search_service.py search_content_by_subject   12 2 0   83%
postrfp / ref / service / search_service.py (no function)   7 0 0   100%
postrfp / shared / __init__.py (no function)   0 0 0   100%
postrfp / shared / attachments.py get_sub_path   14 0 0   100%
postrfp / shared / attachments.py local_to_full   2 0 0   100%
postrfp / shared / attachments.py root_attachments_dir   1 0 0   100%
postrfp / shared / attachments.py get_full_path   2 0 0   100%
postrfp / shared / attachments.py save_to_disc   9 0 0   100%
postrfp / shared / attachments.py delete_from_disc   4 0 0   100%
postrfp / shared / attachments.py find_orphan_answer_attachment   4 0 0   100%
postrfp / shared / attachments.py delete_orphan_answer_attachments   17 0 0   100%
postrfp / shared / attachments.py save_issue_attachment   13 0 0   100%
postrfp / shared / attachments.py save_project_attachment   13 0 0   100%
postrfp / shared / attachments.py delete_project_attachment   4 0 0   100%
postrfp / shared / attachments.py (no function)   23 0 3   100%
postrfp / shared / constants.py (no function)   17 0 2   100%
postrfp / shared / decorators.py _set_exposed   4 0 0   100%
postrfp / shared / decorators.py _check_docstring   3 0 0   100%
postrfp / shared / decorators.py http   3 0 0   100%
postrfp / shared / decorators.py http_etag   4 0 0   100%
postrfp / shared / decorators.py http_auth.__init__   4 0 0   100%
postrfp / shared / decorators.py http_auth.__call__   4 0 0   100%
postrfp / shared / decorators.py (no function)   15 0 0   100%
postrfp / shared / exceptions.py AuthorizationFailure.__init__   13 0 0   100%
postrfp / shared / exceptions.py AuthorizationFailure.__repr__   0 0 4   100%
postrfp / shared / exceptions.py AuthorizationFailure.__str__   1 0 0   100%
postrfp / shared / exceptions.py LacksPermission.__init__   2 0 0   100%
postrfp / shared / exceptions.py (no function)   10 0 13   100%
postrfp / shared / expression.py evaluate_expression   9 2 0   78%
postrfp / shared / expression.py transform_payload   12 0 0   100%
postrfp / shared / expression.py (no function)   6 0 0   100%
postrfp / shared / fetch / __init__.py (no function)   11 0 0   100%
postrfp / shared / fetch / answq.py issue   1 0 0   100%
postrfp / shared / fetch / answq.py answer   1 0 0   100%
postrfp / shared / fetch / answq.py answers_in_issues_query   1 0 0   100%
postrfp / shared / fetch / answq.py visible_answers   6 0 0   100%
postrfp / shared / fetch / answq.py element_answers   2 0 0   100%
postrfp / shared / fetch / answq.py importable_answer_lookup   4 0 0   100%
postrfp / shared / fetch / answq.py answer_attachments_q   7 0 0   100%
postrfp / shared / fetch / answq.py answering_stats   5 0 0   100%
postrfp / shared / fetch / answq.py (no function)   15 0 0   100%
postrfp / shared / fetch / audq.py audit_events   4 0 0   100%
postrfp / shared / fetch / audq.py project_audit_events   2 0 0   100%
postrfp / shared / fetch / audq.py latest_event   2 0 0   100%
postrfp / shared / fetch / audq.py webhooks_for_event   4 0 0   100%
postrfp / shared / fetch / audq.py (no function)   11 0 0   100%
postrfp / shared / fetch / autoscoreq.py _build_score_key   1 0 0   100%
postrfp / shared / fetch / autoscoreq.py _get_multichoice_elements_with_choices   1 0 0   100%
postrfp / shared / fetch / autoscoreq.py _process_answer   9 4 0   56%
postrfp / shared / fetch / autoscoreq.py _fetch_and_process_question_answers   7 7 0   0%
postrfp / shared / fetch / autoscoreq.py _fetch_all_autoscore_answers_batch   22 2 0   91%
postrfp / shared / fetch / autoscoreq.py _calculate_final_score   1 0 0   100%
postrfp / shared / fetch / autoscoreq.py _create_autoscore_entry   1 0 0   100%
postrfp / shared / fetch / autoscoreq.py generate_autoscores   19 3 0   84%
postrfp / shared / fetch / autoscoreq.py scores_dict   8 8 0   0%
postrfp / shared / fetch / autoscoreq.py scores_dict_scoreset   11 1 0   91%
postrfp / shared / fetch / autoscoreq.py (no function)   23 0 0   100%
postrfp / shared / fetch / flattening.py _qelement_to_grid_element   1 0 0   100%
postrfp / shared / fetch / flattening.py ProjectionGrid.__init__   2 0 0   100%
postrfp / shared / fetch / flattening.py ProjectionGrid.get_path   1 0 0   100%
postrfp / shared / fetch / flattening.py ProjectionGrid.row_headers   1 0 0   100%
postrfp / shared / fetch / flattening.py ProjectionGrid.col_headers   1 0 0   100%
postrfp / shared / fetch / flattening.py _process_complex_table   11 1 0   91%
postrfp / shared / fetch / flattening.py embeddings_for_issue   5 5 0   0%
postrfp / shared / fetch / flattening.py build_label_answer_mapping   12 0 0   100%
postrfp / shared / fetch / flattening.py _detect_form_structure   14 3 0   79%
postrfp / shared / fetch / flattening.py _create_output_item   1 0 0   100%
postrfp / shared / fetch / flattening.py _normalize_value   8 0 0   100%
postrfp / shared / fetch / flattening.py _process_single_column_form   12 0 0   100%
postrfp / shared / fetch / flattening.py _process_two_column_form   9 0 0   100%
postrfp / shared / fetch / flattening.py _determine_label_with_fallback   5 0 0   100%
postrfp / shared / fetch / flattening.py (no function)   20 0 0   100%
postrfp / shared / fetch / nodesq.py light_nodes   5 0 0   100%
postrfp / shared / fetch / nodesq.py light_tree   24 5 0   79%
postrfp / shared / fetch / nodesq.py (no function)   7 0 0   100%
postrfp / shared / fetch / projq.py project   4 0 0   100%
postrfp / shared / fetch / projq.py projects_with_watched   7 0 0   100%
postrfp / shared / fetch / projq.py participant_notes_query   5 0 0   100%
postrfp / shared / fetch / projq.py vendor_notes   3 0 0   100%
postrfp / shared / fetch / projq.py note   1 0 0   100%
postrfp / shared / fetch / projq.py issues_for_respondent   3 0 0   100%
postrfp / shared / fetch / projq.py category_for_user   3 0 0   100%
postrfp / shared / fetch / projq.py (no function)   15 0 0   100%
postrfp / shared / fetch / quesq.py qelement   4 1 0   75%
postrfp / shared / fetch / quesq.py question   5 0 0   100%
postrfp / shared / fetch / quesq.py question_of_project   1 0 0   100%
postrfp / shared / fetch / quesq.py question_of_section   1 0 0   100%
postrfp / shared / fetch / quesq.py question_instance_by_number   1 0 0   100%
postrfp / shared / fetch / quesq.py response_states   7 0 0   100%
postrfp / shared / fetch / quesq.py answered_questions   10 0 0   100%
postrfp / shared / fetch / quesq.py iter_quick_questions   37 0 0   100%
postrfp / shared / fetch / quesq.py questionnaire_stats   10 0 0   100%
postrfp / shared / fetch / quesq.py unanswered_mandatory   3 0 0   100%
postrfp / shared / fetch / quesq.py _question_ids_q   4 0 0   100%
postrfp / shared / fetch / quesq.py importable_answers   3 0 0   100%
postrfp / shared / fetch / quesq.py duplicated_qdefs   9 0 0   100%
postrfp / shared / fetch / quesq.py (no function)   26 0 0   100%
postrfp / shared / fetch / scoreq.py scores   5 0 0   100%
postrfp / shared / fetch / scoreq.py or_create_score   13 1 0   92%
postrfp / shared / fetch / scoreq.py or_create_scores_batch   27 4 0   85%
postrfp / shared / fetch / scoreq.py scoring_data   4 0 0   100%
postrfp / shared / fetch / scoreq.py score_totals_by_project   2 0 0   100%
postrfp / shared / fetch / scoreq.py score_gaps   30 1 0   97%
postrfp / shared / fetch / scoreq.py question_scoresummary   5 0 0   100%
postrfp / shared / fetch / scoreq.py subsection_scoressummary   4 0 0   100%
postrfp / shared / fetch / scoreq.py section_scoresummary   2 0 0   100%
postrfp / shared / fetch / scoreq.py get_permission_for_scoreset   3 0 0   100%
postrfp / shared / fetch / scoreq.py (no function)   28 0 3   100%
postrfp / shared / fetch / searchq.py search   15 0 1   100%
postrfp / shared / fetch / searchq.py (no function)   7 0 0   100%
postrfp / shared / fetch / secq.py section   1 0 0   100%
postrfp / shared / fetch / secq.py section_of_project   1 0 0   100%
postrfp / shared / fetch / secq.py section_by_id   1 0 0   100%
postrfp / shared / fetch / secq.py sections   3 0 0   100%
postrfp / shared / fetch / secq.py visible_subsections_query   6 0 0   100%
postrfp / shared / fetch / secq.py get_subsections_recursive   3 0 0   100%
postrfp / shared / fetch / secq.py sec_total_weighting   10 0 0   100%
postrfp / shared / fetch / secq.py visible_nodes   8 0 0   100%
postrfp / shared / fetch / secq.py (no function)   17 0 0   100%
postrfp / shared / fetch / userq.py user   1 0 0   100%
postrfp / shared / fetch / userq.py organisation   1 0 0   100%
postrfp / shared / fetch / userq.py user_by_password   7 0 0   100%
postrfp / shared / fetch / userq.py dummy_hash   1 1 0   0%
postrfp / shared / fetch / userq.py project_users   9 0 0   100%
postrfp / shared / fetch / userq.py issue_watchers   2 0 0   100%
postrfp / shared / fetch / userq.py project_watchers   2 0 0   100%
postrfp / shared / fetch / userq.py edges_for_org_query   1 0 0   100%
postrfp / shared / fetch / userq.py (no function)   16 0 0   100%
postrfp / shared / fetch / view_scoring.py DirectSectionScore.__init__   11 0 0   100%
postrfp / shared / fetch / view_scoring.py DirectSectionScore.get_calculated_score   15 8 0   47%
postrfp / shared / fetch / view_scoring.py get_child_scores   12 0 0   100%
postrfp / shared / fetch / view_scoring.py _get_immediate_child_section_scores_direct   36 2 0   94%
postrfp / shared / fetch / view_scoring.py (no function)   12 0 0   100%
postrfp / shared / fetch / weightq.py _ws_weights   18 0 0   100%
postrfp / shared / fetch / weightq.py _default_weights   1 0 0   100%
postrfp / shared / fetch / weightq.py weightings_dict   3 0 0   100%
postrfp / shared / fetch / weightq.py total_weightings_dict   10 0 0   100%
postrfp / shared / fetch / weightq.py (no function)   19 0 0   100%
postrfp / shared / fsm_entity.py FSMEntity.__table_args__   1 0 0   100%
postrfp / shared / fsm_entity.py FSMEntity.__init_subclass__   3 0 0   100%
postrfp / shared / fsm_entity.py FSMEntity.get_registered_entities   1 0 0   100%
postrfp / shared / fsm_entity.py FSMEntity.get_entity_by_name   1 0 0   100%
postrfp / shared / fsm_entity.py FSMEntity.get_entity_names   1 1 0   0%
postrfp / shared / fsm_entity.py FSMEntity.current_status_id   1 0 0   100%
postrfp / shared / fsm_entity.py FSMEntity.workflow_id   1 0 0   100%
postrfp / shared / fsm_entity.py FSMEntity.current_status   1 0 0   100%
postrfp / shared / fsm_entity.py FSMEntity.workflow   1 0 0   100%
postrfp / shared / fsm_entity.py FSMEntity.clear_workflow   4 0 0   100%
postrfp / shared / fsm_entity.py FSMEntity.actions_for_current_status   3 1 0   67%
postrfp / shared / fsm_entity.py FSMEntity.status_by_name   1 0 0   100%
postrfp / shared / fsm_entity.py FSMEntity.status_name   3 0 0   100%
postrfp / shared / fsm_entity.py FSMEntity.status_name   16 1 0   94%
postrfp / shared / fsm_entity.py FSMEntity.get_context_schema   0 0 1   100%
postrfp / shared / fsm_entity.py FSMEntity.get_context_data   0 0 1   100%
postrfp / shared / fsm_entity.py require_fsm_methods   11 1 0   91%
postrfp / shared / fsm_entity.py (no function)   38 0 0   100%
postrfp / shared / init / __init__.py (no function)   0 0 0   100%
postrfp / shared / init / dbconfig.py set_connection_timezone   2 0 0   100%
postrfp / shared / init / dbconfig.py _check_connection_timezone   7 0 0   100%
postrfp / shared / init / dbconfig.py check_connection   18 1 0   94%
postrfp / shared / init / dbconfig.py build_engine   8 0 0   100%
postrfp / shared / init / dbconfig.py (no function)   14 0 0   100%
postrfp / shared / init / sysconfig.py configure_postrfp   16 2 0   88%
postrfp / shared / init / sysconfig.py deploy_process_event_dag_safely   5 5 0   0%
postrfp / shared / init / sysconfig.py log_setup_details   14 2 0   86%
postrfp / shared / init / sysconfig.py configure_logging   0 0 23   100%
postrfp / shared / init / sysconfig.py (no function)   11 0 1   100%
postrfp / shared / issue_transition.py change_issue_status   29 5 0   83%
postrfp / shared / issue_transition.py _handle_not_sent   8 0 0   100%
postrfp / shared / issue_transition.py _handle_opportunity   16 3 0   81%
postrfp / shared / issue_transition.py _handle_accepted   29 2 0   93%
postrfp / shared / issue_transition.py _handle_updateable   6 2 0   67%
postrfp / shared / issue_transition.py _handle_submitted   6 1 0   83%
postrfp / shared / issue_transition.py _handle_retracted   6 0 0   100%
postrfp / shared / issue_transition.py (no function)   16 0 0   100%
postrfp / shared / movenodes.py AbstractNodeMover.__init__   11 0 0   100%
postrfp / shared / movenodes.py AbstractNodeMover.initialise   0 0 11   100%
postrfp / shared / movenodes.py AbstractNodeMover._find_previous_parents   0 0 2   100%
postrfp / shared / movenodes.py AbstractNodeMover._reset_previous_parent_positions   0 0 2   100%
postrfp / shared / movenodes.py AbstractNodeMover._delete_orphan   0 0 2   100%
postrfp / shared / movenodes.py AbstractNodeMover.execute   8 0 0   100%
postrfp / shared / movenodes.py AbstractNodeMover._find_renumbering_ancestor   13 1 0   92%
postrfp / shared / movenodes.py AbstractNodeMover._handle_orphans   5 0 0   100%
postrfp / shared / movenodes.py AbstractNodeMover._update_positions_and_relationships   7 0 0   100%
postrfp / shared / movenodes.py AbstractNodeMover.renumber_ancestor   2 0 0   100%
postrfp / shared / movenodes.py SectionsMover.initialise   7 0 0   100%
postrfp / shared / movenodes.py SectionsMover._find_previous_parents   1 0 0   100%
postrfp / shared / movenodes.py SectionsMover._reset_previous_parent_positions   3 0 0   100%
postrfp / shared / movenodes.py SectionsMover._delete_orphan   1 0 0   100%
postrfp / shared / movenodes.py QuestionsMover.initialise   7 0 0   100%
postrfp / shared / movenodes.py QuestionsMover._find_previous_parents   2 0 0   100%
postrfp / shared / movenodes.py QuestionsMover._reset_previous_parent_positions   2 0 0   100%
postrfp / shared / movenodes.py QuestionsMover._delete_orphan   1 0 0   100%
postrfp / shared / movenodes.py (no function)   26 0 16   100%
postrfp / shared / pager.py Pager.__init__   5 0 0   100%
postrfp / shared / pager.py Pager.startfrom   1 0 0   100%
postrfp / shared / pager.py Pager.current_page   1 1 0   0%
postrfp / shared / pager.py Pager.goto   1 0 0   100%
postrfp / shared / pager.py Pager.total_pages   1 0 0   100%
postrfp / shared / pager.py Pager.has_next   1 0 0   100%
postrfp / shared / pager.py Pager.__repr__   0 0 1   100%
postrfp / shared / pager.py Pager.as_pagination   1 0 0   100%
postrfp / shared / pager.py (no function)   13 0 1   100%
postrfp / shared / password.py build_hasher   1 0 0   100%
postrfp / shared / password.py create_signature   2 0 0   100%
postrfp / shared / password.py validate_hash   10 0 0   100%
postrfp / shared / password.py dummy_argon2_hash   5 0 0   100%
postrfp / shared / password.py (no function)   9 0 0   100%
postrfp / shared / response.py quote_header_value   1 0 0   100%
postrfp / shared / response.py file_size   1 0 0   100%
postrfp / shared / response.py XAccelResponse.set_x_accel   2 0 0   100%
postrfp / shared / response.py XAccelAttachmentResponse.__init__   6 0 0   100%
postrfp / shared / response.py XAccelTempResponse.__init__   7 0 0   100%
postrfp / shared / response.py (no function)   17 0 0   100%
postrfp / shared / serial / __init__.py (no function)   5 0 0   100%
postrfp / shared / serial / authmodels.py (no function)   14 0 0   100%
postrfp / shared / serial / common.py ScoringModel.__str__   1 0 0   100%
postrfp / shared / serial / common.py (no function)   27 0 0   100%
postrfp / shared / serial / constants.py (no function)   10 0 0   100%
postrfp / shared / serial / models.py BaseOrganisation.set_type   1 0 0   100%
postrfp / shared / serial / models.py User.get_roles   3 1 0   67%
postrfp / shared / serial / models.py NewIssue.either_email_or_respondent   5 0 0   100%
postrfp / shared / serial / models.py NewIssue.nonify   3 0 0   100%
postrfp / shared / serial / models.py NewWeightSet.check_src_weightset   8 0 0   100%
postrfp / shared / serial / models.py AllocatedToList.__iter__   1 0 0   100%
postrfp / shared / serial / models.py SectionChildNodes.either_or   6 2 0   67%
postrfp / shared / serial / models.py FullProject.set_permissions   1 0 0   100%
postrfp / shared / serial / models.py FullProject.perms   1 0 0   100%
postrfp / shared / serial / models.py Watcher.set_is_watching   2 0 0   100%
postrfp / shared / serial / models.py Watcher.none_if_zerolength   3 0 0   100%
postrfp / shared / serial / models.py NewTag.normalise_colour   3 0 0   100%
postrfp / shared / serial / models.py Webhook.validate_event_type   4 0 0   100%
postrfp / shared / serial / models.py (no function)   613 0 0   100%
postrfp / shared / serial / qmodels.py QuestionDef.nest_elements   28 0 0   100%
postrfp / shared / serial / qmodels.py (no function)   76 0 0   100%
postrfp / shared / serial / refmodels.py (no function)   124 0 0   100%
postrfp / shared / serial / scoremodels.py (no function)   28 0 0   100%
postrfp / shared / tools.py api_version_resource   2 0 0   100%
postrfp / shared / tools.py read_api_version   1 0 0   100%
postrfp / shared / tools.py populate_answers   13 0 0   100%
postrfp / shared / tools.py populate_answers.factory   1 0 0   100%
postrfp / shared / tools.py list_missing_templates   10 0 0   100%
postrfp / shared / tools.py save_templates_to_disc   14 0 0   100%
postrfp / shared / tools.py upload_templates_to_postmark   0 0 17   100%
postrfp / shared / tools.py (no function)   14 0 3   100%
postrfp / shared / types.py Authoriser.__call__   0 0 1   100%
postrfp / shared / types.py Adaptor.__call__   0 0 1   100%
postrfp / shared / types.py SuxHandler.path   0 0 1   100%
postrfp / shared / types.py SuxHandler.adaptors   0 0 1   100%
postrfp / shared / types.py SuxHandler.return_value   0 0 1   100%
postrfp / shared / types.py SuxHandler.required_arguments   0 0 1   100%
postrfp / shared / types.py SuxHandler.optional_arguments   0 0 1   100%
postrfp / shared / types.py SuxType.iter_handlers   0 0 1   100%
postrfp / shared / types.py (no function)   19 0 22   100%
postrfp / shared / update.py grant_project_permission   12 0 0   100%
postrfp / shared / update.py grant_section_permissions   7 0 0   100%
postrfp / shared / update.py _update_or_create_weighting   8 0 0   100%
postrfp / shared / update.py save_weightset_weightings   20 0 0   100%
postrfp / shared / update.py save_default_weightings   6 2 0   67%
postrfp / shared / update.py set_initial_weightings   8 0 0   100%
postrfp / shared / update.py copy_weightings   5 0 0   100%
postrfp / shared / update.py reset_scores   15 0 2   100%
postrfp / shared / update.py save_answers   21 0 0   100%
postrfp / shared / update.py import_section   13 0 0   100%
postrfp / shared / update.py import_q_instance   13 0 0   100%
postrfp / shared / update.py copy_q_definition   8 0 0   100%
postrfp / shared / update.py delete_qinstances_update_def_refcounts   6 0 0   100%
postrfp / shared / update.py delete_qinstances_update_def_refcounts.qf   4 0 0   100%
postrfp / shared / update.py log_score_event   13 8 0   38%
postrfp / shared / update.py label_text   7 0 0   100%
postrfp / shared / update.py question_titles   10 0 0   100%
postrfp / shared / update.py choices_text   10 0 0   100%
postrfp / shared / update.py pretty_choices   7 0 0   100%
postrfp / shared / update.py update_create_qdef   17 0 0   100%
postrfp / shared / update.py check_for_saved_answers   7 0 0   100%
postrfp / shared / update.py delete_project_section   7 0 0   100%
postrfp / shared / update.py delete_project_section_question   14 0 0   100%
postrfp / shared / update.py batch_create_audit_events   11 1 0   91%
postrfp / shared / update.py batch_log_answer_events   0 0 24   100%
postrfp / shared / update.py log_score_events_batch   20 0 0   100%
postrfp / shared / update.py (no function)   40 0 9   100%
postrfp / shared / utils.py benchmark.__init__   0 0 2   100%
postrfp / shared / utils.py benchmark.__enter__   0 0 1   100%
postrfp / shared / utils.py benchmark.__exit__   0 0 11   100%
postrfp / shared / utils.py profiled   10 0 0   100%
postrfp / shared / utils.py json_default   11 0 0   100%
postrfp / shared / utils.py utcnow   1 0 0   100%
postrfp / shared / utils.py (no function)   16 0 32   100%
postrfp / templates / __init__.py init_jinja   10 0 0   100%
postrfp / templates / __init__.py get_template   2 0 0   100%
postrfp / templates / __init__.py (no function)   8 0 0   100%
postrfp / vendor / __init__.py (no function)   0 0 0   100%
postrfp / vendor / api / __init__.py (no function)   1 0 0   100%
postrfp / vendor / api / attachments.py post_issue_attachment   4 0 0   100%
postrfp / vendor / api / attachments.py post_issue_answer_attachment   19 0 0   100%
postrfp / vendor / api / attachments.py get_issue_answer_attachment   5 0 0   100%
postrfp / vendor / api / attachments.py get_issue_attachment   4 0 0   100%
postrfp / vendor / api / attachments.py get_issue_attachments   3 0 0   100%
postrfp / vendor / api / attachments.py delete_issue_attachments   7 0 0   100%
postrfp / vendor / api / attachments.py get_issue_question_attachment   7 1 0   86%
postrfp / vendor / api / attachments.py (no function)   26 0 0   100%
postrfp / vendor / api / audit.py get_events   4 0 0   100%
postrfp / vendor / api / audit.py (no function)   9 0 2   100%
postrfp / vendor / api / issue.py _issue_q   1 0 0   100%
postrfp / vendor / api / issue.py get_issue   3 0 0   100%
postrfp / vendor / api / issue.py get_issues   2 0 0   100%
postrfp / vendor / api / issue.py post_issue_status   9 1 0   89%
postrfp / vendor / api / issue.py post_issue_workflow   3 0 0   100%
postrfp / vendor / api / issue.py post_issue_note   11 0 0   100%
postrfp / vendor / api / issue.py get_issue_notes   5 0 0   100%
postrfp / vendor / api / issue.py (no function)   24 0 0   100%
postrfp / vendor / api / questionnaire.py get_issue_tree   4 0 0   100%
postrfp / vendor / api / questionnaire.py get_issue_question   6 0 0   100%
postrfp / vendor / api / questionnaire.py get_issue_sections   4 0 0   100%
postrfp / vendor / api / questionnaire.py get_issue_section   7 0 0   100%
postrfp / vendor / api / questionnaire.py get_issue_section_stats   4 0 0   100%
postrfp / vendor / api / questionnaire.py post_issue_question_answers   8 0 0   100%
postrfp / vendor / api / questionnaire.py get_issue_answers_search   4 0 0   100%
postrfp / vendor / api / questionnaire.py post_issue_answers_replace   12 0 0   100%
postrfp / vendor / api / questionnaire.py delete_issue_answer_element   14 0 0   100%
postrfp / vendor / api / questionnaire.py get_issue_answerimport   5 0 0   100%
postrfp / vendor / api / questionnaire.py post_issue_answerimport   23 0 0   100%
postrfp / vendor / api / questionnaire.py (no function)   41 0 0   100%
postrfp / vendor / api / reports.py get_issue_scoregaps   7 0 0   100%
postrfp / vendor / api / reports.py (no function)   10 0 0   100%
postrfp / vendor / api / users.py get_users   2 0 0   100%
postrfp / vendor / api / users.py get_whoami   1 0 0   100%
postrfp / vendor / api / users.py get_user   4 0 0   100%
postrfp / vendor / api / users.py put_user   19 2 0   89%
postrfp / vendor / api / users.py post_user   15 0 0   100%
postrfp / vendor / api / users.py delete_user   8 0 0   100%
postrfp / vendor / api / users.py get_roles   4 0 0   100%
postrfp / vendor / api / users.py get_permissions   1 0 0   100%
postrfp / vendor / api / users.py get_issue_watchlist   6 0 0   100%
postrfp / vendor / api / users.py auth_wl_change   6 0 0   100%
postrfp / vendor / api / users.py post_issue_watchers   7 0 0   100%
postrfp / vendor / api / users.py delete_issue_watchers   8 0 0   100%
postrfp / vendor / api / users.py (no function)   35 0 0   100%
postrfp / vendor / api / workflow.py get_issue_section_workflow   11 0 0   100%
postrfp / vendor / api / workflow.py post_issue_allocate   7 0 0   100%
postrfp / vendor / api / workflow.py (no function)   16 0 0   100%
postrfp / vendor / validation.py validate   2 0 0   100%
postrfp / vendor / validation.py Validator.__init__   10 0 0   100%
postrfp / vendor / validation.py Validator.validate   6 0 0   100%
postrfp / vendor / validation.py Validator.check_visibility   7 0 0   100%
postrfp / vendor / validation.py Validator.check_user_permissions   2 0 0   100%
postrfp / vendor / validation.py Validator.check_rules   5 0 0   100%
postrfp / vendor / validation.py Validator.check_issue_rules   11 0 0   100%
postrfp / vendor / validation.py Validator.check_answering_rules   9 0 0   100%
postrfp / vendor / validation.py Validator.authorise_winloss   5 0 0   100%
postrfp / vendor / validation.py Validator.fail   2 0 0   100%
postrfp / vendor / validation.py Validator.invalid_issue_status   1 0 0   100%
postrfp / vendor / validation.py Validator.raise_on_error   2 0 0   100%
postrfp / vendor / validation.py (no function)   17 0 0   100%
postrfp / web / __init__.py (no function)   0 0 0   100%
postrfp / web / adaptors / __init__.py (no function)   0 0 0   100%
postrfp / web / adaptors / auth.py session   1 1 0   0%
postrfp / web / adaptors / auth.py request   1 1 0   0%
postrfp / web / adaptors / auth.py (no function)   8 0 0   100%
postrfp / web / adaptors / core.py PagerArg.extract   7 0 0   100%
postrfp / web / adaptors / core.py PagerArg.update_openapi_path_object   2 2 0   0%
postrfp / web / adaptors / core.py check_node_number   9 0 0   100%
postrfp / web / adaptors / core.py search_val   3 0 0   100%
postrfp / web / adaptors / core.py default_scoreset   3 0 0   100%
postrfp / web / adaptors / core.py val_evt_type   3 0 0   100%
postrfp / web / adaptors / core.py UserObject.extract   4 0 0   100%
postrfp / web / adaptors / core.py session   1 0 0   100%
postrfp / web / adaptors / core.py user   1 0 0   100%
postrfp / web / adaptors / core.py effective_user   1 0 0   100%
postrfp / web / adaptors / core.py (no function)   130 0 0   100%
postrfp / web / adaptors / internal.py session   1 1 0   0%
postrfp / web / adaptors / internal.py user   1 1 0   0%
postrfp / web / adaptors / internal.py request   1 1 0   0%
postrfp / web / adaptors / internal.py (no function)   9 0 0   100%
postrfp / web / adaptors / ref.py (no function)   24 0 0   100%
postrfp / web / apps / __init__.py (no function)   7 0 0   100%
postrfp / web / apps / authentication.py TokenAuthenticationApp.__init__   3 0 0   100%
postrfp / web / apps / authentication.py TokenAuthenticationApp.validate_user   0 0 1   100%
postrfp / web / apps / authentication.py TokenAuthenticationApp.build_sux   1 0 0   100%
postrfp / web / apps / authentication.py status   1 0 0   100%
postrfp / web / apps / authentication.py (no function)   14 0 1   100%
postrfp / web / apps / buyer.py BuyerApp.validate_user   4 0 0   100%
postrfp / web / apps / buyer.py BuyerApp.build_sux   1 0 0   100%
postrfp / web / apps / buyer.py raise_check   1 0 0   100%
postrfp / web / apps / buyer.py (no function)   14 0 0   100%
postrfp / web / apps / fsm.py FsmApp.__init__   3 0 0   100%
postrfp / web / apps / fsm.py FsmApp.validate_user   0 0 1   100%
postrfp / web / apps / fsm.py FsmApp.build_sux   1 0 0   100%
postrfp / web / apps / fsm.py status   1 0 0   100%
postrfp / web / apps / fsm.py (no function)   14 0 1   100%
postrfp / web / apps / internal.py InternalApp.__init__   3 0 0   100%
postrfp / web / apps / internal.py InternalApp.validate_user   0 0 1   100%
postrfp / web / apps / internal.py InternalApp.build_sux   1 0 0   100%
postrfp / web / apps / internal.py get_eventconfig   5 5 0   0%
postrfp / web / apps / internal.py config   3 3 0   0%
postrfp / web / apps / internal.py (no function)   16 0 1   100%
postrfp / web / apps / ref.py RefApp.__init__   3 0 0   100%
postrfp / web / apps / ref.py RefApp.validate_user   0 0 1   100%
postrfp / web / apps / ref.py RefApp.build_sux   1 0 0   100%
postrfp / web / apps / ref.py status   1 1 0   0%
postrfp / web / apps / ref.py (no function)   14 0 1   100%
postrfp / web / apps / vendor.py VendorApp.validate_user   0 0 1   100%
postrfp / web / apps / vendor.py VendorApp.build_sux   1 0 0   100%
postrfp / web / apps / vendor.py (no function)   9 0 1   100%
postrfp / web / base.py jsonify_models   5 0 0   100%
postrfp / web / base.py render   18 0 0   100%
postrfp / web / base.py commit_or_rollback   7 0 0   100%
postrfp / web / base.py WSGIApp.__init__   15 0 0   100%
postrfp / web / base.py WSGIApp.build_sux   0 0 5   100%
postrfp / web / base.py WSGIApp.__call__   14 0 0   100%
postrfp / web / base.py WSGIApp.authenticate   2 0 0   100%
postrfp / web / base.py WSGIApp.resolve_route   7 0 0   100%
postrfp / web / base.py WSGIApp.rest_api   8 0 0   100%
postrfp / web / base.py WSGIApp.route   2 0 0   100%
postrfp / web / base.py WSGIApp.route.wrapper   7 0 0   100%
postrfp / web / base.py WSGIApp.__repr__   0 0 1   100%
postrfp / web / base.py WSGIApp.validate_user   0 0 1   100%
postrfp / web / base.py (no function)   37 0 4   100%
postrfp / web / exception.py sanitize_environ   8 1 0   88%
postrfp / web / exception.py render_error   22 0 0   100%
postrfp / web / exception.py log_exception   4 0 0   100%
postrfp / web / exception.py ex_message   5 0 0   100%
postrfp / web / exception.py resolve_exception   50 4 0   92%
postrfp / web / exception.py (no function)   21 0 0   100%
postrfp / web / ext / __init__.py (no function)   0 0 0   100%
postrfp / web / ext / apilinks.py Link.__init__   7 0 0   100%
postrfp / web / ext / apilinks.py Link.as_dict   4 0 0   100%
postrfp / web / ext / apilinks.py (no function)   21 0 0   100%
postrfp / web / ext / apispec.py responses   27 4 0   85%
postrfp / web / ext / apispec.py operations_from_handler   7 0 0   100%
postrfp / web / ext / apispec.py SuxPlugin.init_spec   2 0 0   100%
postrfp / web / ext / apispec.py SuxPlugin.path_helper   3 0 0   100%
postrfp / web / ext / apispec.py (no function)   13 0 2   100%
postrfp / web / ext / openapi_types.py (no function)   8 0 0   100%
postrfp / web / ext / specs / __init__.py (no function)   0 0 0   100%
postrfp / web / hooks / __init__.py (no function)   4 0 0   100%
postrfp / web / hooks / mail_delivered.py postmark_isodate   3 0 0   100%
postrfp / web / hooks / mail_delivered.py DeliveredHook.update_notification_record   5 0 0   100%
postrfp / web / hooks / mail_delivered.py BounceHook.update_notification_record   6 0 0   100%
postrfp / web / hooks / mail_delivered.py (no function)   15 0 0   100%
postrfp / web / hooks / webapp.py WebhookApp.validate_user   0 0 1   100%
postrfp / web / hooks / webapp.py WebhookApp.build_sux   0 0 1   100%
postrfp / web / hooks / webapp.py WebhookApp.register_route   1 0 0   100%
postrfp / web / hooks / webapp.py PostmarkVars.__init__   4 0 0   100%
postrfp / web / hooks / webapp.py NotificationHook.__call__   18 1 0   94%
postrfp / web / hooks / webapp.py NotificationHook.extract   3 0 0   100%
postrfp / web / hooks / webapp.py NotificationHook.lookup   1 0 0   100%
postrfp / web / hooks / webapp.py NotificationHook.check_emails_match   3 0 0   100%
postrfp / web / hooks / webapp.py NotificationHook.update_notification_record   0 0 1   100%
postrfp / web / hooks / webapp.py (no function)   23 0 2   100%
postrfp / web / middleware.py DevMiddleware.__init__   0 0 11   100%
postrfp / web / middleware.py DevMiddleware.static_app   0 0 1   100%
postrfp / web / middleware.py DevMiddleware.__call__   0 0 13   100%
postrfp / web / middleware.py DevMiddleware.process_request   0 0 5   100%
postrfp / web / middleware.py DevMiddleware.process_response   0 0 11   100%
postrfp / web / middleware.py DevMiddleware.test_rollback   0 0 19   100%
postrfp / web / middleware.py DevMiddleware.test_mailbox   0 0 10   100%
postrfp / web / middleware.py DevMiddleware.test_process_events   0 0 15   100%
postrfp / web / middleware.py DevMiddleware.xaccel   0 0 28   100%
postrfp / web / middleware.py DevMiddleware.config   0 0 4   100%
postrfp / web / middleware.py DispatchingMiddleware.__init__   2 0 0   100%
postrfp / web / middleware.py DispatchingMiddleware.__call__   13 0 0   100%
postrfp / web / middleware.py (no function)   16 0 30   100%
postrfp / web / mounts.py build_app_mounts   10 0 0   100%
postrfp / web / mounts.py (no function)   4 0 0   100%
postrfp / web / request.py HttpRequest.is_https   1 0 0   100%
postrfp / web / request.py HttpRequest.prefers_json   3 0 0   100%
postrfp / web / request.py (no function)   6 0 0   100%
postrfp / web / suxint / __init__.py (no function)   7 0 0   100%
postrfp / web / suxint / extractors.py ArgExtractor.__init__   15 0 0   100%
postrfp / web / suxint / extractors.py ArgExtractor.validate   3 0 0   100%
postrfp / web / suxint / extractors.py ArgExtractor.print_enum   3 0 0   100%
postrfp / web / suxint / extractors.py ArgExtractor.validate_enums   8 0 0   100%
postrfp / web / suxint / extractors.py ArgExtractor.typed   12 0 0   100%
postrfp / web / suxint / extractors.py ArgExtractor.__call__   5 0 0   100%
postrfp / web / suxint / extractors.py ArgExtractor.extract   0 0 1   100%
postrfp / web / suxint / extractors.py ArgExtractor.update_openapi_path_object   15 0 0   100%
postrfp / web / suxint / extractors.py ArgExtractor.augment_openapi_params_object   0 0 1   100%
postrfp / web / suxint / extractors.py ArgExtractor.augment_openapi_responses   0 0 1   100%
postrfp / web / suxint / extractors.py ArgExtractor.swagger_type   1 0 0   100%
postrfp / web / suxint / extractors.py ArgExtractor.doc_name   1 0 0   100%
postrfp / web / suxint / extractors.py PathArg.__init__   3 0 0   100%
postrfp / web / suxint / extractors.py PathArg.extract   9 0 0   100%
postrfp / web / suxint / extractors.py PathArg.doc_name   1 0 0   100%
postrfp / web / suxint / extractors.py GetArg.extract   9 0 0   100%
postrfp / web / suxint / extractors.py GetArgSet.__init__   4 0 0   100%
postrfp / web / suxint / extractors.py GetArgSet.extract   10 0 0   100%
postrfp / web / suxint / extractors.py GetArgSet.augment_openapi_params_object   6 0 0   100%
postrfp / web / suxint / extractors.py _get_or_create_schema   1 0 0   100%
postrfp / web / suxint / extractors.py PostArg.extract   7 0 0   100%
postrfp / web / suxint / extractors.py PostArg.update_openapi_path_object   6 0 0   100%
postrfp / web / suxint / extractors.py PostFileArg.__init__   2 0 0   100%
postrfp / web / suxint / extractors.py PostFileArg.extract   4 0 0   100%
postrfp / web / suxint / extractors.py PostFileArg.update_openapi_path_object   4 0 0   100%
postrfp / web / suxint / extractors.py SchemaDocArg.__init__   4 0 0   100%
postrfp / web / suxint / extractors.py SchemaDocArg.extract   13 0 0   100%
postrfp / web / suxint / extractors.py SchemaDocArg.update_openapi_path_object   1 0 0   100%
postrfp / web / suxint / extractors.py HeaderArg.extract   9 2 0   78%
postrfp / web / suxint / extractors.py HeaderArg.augment_openapi_responses   1 1 0   0%
postrfp / web / suxint / extractors.py (no function)   68 0 2   100%
postrfp / web / suxint / handler.py Handler.__init__   8 0 0   100%
postrfp / web / suxint / handler.py Handler.method   1 0 0   100%
postrfp / web / suxint / handler.py Handler.path   4 0 0   100%
postrfp / web / suxint / handler.py Handler.path.lookup   5 0 0   100%
postrfp / web / suxint / handler.py Handler.path_params   4 0 0   100%
postrfp / web / suxint / handler.py Handler.adaptors   4 0 0   100%
postrfp / web / suxint / handler.py Handler.parameters   3 0 0   100%
postrfp / web / suxint / handler.py Handler.required_arguments   1 0 0   100%
postrfp / web / suxint / handler.py Handler.optional_arguments   1 0 0   100%
postrfp / web / suxint / handler.py Handler.docs   8 0 0   100%
postrfp / web / suxint / handler.py Handler.permissions   3 0 0   100%
postrfp / web / suxint / handler.py Handler.errors   3 0 0   100%
postrfp / web / suxint / handler.py Handler.return_annotation   6 0 0   100%
postrfp / web / suxint / handler.py Handler.return_value   3 0 0   100%
postrfp / web / suxint / handler.py Handler.__repr__   0 0 3   100%
postrfp / web / suxint / handler.py DocString.__init__   4 0 0   100%
postrfp / web / suxint / handler.py DocString._key   1 0 0   100%
postrfp / web / suxint / handler.py DocString.intro   2 0 0   100%
postrfp / web / suxint / handler.py DocString.permissions   1 0 0   100%
postrfp / web / suxint / handler.py DocString.errors   1 0 0   100%
postrfp / web / suxint / handler.py (no function)   42 0 1   100%
postrfp / web / suxint / openapi.py any_of_fix   6 0 0   100%
postrfp / web / suxint / openapi.py servers_object   1 0 0   100%
postrfp / web / suxint / openapi.py add_model_components   12 0 2   100%
postrfp / web / suxint / openapi.py create_spec   23 0 0   100%
postrfp / web / suxint / openapi.py (no function)   13 0 0   100%
postrfp / web / suxint / sux.py Sux.__init__   21 0 0   100%
postrfp / web / suxint / sux.py Sux.load_handler_module   5 0 0   100%
postrfp / web / suxint / sux.py Sux.load_handler_cache   2 0 0   100%
postrfp / web / suxint / sux.py Sux.load_adaptors   7 0 0   100%
postrfp / web / suxint / sux.py Sux.extract_handler_name   7 0 0   100%
postrfp / web / suxint / sux.py Sux.no_matching_handler   7 0 0   100%
postrfp / web / suxint / sux.py Sux.args_for_handler   7 0 0   100%
postrfp / web / suxint / sux.py Sux.__call__   32 0 0   100%
postrfp / web / suxint / sux.py Sux.run_authoriser   8 0 0   100%
postrfp / web / suxint / sux.py Sux.execute_handler   1 0 0   100%
postrfp / web / suxint / sux.py Sux.iter_handler_modules   4 0 0   100%
postrfp / web / suxint / sux.py Sux.iter_handlers   12 0 0   100%
postrfp / web / suxint / sux.py Sux.handler_by_name   4 0 0   100%
postrfp / web / suxint / sux.py (no function)   31 0 0   100%
postrfp / web / suxint / validate.py validate_handlers   37 0 0   100%
postrfp / web / suxint / validate.py validate_handlers._unwrap_annotated   3 0 0   100%
postrfp / web / suxint / validate.py (no function)   9 0 0   100%
Total     12241 323 782   97%

No items found using the specified filter.