Coverage report: 99%

Files Functions Classes

coverage.py v7.8.0, created at 2025-04-24 10:52 +0000

File function statements missing excluded coverage
rfpy/__init__.py (no function) 0 0 0 100%
rfpy/adaptors.py PagerArg.extract 7 0 0 100%
rfpy/adaptors.py PagerArg.update_openapi_path_object 2 0 0 100%
rfpy/adaptors.py check_node_number 9 0 0 100%
rfpy/adaptors.py search_val 3 0 0 100%
rfpy/adaptors.py default_scoreset 3 0 0 100%
rfpy/adaptors.py val_evt_type 3 0 0 100%
rfpy/adaptors.py UserObject.extract 4 0 0 100%
rfpy/adaptors.py session 1 0 0 100%
rfpy/adaptors.py user 1 0 0 100%
rfpy/adaptors.py effective_user 1 0 0 100%
rfpy/adaptors.py (no function) 120 0 0 100%
rfpy/api/__init__.py (no function) 0 0 0 100%
rfpy/api/attachments.py get_sub_path 14 0 0 100%
rfpy/api/attachments.py local_to_full 2 0 0 100%
rfpy/api/attachments.py root_attachments_dir 1 0 0 100%
rfpy/api/attachments.py get_full_path 2 0 0 100%
rfpy/api/attachments.py save_to_disc 9 0 0 100%
rfpy/api/attachments.py delete_from_disc 4 0 0 100%
rfpy/api/attachments.py find_orphan_answer_attachment 4 0 0 100%
rfpy/api/attachments.py delete_orphan_answer_attachments 17 0 0 100%
rfpy/api/attachments.py save_issue_attachment 13 0 0 100%
rfpy/api/attachments.py save_project_attachment 13 0 0 100%
rfpy/api/attachments.py delete_project_attachment 4 0 0 100%
rfpy/api/attachments.py (no function) 22 0 0 100%
rfpy/api/domain_permissions.py save_project_permissions 34 0 0 100%
rfpy/api/domain_permissions.py (no function) 6 0 0 100%
rfpy/api/endpoints/__init__.py (no function) 2 0 0 100%
rfpy/api/endpoints/answers.py get_question_answers 4 0 0 100%
rfpy/api/endpoints/answers.py get_question_answers.get_answers 4 0 0 100%
rfpy/api/endpoints/answers.py get_project_issue_question 5 0 0 100%
rfpy/api/endpoints/answers.py get_project_section_issue_answers 6 0 0 100%
rfpy/api/endpoints/answers.py get_question_issue_answers 8 0 0 100%
rfpy/api/endpoints/answers.py get_element_answers 2 0 0 100%
rfpy/api/endpoints/answers.py get_project_answers 11 0 0 100%
rfpy/api/endpoints/answers.py (no function) 23 0 0 100%
rfpy/api/endpoints/attachments.py get_project_attachments 3 0 0 100%
rfpy/api/endpoints/attachments.py get_project_issueattachments 3 0 0 100%
rfpy/api/endpoints/attachments.py get_project_answerattachments 3 0 0 100%
rfpy/api/endpoints/attachments.py get_project_attachment 4 0 0 100%
rfpy/api/endpoints/attachments.py post_project_attachment 8 0 0 100%
rfpy/api/endpoints/attachments.py delete_project_attachment 8 0 0 100%
rfpy/api/endpoints/attachments.py get_project_issue_attachment 5 0 0 100%
rfpy/api/endpoints/attachments.py get_question_element_attachment 4 0 0 100%
rfpy/api/endpoints/attachments.py get_answer_attachment 6 0 0 100%
rfpy/api/endpoints/attachments.py (no function) 27 0 0 100%
rfpy/api/endpoints/audit.py get_project_events 5 0 0 100%
rfpy/api/endpoints/audit.py get_events 4 0 0 100%
rfpy/api/endpoints/audit.py get_event 24 1 0 96%
rfpy/api/endpoints/audit.py get_event_types 1 0 0 100%
rfpy/api/endpoints/audit.py get_question_events 5 0 0 100%
rfpy/api/endpoints/audit.py (no function) 19 0 3 100%
rfpy/api/endpoints/auth.py get_role 4 0 0 100%
rfpy/api/endpoints/auth.py get_roles 4 4 0 0%
rfpy/api/endpoints/auth.py get_users 5 0 0 100%
rfpy/api/endpoints/auth.py get_user 6 1 0 83%
rfpy/api/endpoints/auth.py put_user 15 0 0 100%
rfpy/api/endpoints/auth.py post_user 25 2 0 92%
rfpy/api/endpoints/auth.py delete_user 9 0 0 100%
rfpy/api/endpoints/auth.py get_organisations 9 0 0 100%
rfpy/api/endpoints/auth.py get_organisation 5 0 0 100%
rfpy/api/endpoints/auth.py post_client 10 0 0 100%
rfpy/api/endpoints/auth.py put_organisation 9 0 0 100%
rfpy/api/endpoints/auth.py (no function) 32 0 0 100%
rfpy/api/endpoints/categories.py get_category 1 0 0 100%
rfpy/api/endpoints/categories.py delete_category 3 0 0 100%
rfpy/api/endpoints/categories.py post_category 9 0 0 100%
rfpy/api/endpoints/categories.py put_category 4 0 0 100%
rfpy/api/endpoints/categories.py get_categories 2 0 0 100%
rfpy/api/endpoints/categories.py (no function) 18 0 0 100%
rfpy/api/endpoints/issues.py get_vendor 5 0 0 100%
rfpy/api/endpoints/issues.py get_project_issue 4 0 0 100%
rfpy/api/endpoints/issues.py get_project_issues 4 0 0 100%
rfpy/api/endpoints/issues.py put_project_issue 9 0 0 100%
rfpy/api/endpoints/issues.py get_issue 3 0 0 100%
rfpy/api/endpoints/issues.py post_project_issue 16 0 0 100%
rfpy/api/endpoints/issues.py delete_project_issue 7 0 0 100%
rfpy/api/endpoints/issues.py post_issue_status 3 0 0 100%
rfpy/api/endpoints/issues.py get_issues 14 2 0 86%
rfpy/api/endpoints/issues.py (no function) 27 0 0 100%
rfpy/api/endpoints/network.py get_network 2 0 0 100%
rfpy/api/endpoints/network.py delete_network 3 0 0 100%
rfpy/api/endpoints/network.py get_reltypes 1 0 0 100%
rfpy/api/endpoints/network.py post_reltype 5 0 0 100%
rfpy/api/endpoints/network.py put_reltype 5 0 0 100%
rfpy/api/endpoints/network.py delete_reltype 4 0 0 100%
rfpy/api/endpoints/network.py post_relationship 7 0 0 100%
rfpy/api/endpoints/network.py delete_relationship 7 0 0 100%
rfpy/api/endpoints/network.py post_network_project 33 0 0 100%
rfpy/api/endpoints/network.py (no function) 34 0 0 100%
rfpy/api/endpoints/notes.py get_project_notes 3 0 0 100%
rfpy/api/endpoints/notes.py issue_if_target_set 7 0 0 100%
rfpy/api/endpoints/notes.py post_project_note 16 0 0 100%
rfpy/api/endpoints/notes.py put_project_note 9 0 0 100%
rfpy/api/endpoints/notes.py delete_project_note 8 0 0 100%
rfpy/api/endpoints/notes.py (no function) 17 0 0 100%
rfpy/api/endpoints/projects.py get_projects 18 4 0 78%
rfpy/api/endpoints/projects.py get_project 5 0 0 100%
rfpy/api/endpoints/projects.py post_project 36 0 0 100%
rfpy/api/endpoints/projects.py put_project 17 0 0 100%
rfpy/api/endpoints/projects.py delete_project 9 0 0 100%
rfpy/api/endpoints/projects.py get_project_participants 3 0 0 100%
rfpy/api/endpoints/projects.py put_project_participants 15 0 0 100%
rfpy/api/endpoints/projects.py put_project_permissions 4 0 0 100%
rfpy/api/endpoints/projects.py get_project_users 5 0 0 100%
rfpy/api/endpoints/projects.py get_project_user_permissions 14 0 0 100%
rfpy/api/endpoints/projects.py get_project_permissions 5 0 0 100%
rfpy/api/endpoints/projects.py get_project_watchlist 3 0 0 100%
rfpy/api/endpoints/projects.py post_project_watch 11 0 0 100%
rfpy/api/endpoints/projects.py delete_project_watch 6 0 0 100%
rfpy/api/endpoints/projects.py put_project_category 6 0 0 100%
rfpy/api/endpoints/projects.py delete_project_category 6 0 0 100%
rfpy/api/endpoints/projects.py put_project_publish 22 0 0 100%
rfpy/api/endpoints/projects.py put_project_close 12 0 0 100%
rfpy/api/endpoints/projects.py (no function) 47 0 0 100%
rfpy/api/endpoints/questions.py get_project_section_question 4 0 0 100%
rfpy/api/endpoints/questions.py put_project_section_question 25 0 0 100%
rfpy/api/endpoints/questions.py post_project_section_question 11 0 0 100%
rfpy/api/endpoints/questions.py delete_project_section_question 7 0 0 100%
rfpy/api/endpoints/questions.py post_project_section_question_copy 18 0 0 100%
rfpy/api/endpoints/questions.py get_question_instances 6 0 0 100%
rfpy/api/endpoints/questions.py put_project_question_element 14 0 0 100%
rfpy/api/endpoints/questions.py post_project_section_question_unlink 15 0 0 100%
rfpy/api/endpoints/questions.py (no function) 25 0 0 100%
rfpy/api/endpoints/reports/__init__.py (no function) 3 0 0 100%
rfpy/api/endpoints/reports/msword.py is_comments_label 5 0 0 100%
rfpy/api/endpoints/reports/msword.py render_paragraph_question 15 0 0 100%
rfpy/api/endpoints/reports/msword.py render_table_question 22 0 2 100%
rfpy/api/endpoints/reports/msword.py _el_answer_lookup 3 0 0 100%
rfpy/api/endpoints/reports/msword.py get_project_report_msword 29 0 0 100%
rfpy/api/endpoints/reports/msword.py (no function) 21 0 0 100%
rfpy/api/endpoints/reports/qtextxlsx.py _generate_xlsx 16 0 0 100%
rfpy/api/endpoints/reports/qtextxlsx.py get_project_report_qtext 5 0 0 100%
rfpy/api/endpoints/reports/qtextxlsx.py (no function) 15 0 0 100%
rfpy/api/endpoints/reports/responses.py attachment 4 0 0 100%
rfpy/api/endpoints/reports/responses.py (no function) 2 0 0 100%
rfpy/api/endpoints/reports/yesnoqual.py get_project_report_yesno 58 0 4 100%
rfpy/api/endpoints/reports/yesnoqual.py get_scoretotals 14 0 0 100%
rfpy/api/endpoints/reports/yesnoqual.py (no function) 18 0 0 100%
rfpy/api/endpoints/scoring.py get_project_scores 4 0 0 100%
rfpy/api/endpoints/scoring.py get_question_scores 6 0 0 100%
rfpy/api/endpoints/scoring.py post_question_score 13 0 0 100%
rfpy/api/endpoints/scoring.py get_project_section_issue_scores 7 0 0 100%
rfpy/api/endpoints/scoring.py post_question_score_comment 21 0 0 100%
rfpy/api/endpoints/scoring.py check_autoscore_permissions 7 0 0 100%
rfpy/api/endpoints/scoring.py get_project_calcautoscores 6 1 0 83%
rfpy/api/endpoints/scoring.py post_project_calcautoscores 20 1 0 95%
rfpy/api/endpoints/scoring.py get_section_scoresummaries 6 0 0 100%
rfpy/api/endpoints/scoring.py get_project_scoresets 8 0 0 100%
rfpy/api/endpoints/scoring.py get_question_issue_comments 10 0 0 100%
rfpy/api/endpoints/scoring.py post_section_scoreset_scores 24 0 0 100%
rfpy/api/endpoints/scoring.py (no function) 38 0 0 100%
rfpy/api/endpoints/search.py get_search 10 0 0 100%
rfpy/api/endpoints/search.py post_project_questions_replace 17 0 0 100%
rfpy/api/endpoints/search.py (no function) 13 0 0 100%
rfpy/api/endpoints/sections.py put_project_section 13 0 0 100%
rfpy/api/endpoints/sections.py post_project_section 12 1 0 92%
rfpy/api/endpoints/sections.py delete_project_section 4 0 0 100%
rfpy/api/endpoints/sections.py put_project_movesection 19 1 0 95%
rfpy/api/endpoints/sections.py put_project_section_children 10 1 0 90%
rfpy/api/endpoints/sections.py update_section_children 31 1 0 97%
rfpy/api/endpoints/sections.py update_question_children 28 0 0 100%
rfpy/api/endpoints/sections.py get_project_section 9 0 0 100%
rfpy/api/endpoints/sections.py get_project_treenodes 6 0 0 100%
rfpy/api/endpoints/sections.py get_project_nodes 9 0 0 100%
rfpy/api/endpoints/sections.py post_project_section_excel 13 0 0 100%
rfpy/api/endpoints/sections.py get_project_qstats 3 0 0 100%
rfpy/api/endpoints/sections.py post_project_section_import 34 2 0 94%
rfpy/api/endpoints/sections.py (no function) 37 0 0 100%
rfpy/api/endpoints/tags.py get_tags 2 0 0 100%
rfpy/api/endpoints/tags.py get_tags_section 11 2 0 82%
rfpy/api/endpoints/tags.py post_tag 7 0 0 100%
rfpy/api/endpoints/tags.py put_tag 5 0 0 100%
rfpy/api/endpoints/tags.py delete_tag 3 0 0 100%
rfpy/api/endpoints/tags.py _tag_assign 11 0 0 100%
rfpy/api/endpoints/tags.py _add_questions_from_sections 6 1 0 83%
rfpy/api/endpoints/tags.py post_tag_assign 2 0 0 100%
rfpy/api/endpoints/tags.py post_tag_assign.assign 4 0 0 100%
rfpy/api/endpoints/tags.py delete_tag_assign 2 0 0 100%
rfpy/api/endpoints/tags.py delete_tag_assign.un_assign 4 0 0 100%
rfpy/api/endpoints/tags.py (no function) 28 0 0 100%
rfpy/api/endpoints/webhooks.py post_webhook 6 0 0 100%
rfpy/api/endpoints/webhooks.py put_webhook 11 0 0 100%
rfpy/api/endpoints/webhooks.py get_webhooks 5 0 0 100%
rfpy/api/endpoints/webhooks.py delete_webhook 11 0 0 100%
rfpy/api/endpoints/webhooks.py get_webhook_events 2 2 0 0%
rfpy/api/endpoints/webhooks.py (no function) 17 0 0 100%
rfpy/api/endpoints/weighting.py get_project_weightings 8 0 0 100%
rfpy/api/endpoints/weighting.py post_project_weightings 10 0 0 100%
rfpy/api/endpoints/weighting.py get_project_weightsets 3 0 0 100%
rfpy/api/endpoints/weighting.py post_project_weightset 16 1 0 94%
rfpy/api/endpoints/weighting.py put_project_weightset 4 0 0 100%
rfpy/api/endpoints/weighting.py delete_project_weightset 4 0 0 100%
rfpy/api/endpoints/weighting.py get_project_section_weightings 6 0 0 100%
rfpy/api/endpoints/weighting.py (no function) 23 0 0 100%
rfpy/api/fetch.py user 1 0 0 100%
rfpy/api/fetch.py organisation 1 0 0 100%
rfpy/api/fetch.py user_by_password 7 0 0 100%
rfpy/api/fetch.py dummy_hash 2 2 0 0%
rfpy/api/fetch.py project 4 0 0 100%
rfpy/api/fetch.py section 1 0 0 100%
rfpy/api/fetch.py projects_with_watched 7 1 0 86%
rfpy/api/fetch.py category_ids_by_project 2 2 0 0%
rfpy/api/fetch.py issue 1 0 0 100%
rfpy/api/fetch.py section_of_project 1 0 0 100%
rfpy/api/fetch.py section_by_id 1 0 0 100%
rfpy/api/fetch.py sections 3 0 0 100%
rfpy/api/fetch.py visible_subsections_query 6 0 0 100%
rfpy/api/fetch.py qelement 4 1 0 75%
rfpy/api/fetch.py answer 1 0 0 100%
rfpy/api/fetch.py answers_in_issues_query 1 0 0 100%
rfpy/api/fetch.py scores 4 0 0 100%
rfpy/api/fetch.py question 1 0 0 100%
rfpy/api/fetch.py question_of_project 1 0 0 100%
rfpy/api/fetch.py question_of_section 1 0 0 100%
rfpy/api/fetch.py get_subsections_recursive 3 0 0 100%
rfpy/api/fetch.py or_create_score 13 1 0 92%
rfpy/api/fetch.py light_nodes 5 0 0 100%
rfpy/api/fetch.py light_tree 23 5 0 78%
rfpy/api/fetch.py _check_total_weights 4 0 0 100%
rfpy/api/fetch.py scoring_data 4 0 0 100%
rfpy/api/fetch.py old_scoring_data 4 0 0 100%
rfpy/api/fetch.py participant_notes_query 5 0 0 100%
rfpy/api/fetch.py vendor_notes 3 0 0 100%
rfpy/api/fetch.py note 1 0 0 100%
rfpy/api/fetch.py answer_attachments_q 7 0 0 100%
rfpy/api/fetch.py question_scoresummary 5 0 0 100%
rfpy/api/fetch.py subsection_scoressummary 4 0 0 100%
rfpy/api/fetch.py section_scoresummary 2 0 0 100%
rfpy/api/fetch.py issues_for_respondent 3 0 0 100%
rfpy/api/fetch.py audit_events 4 0 0 100%
rfpy/api/fetch.py project_audit_events 2 0 0 100%
rfpy/api/fetch.py element_answers 2 0 0 100%
rfpy/api/fetch.py score_totals_by_project 2 0 0 100%
rfpy/api/fetch.py question_instance_by_number 1 0 0 100%
rfpy/api/fetch.py score_gaps 25 0 0 100%
rfpy/api/fetch.py search 16 0 0 100%
rfpy/api/fetch.py project_users 9 0 0 100%
rfpy/api/fetch.py _ws_weights 11 0 0 100%
rfpy/api/fetch.py _default_weights 6 0 0 100%
rfpy/api/fetch.py weightings_dict 3 0 0 100%
rfpy/api/fetch.py total_weightings_dict 9 0 0 100%
rfpy/api/fetch.py sec_total_weighting 10 0 0 100%
rfpy/api/fetch.py response_states 7 0 0 100%
rfpy/api/fetch.py answered_questions 10 0 0 100%
rfpy/api/fetch.py iter_quick_questions 37 0 0 100%
rfpy/api/fetch.py answering_stats 5 0 0 100%
rfpy/api/fetch.py issue_watchers 2 0 0 100%
rfpy/api/fetch.py project_watchers 2 0 0 100%
rfpy/api/fetch.py _question_ids_q 4 0 0 100%
rfpy/api/fetch.py importable_answers 3 0 0 100%
rfpy/api/fetch.py importable_answer_lookup 3 0 0 100%
rfpy/api/fetch.py latest_event 2 0 0 100%
rfpy/api/fetch.py category_for_user 3 0 0 100%
rfpy/api/fetch.py questionnaire_stats 10 0 0 100%
rfpy/api/fetch.py unanswered_mandatory 3 0 0 100%
rfpy/api/fetch.py edges_for_org_query 1 0 0 100%
rfpy/api/fetch.py webhooks_for_event 4 0 0 100%
rfpy/api/fetch.py visible_nodes 8 0 0 100%
rfpy/api/fetch.py duplicated_qdefs 9 0 0 100%
rfpy/api/fetch.py (no function) 84 0 2 100%
rfpy/api/fix/__init__.py (no function) 0 0 0 100%
rfpy/api/fix/orphan_questions.py delete_orphan_questions 7 0 0 100%
rfpy/api/fix/orphan_questions.py (no function) 3 0 0 100%
rfpy/api/fix/qtables.py fix_spans 39 0 0 100%
rfpy/api/fix/qtables.py (no function) 3 0 0 100%
rfpy/api/io/__init__.py (no function) 0 0 0 100%
rfpy/api/io/excel_import.py XLCell.__init__ 1 0 0 100%
rfpy/api/io/excel_import.py XLCell.__get__ 1 0 0 100%
rfpy/api/io/excel_import.py QRow.__init__ 1 0 0 100%
rfpy/api/io/excel_import.py QRow.is_root_question 1 0 0 100%
rfpy/api/io/excel_import.py QRow.choices_list 7 1 0 86%
rfpy/api/io/excel_import.py row_to_question 14 0 0 100%
rfpy/api/io/excel_import.py ExcelQImporter.__init__ 9 1 0 89%
rfpy/api/io/excel_import.py ExcelQImporter.read_questions_excel 4 0 0 100%
rfpy/api/io/excel_import.py ExcelQImporter.process_rows 5 0 0 100%
rfpy/api/io/excel_import.py ExcelQImporter.process_one_row 12 0 0 100%
rfpy/api/io/excel_import.py (no function) 23 0 0 100%
rfpy/api/update.py grant_project_permission 12 0 0 100%
rfpy/api/update.py grant_section_permissions 7 0 0 100%
rfpy/api/update.py merge_organisations 8 0 0 100%
rfpy/api/update.py save_weightset_weightings 29 0 0 100%
rfpy/api/update.py save_default_weightings 18 0 0 100%
rfpy/api/update.py set_initial_weightings 8 0 0 100%
rfpy/api/update.py copy_weightings 5 0 0 100%
rfpy/api/update.py reset_scores 13 0 2 100%
rfpy/api/update.py save_answers 21 0 0 100%
rfpy/api/update.py import_section 13 0 0 100%
rfpy/api/update.py import_q_instance 13 0 0 100%
rfpy/api/update.py copy_q_definition 9 0 0 100%
rfpy/api/update.py delete_qinstances_update_def_refcounts 6 0 0 100%
rfpy/api/update.py delete_qinstances_update_def_refcounts.qf 4 0 0 100%
rfpy/api/update.py log_score_event 13 0 0 100%
rfpy/api/update.py label_text 7 0 0 100%
rfpy/api/update.py question_titles 10 0 0 100%
rfpy/api/update.py choices_text 10 0 0 100%
rfpy/api/update.py pretty_choices 7 0 0 100%
rfpy/api/update.py update_create_qdef 17 0 0 100%
rfpy/api/update.py check_for_saved_answers 7 0 0 100%
rfpy/api/update.py change_org_id 2 0 0 100%
rfpy/api/update.py delete_project_section 7 0 0 100%
rfpy/api/update.py delete_project_section_question 14 0 0 100%
rfpy/api/update.py (no function) 40 0 0 100%
rfpy/api/validate.py check 54 1 0 98%
rfpy/api/validate.py ProjectRules.__init__ 3 0 0 100%
rfpy/api/validate.py ProjectRules.check 3 0 0 100%
rfpy/api/validate.py ProjectRules.viewAnswers 4 0 0 100%
rfpy/api/validate.py (no function) 12 0 0 100%
rfpy/auth/__init__.py AuthorizationFailure.__init__ 10 0 0 100%
rfpy/auth/__init__.py AuthorizationFailure.__repr__ 0 0 4 100%
rfpy/auth/__init__.py AuthorizationFailure.__str__ 1 0 0 100%
rfpy/auth/__init__.py LacksPermission.__init__ 2 0 0 100%
rfpy/auth/__init__.py NotLoggedIn.__init__ 1 0 0 100%
rfpy/auth/__init__.py (no function) 10 0 1 100%
rfpy/auth/actions.py (no function) 7 0 0 100%
rfpy/auth/adaptors.py session 1 1 0 0%
rfpy/auth/adaptors.py (no function) 21 0 0 100%
rfpy/auth/endpoints.py post_login 11 0 0 100%
rfpy/auth/endpoints.py _lock_user_account 3 0 0 100%
rfpy/auth/endpoints.py _handle_failed_login 10 0 0 100%
rfpy/auth/endpoints.py post_password_emailkey 10 0 0 100%
rfpy/auth/endpoints.py post_password_update 9 0 0 100%
rfpy/auth/endpoints.py post_refresh_token 17 4 0 76%
rfpy/auth/endpoints.py post_logout 10 1 0 90%
rfpy/auth/endpoints.py _check_and_clear_lockout 8 0 0 100%
rfpy/auth/endpoints.py _generate_access_token 5 0 0 100%
rfpy/auth/endpoints.py _generate_and_store_refresh_token 6 0 0 100%
rfpy/auth/endpoints.py _update_user_on_login 5 0 0 100%
rfpy/auth/endpoints.py _create_login_response 4 0 0 100%
rfpy/auth/endpoints.py (no function) 37 0 0 100%
rfpy/auth/errors.py ValidationErrors.__init__ 2 0 0 100%
rfpy/auth/errors.py ValidationErrors.p_action 1 0 0 100%
rfpy/auth/errors.py ValidationErrors.has_errors 1 0 0 100%
rfpy/auth/errors.py ValidationErrors.add 1 0 0 100%
rfpy/auth/errors.py ValidationErrors.auth_failure 1 0 0 100%
rfpy/auth/errors.py ValidationErrors.invalid_issue_status 2 0 0 100%
rfpy/auth/errors.py ValidationErrors.invalid_project_status 2 0 0 100%
rfpy/auth/errors.py ValidationErrors.__iter__ 1 0 0 100%
rfpy/auth/errors.py ValidationErrors.__len__ 1 0 0 100%
rfpy/auth/errors.py ValidationErrors.as_dict 1 0 0 100%
rfpy/auth/errors.py ValidationErrors.__repr__ 0 0 5 100%
rfpy/auth/errors.py (no function) 19 0 1 100%
rfpy/auth/password.py gensalt 1 0 0 100%
rfpy/auth/password.py create_hash 3 0 0 100%
rfpy/auth/password.py create_signature 3 0 0 100%
rfpy/auth/password.py validate_hash 3 0 0 100%
rfpy/auth/password.py (no function) 10 0 0 100%
rfpy/auth/perms.py _is_perm 5 0 0 100%
rfpy/auth/perms.py title_cased 1 0 0 100%
rfpy/auth/perms.py (no function) 53 0 0 100%
rfpy/auth/policy.py AbstractIdentityPolicy.identify 0 0 2 100%
rfpy/auth/policy.py AbstractIdentityPolicy.remember 0 0 2 100%
rfpy/auth/policy.py set_user_object 8 0 0 100%
rfpy/auth/policy.py JwtBearerPolicy.identify 9 0 0 100%
rfpy/auth/policy.py JwtBearerPolicy.remember 1 0 0 100%
rfpy/auth/policy.py JwtBearerPolicy._decode_jwt_token 16 0 0 100%
rfpy/auth/policy.py PassthroughPolicy.identify 1 0 0 100%
rfpy/auth/policy.py PassthroughPolicy.remember 1 0 0 100%
rfpy/auth/policy.py DevHeaderPolicy.__init__ 2 0 0 100%
rfpy/auth/policy.py DevHeaderPolicy.identify 13 0 0 100%
rfpy/auth/policy.py DevHeaderPolicy.remember 1 0 0 100%
rfpy/auth/policy.py FallbackPolicy.__init__ 3 0 0 100%
rfpy/auth/policy.py FallbackPolicy.identify 6 0 0 100%
rfpy/auth/policy.py FallbackPolicy.remember 1 0 0 100%
rfpy/auth/policy.py (no function) 26 0 8 100%
rfpy/auth/roles.py CheckingSet.add 3 0 0 100%
rfpy/auth/roles.py (no function) 7 0 0 100%
rfpy/auth/vendor_actions.py (no function) 8 0 2 100%
rfpy/auth/webapp.py TokenAuthenticationApp.__init__ 3 0 0 100%
rfpy/auth/webapp.py TokenAuthenticationApp.validate_user 1 0 0 100%
rfpy/auth/webapp.py TokenAuthenticationApp.build_sux 1 0 0 100%
rfpy/auth/webapp.py status 1 0 0 100%
rfpy/auth/webapp.py (no function) 14 0 0 100%
rfpy/auth/wsgi.py (no function) 7 0 2 100%
rfpy/buyer/__init__.py (no function) 0 0 0 100%
rfpy/buyer/webapp.py BuyerApp.validate_user 4 0 0 100%
rfpy/buyer/webapp.py BuyerApp.build_sux 1 0 0 100%
rfpy/buyer/webapp.py raise_check 1 0 0 100%
rfpy/buyer/webapp.py (no function) 14 0 0 100%
rfpy/conf/__init__.py (no function) 2 0 0 100%
rfpy/conf/logHandlers.py PostmarkHandler.__init__ 5 0 0 100%
rfpy/conf/logHandlers.py PostmarkHandler.emit 8 0 0 100%
rfpy/conf/logHandlers.py (no function) 9 0 0 100%
rfpy/conf/logconf.py (no function) 3 0 0 100%
rfpy/conf/settings.py AppSettings.sqlalchemy_dsn 1 0 0 100%
rfpy/conf/settings.py AppSettings.cache_dir 1 0 0 100%
rfpy/conf/settings.py AppSettings.attachments_dir 1 0 0 100%
rfpy/conf/settings.py AppSettings.validate_dirs 9 0 0 100%
rfpy/conf/settings.py AppSettings.random_cache_file_path 2 0 0 100%
rfpy/conf/settings.py AppSettings.conn_string 2 0 0 100%
rfpy/conf/settings.py AppSettings.test_usable 10 0 0 100%
rfpy/conf/settings.py AppSettings.__iter__ 2 0 0 100%
rfpy/conf/settings.py (no function) 57 0 0 100%
rfpy/jobs/__init__.py (no function) 0 0 0 100%
rfpy/jobs/dbcleanup.py cleanup_expired_tokens 3 3 0 0%
rfpy/jobs/dbcleanup.py (no function) 6 6 0 0%
rfpy/jobs/events/__init__.py (no function) 2 0 0 100%
rfpy/jobs/events/action.py debug_model 3 0 0 100%
rfpy/jobs/events/action.py webhook_evt_types 1 0 0 100%
rfpy/jobs/events/action.py handles.__init__ 1 0 0 100%
rfpy/jobs/events/action.py handles.__call__ 5 1 0 80%
rfpy/jobs/events/action.py handle_event 8 0 0 100%
rfpy/jobs/events/action.py handler_exists_for 1 0 0 100%
rfpy/jobs/events/action.py run_event_handlers 2 0 0 100%
rfpy/jobs/events/action.py logging_context 2 0 0 100%
rfpy/jobs/events/action.py logging_context._cm 6 0 0 100%
rfpy/jobs/events/action.py EventProcessor.__init__ 5 0 0 100%
rfpy/jobs/events/action.py EventProcessor.process 16 1 0 94%
rfpy/jobs/events/action.py EventProcessor.generate_evt_model 1 0 0 100%
rfpy/jobs/events/action.py EventProcessor.moderate_event_acl 1 0 0 100%
rfpy/jobs/events/action.py EventProcessor._iter_watchers 5 0 0 100%
rfpy/jobs/events/action.py EventProcessor.recipients 6 0 0 100%
rfpy/jobs/events/action.py EventProcessor.assign_notifications 7 0 0 100%
rfpy/jobs/events/action.py EventProcessor.get_model 6 0 0 100%
rfpy/jobs/events/action.py EventProcessor.augment_model 1 0 0 100%
rfpy/jobs/events/action.py EventProcessor.send_emails 11 0 0 100%
rfpy/jobs/events/action.py EventProcessor.ping_webhooks 6 2 0 67%
rfpy/jobs/events/action.py EventProcessor.publish_to_fanout 4 0 0 100%
rfpy/jobs/events/action.py EventProcessor.fanout_data 1 0 0 100%
rfpy/jobs/events/action.py EventProcessor.extra 1 0 0 100%
rfpy/jobs/events/action.py VendorStatusAction.extra 2 0 0 100%
rfpy/jobs/events/action.py VendorStatusAction.assign_accepting_admin_to_watchlist 2 0 0 100%
rfpy/jobs/events/action.py IssueReleased.assign_notifications 17 0 0 100%
rfpy/jobs/events/action.py SectionAccess.recipients 10 1 0 90%
rfpy/jobs/events/action.py ProjectNoteHandler.moderate_event_acl 15 0 0 100%
rfpy/jobs/events/action.py ProjectNoteHandler.recipients 4 0 0 100%
rfpy/jobs/events/action.py ProjectNoteHandler.augment_model 3 0 0 100%
rfpy/jobs/events/action.py ScoreCommentHandler.recipients 15 0 0 100%
rfpy/jobs/events/action.py ScoreCommentHandler.augment_model 7 0 0 100%
rfpy/jobs/events/action.py (no function) 87 0 6 100%
rfpy/jobs/events/fanout.py subscribe 12 0 0 100%
rfpy/jobs/events/fanout.py fanout_envelope 1 0 0 100%
rfpy/jobs/events/fanout.py send_update 13 0 0 100%
rfpy/jobs/events/fanout.py (no function) 17 0 6 100%
rfpy/jobs/events/webhooks.py retry_ping_webhook 15 0 2 100%
rfpy/jobs/events/webhooks.py ping_webhook 25 1 0 96%
rfpy/jobs/events/webhooks.py (no function) 15 0 3 100%
rfpy/jobs/offload.py spool_event_handler 15 0 2 100%
rfpy/jobs/offload.py (no function) 14 0 5 100%
rfpy/jobs/uwsgi_stubs.py spool 3 0 0 100%
rfpy/jobs/uwsgi_stubs.py spool._ 5 0 0 100%
rfpy/jobs/uwsgi_stubs.py (no function) 4 0 0 100%
rfpy/mail/__init__.py (no function) 0 0 0 100%
rfpy/mail/postmark.py api_headers 1 0 0 100%
rfpy/mail/postmark.py _handle_response 4 0 0 100%
rfpy/mail/postmark.py send_simple_email 2 0 0 100%
rfpy/mail/postmark.py send_template_email 3 0 0 100%
rfpy/mail/postmark.py (no function) 9 0 9 100%
rfpy/mail/schemas.py build_template_model 5 0 0 100%
rfpy/mail/schemas.py (no function) 65 0 2 100%
rfpy/mail/stub.py clear_mailbox 1 0 0 100%
rfpy/mail/stub.py get_tmpl 4 0 0 100%
rfpy/mail/stub.py render_msg 1 0 0 100%
rfpy/mail/stub.py send_email 11 0 0 100%
rfpy/mail/stub.py (no function) 13 0 0 100%
rfpy/model/__init__.py (no function) 12 0 0 100%
rfpy/model/acl.py Participant.__repr__ 0 0 2 100%
rfpy/model/acl.py Participant.role_permissions 1 0 0 100%
rfpy/model/acl.py Participant.role_name 5 2 0 60%
rfpy/model/acl.py Participant.as_dict 2 2 0 0%
rfpy/model/acl.py ProjectPermission.__repr__ 0 0 4 100%
rfpy/model/acl.py SectionPermission.__repr__ 0 0 1 100%
rfpy/model/acl.py UserAdminToken.__repr__ 0 0 2 100%
rfpy/model/acl.py LoginToken.__repr__ 0 0 4 100%
rfpy/model/acl.py UserRegistrationToken.__repr__ 0 0 4 100%
rfpy/model/acl.py IssueRegistrationToken.__repr__ 0 0 4 100%
rfpy/model/acl.py PasswordResetToken.__repr__ 0 0 4 100%
rfpy/model/acl.py (no function) 66 0 14 100%
rfpy/model/audit/__init__.py (no function) 2 0 0 100%
rfpy/model/audit/event.py PropertyChanges.__init__ 1 0 0 100%
rfpy/model/audit/event.py PropertyChanges.add 3 0 0 100%
rfpy/model/audit/event.py PropertyChanges.as_string 1 0 0 100%
rfpy/model/audit/event.py change_to_json 4 0 0 100%
rfpy/model/audit/event.py EventStatusType.process_bind_param 1 0 0 100%
rfpy/model/audit/event.py EventStatusType.process_result_value 1 0 0 100%
rfpy/model/audit/event.py AuditEvent.__init__ 3 0 0 100%
rfpy/model/audit/event.py AuditEvent.__repr__ 0 0 1 100%
rfpy/model/audit/event.py AuditEvent.set_text 0 0 1 100%
rfpy/model/audit/event.py AuditEvent.check_object_id_unicode 1 0 0 100%
rfpy/model/audit/event.py AuditEvent.create 12 0 0 100%
rfpy/model/audit/event.py AuditEvent.changes 8 1 0 88%
rfpy/model/audit/event.py AuditEvent.set_changes 1 0 0 100%
rfpy/model/audit/event.py AuditEvent.add_change 4 0 0 100%
rfpy/model/audit/event.py AuditEvent.build_acl 13 0 0 100%
rfpy/model/audit/event.py AuditEvent.add_to_acl 1 0 0 100%
rfpy/model/audit/event.py AuditEvent.set_done 1 0 0 100%
rfpy/model/audit/event.py EventOrgACL.__repr__ 0 0 1 100%
rfpy/model/audit/event.py serialize_property_changes 2 0 0 100%
rfpy/model/audit/event.py set_status_done_if_no_handler 3 0 0 100%
rfpy/model/audit/event.py enqueue_event_job 6 0 0 100%
rfpy/model/audit/event.py (no function) 89 0 9 100%
rfpy/model/audit/evt_types.py (no function) 78 0 0 100%
rfpy/model/audit/visible.py check_all_events_assigned 6 0 0 100%
rfpy/model/audit/visible.py (no function) 6 0 0 100%
rfpy/model/composite.py QuestionMeta.__repr__ 0 0 1 100%
rfpy/model/composite.py qsignature 1 0 0 100%
rfpy/model/composite.py update_meta_row_stmt 14 0 0 100%
rfpy/model/composite.py update_qmeta_table 10 0 0 100%
rfpy/model/composite.py (no function) 20 0 1 100%
rfpy/model/exc.py BusinessRuleViolation.__init__ 1 0 0 100%
rfpy/model/exc.py DuplicateDataProvided.__init__ 1 0 0 100%
rfpy/model/exc.py ValidationFailure.__init__ 5 0 0 100%
rfpy/model/exc.py ValidationFailure.__str__ 4 0 0 100%
rfpy/model/exc.py DuplicateQuestionDefinition.__init__ 1 0 0 100%
rfpy/model/exc.py (no function) 23 0 0 100%
rfpy/model/graph.py RelationshipType.__repr__ 0 0 1 100%
rfpy/model/graph.py Edge.relationship 1 1 0 0%
rfpy/model/graph.py Edge.__repr__ 0 0 1 100%
rfpy/model/graph.py (no function) 25 0 2 100%
rfpy/model/helpers.py ensure.__init__ 5 0 0 100%
rfpy/model/helpers.py ensure.__call__ 2 0 0 100%
rfpy/model/helpers.py ensure.__call__.wrapped 9 0 0 100%
rfpy/model/helpers.py validate_section_children 9 0 0 100%
rfpy/model/helpers.py audited_patch 6 0 0 100%
rfpy/model/helpers.py (no function) 10 0 3 100%
rfpy/model/humans.py OrgTypeCol.process_bind_param 1 0 0 100%
rfpy/model/humans.py OrgTypeCol.process_result_value 4 0 0 100%
rfpy/model/humans.py ConsultantClientRelationship.__repr__ 0 0 1 100%
rfpy/model/humans.py ConsultantClientRelationship.__init__ 2 0 0 100%
rfpy/model/humans.py Organisation.__init__ 2 0 0 100%
rfpy/model/humans.py Organisation.__repr__ 0 0 1 100%
rfpy/model/humans.py Organisation.is_consultant 1 0 0 100%
rfpy/model/humans.py Organisation.is_buyside 1 0 0 100%
rfpy/model/humans.py Organisation.has_supplier 5 0 0 100%
rfpy/model/humans.py ConsultantOrganisation.add_client 1 0 0 100%
rfpy/model/humans.py custom_perms 1 0 0 100%
rfpy/model/humans.py RefreshToken.__repr__ 0 0 1 100%
rfpy/model/humans.py User.__init__ 3 0 0 100%
rfpy/model/humans.py User.__repr__ 0 0 1 100%
rfpy/model/humans.py User.custom_permissions 2 0 0 100%
rfpy/model/humans.py User.is_restricted 1 0 0 100%
rfpy/model/humans.py User.is_restricted 1 0 0 100%
rfpy/model/humans.py User.has_permission 5 0 0 100%
rfpy/model/humans.py User.check_permission 2 0 0 100%
rfpy/model/humans.py User.check_is_standard 2 0 0 100%
rfpy/model/humans.py User.builtin_permissions 6 0 0 100%
rfpy/model/humans.py User.all_permissions 1 0 0 100%
rfpy/model/humans.py User.sorted_permissions 1 0 0 100%
rfpy/model/humans.py User.add_role 4 0 0 100%
rfpy/model/humans.py User.is_in_role 1 0 0 100%
rfpy/model/humans.py User.is_administrator 1 0 0 100%
rfpy/model/humans.py User.can_view_section_id 5 0 0 100%
rfpy/model/humans.py User.create_refresh_token 6 6 0 0%
rfpy/model/humans.py User.revoke_all_refresh_tokens 1 1 0 0%
rfpy/model/humans.py UserRole.__repr__ 0 0 1 100%
rfpy/model/humans.py munged_id 5 0 0 100%
rfpy/model/humans.py CustomRole.__repr__ 0 0 1 100%
rfpy/model/humans.py CustomRolePermission.__repr__ 0 0 1 100%
rfpy/model/humans.py CustomRolePermission.known_permission 3 0 0 100%
rfpy/model/humans.py OrganisationCategory.__repr__ 0 0 1 100%
rfpy/model/humans.py FailedLoginAttempt.__repr__ 0 0 1 100%
rfpy/model/humans.py (no function) 172 0 18 100%
rfpy/model/issue.py IssueStatusType.process_bind_param 5 0 0 100%
rfpy/model/issue.py IssueStatusType.process_result_value 1 0 0 100%
rfpy/model/issue.py Issue.get_attachment 1 0 0 100%
rfpy/model/issue.py Issue.can_view_winloss 1 0 0 100%
rfpy/model/issue.py Issue.can_view_sql 1 0 0 100%
rfpy/model/issue.py Issue.__repr__ 0 0 4 100%
rfpy/model/issue.py Issue.deadline_passed 3 0 0 100%
rfpy/model/issue.py Issue.scoreable_filter 4 0 0 100%
rfpy/model/issue.py Issue._change_status 6 0 0 100%
rfpy/model/issue.py Issue.change_status 13 0 0 100%
rfpy/model/issue.py Issue.log_event 6 0 0 100%
rfpy/model/issue.py Issue.response_state_for_q 1 0 0 100%
rfpy/model/issue.py Issue.add_watcher 4 0 0 100%
rfpy/model/issue.py NotSentIssue._publish 4 0 0 100%
rfpy/model/issue.py NotSentIssue.to_opportunity 1 0 0 100%
rfpy/model/issue.py NotSentIssue.to_updateable 1 0 0 100%
rfpy/model/issue.py NotSentIssue.to_accepted 1 0 0 100%
rfpy/model/issue.py OpportunityIssue.to_accepted 3 0 0 100%
rfpy/model/issue.py OpportunityIssue.to_declined 3 0 0 100%
rfpy/model/issue.py OpportunityIssue.to_retracted 3 0 0 100%
rfpy/model/issue.py AcceptedIssue.to_declined 3 0 0 100%
rfpy/model/issue.py AcceptedIssue.to_submitted 16 0 0 100%
rfpy/model/issue.py AcceptedIssue.to_retracted 3 3 0 0%
rfpy/model/issue.py UpdateableIssue.to_retracted 3 0 0 100%
rfpy/model/issue.py SubmittedIssue.to_accepted 3 0 0 100%
rfpy/model/issue.py RetractedIssue.to_accepted 3 0 0 100%
rfpy/model/issue.py RetractedIssue.to_opportunity 3 0 0 100%
rfpy/model/issue.py check_org_or_email 3 0 0 100%
rfpy/model/issue.py Score.__repr__ 0 0 1 100%
rfpy/model/issue.py Score.question_id 1 0 0 100%
rfpy/model/issue.py Score.check_view_scores 2 0 0 100%
rfpy/model/issue.py Score.get_permission_for_scoreset 3 0 0 100%
rfpy/model/issue.py Score.validate_scoreset 2 0 0 100%
rfpy/model/issue.py Score.check_score_value 3 0 0 100%
rfpy/model/issue.py ScoreComment.user_name 1 0 0 100%
rfpy/model/issue.py IssueAttachment.url 1 0 0 100%
rfpy/model/issue.py IssueAttachment.respondent_name 1 0 0 100%
rfpy/model/issue.py (no function) 169 0 5 100%
rfpy/model/meta.py human_friendly_bytes 7 0 0 100%
rfpy/model/meta.py Visitor.__init__ 0 0 1 100%
rfpy/model/meta.py Visitor.hello_section 0 0 1 100%
rfpy/model/meta.py Visitor.goodbye_section 0 0 1 100%
rfpy/model/meta.py Visitor.visit_question 0 0 8 100%
rfpy/model/meta.py Visitor.get_result 0 0 1 100%
rfpy/model/meta.py Visitor.finalise 0 0 1 100%
rfpy/model/meta.py Base.as_dict 2 0 0 100%
rfpy/model/meta.py Base.__repr__ 0 0 1 100%
rfpy/model/meta.py Base._instance_session 1 0 0 100%
rfpy/model/meta.py receive_before_mapper_configured 8 0 0 100%
rfpy/model/meta.py AttachmentMixin._make_safe_filename 3 0 0 100%
rfpy/model/meta.py AttachmentMixin.guess_set_mimetype 3 0 0 100%
rfpy/model/meta.py AttachmentMixin.size 1 0 0 100%
rfpy/model/meta.py AttachmentMixin.__repr__ 0 0 3 100%
rfpy/model/meta.py (no function) 26 0 19 100%
rfpy/model/misc.py Category.__repr__ 0 0 1 100%
rfpy/model/misc.py clean_search_term 15 0 0 100%
rfpy/model/misc.py (no function) 16 0 4 100%
rfpy/model/notes.py NoteKind.process_bind_param 1 0 0 100%
rfpy/model/notes.py NoteKind.process_result_value 1 0 0 100%
rfpy/model/notes.py ProjectNote.__repr__ 0 0 3 100%
rfpy/model/notes.py ProjectNote.distribution 12 0 0 100%
rfpy/model/notes.py ProjectNote.pretty_distribution 1 0 0 100%
rfpy/model/notes.py (no function) 41 0 3 100%
rfpy/model/notify.py ProjectWatchList.__repr__ 0 0 1 100%
rfpy/model/notify.py IssueWatchList.__repr__ 0 0 1 100%
rfpy/model/notify.py EmailNotification.__repr__ 0 0 4 100%
rfpy/model/notify.py EmailNotification.set_sent 2 0 0 100%
rfpy/model/notify.py EmailNotification.set_delivered 4 0 0 100%
rfpy/model/notify.py EmailNotification.set_bounced 1 0 0 100%
rfpy/model/notify.py EmailNotification.set_failed 1 0 0 100%
rfpy/model/notify.py WebhookSubscription.__repr__ 0 0 1 100%
rfpy/model/notify.py WebhookSubscription.set_delivered 3 3 0 0%
rfpy/model/notify.py WebhookSubscription.set_failed_attempt 5 5 0 0%
rfpy/model/notify.py WebhookSubscription.set_aborted 4 4 0 0%
rfpy/model/notify.py WebhookSubscription.reset_status 3 0 0 100%
rfpy/model/notify.py WebhookSubscription.max_tries_exceeded 1 1 0 0%
rfpy/model/notify.py WebhookSubscription.is_aborted 1 1 0 0%
rfpy/model/notify.py (no function) 80 0 7 100%
rfpy/model/project.py Status.process_bind_param 1 0 0 100%
rfpy/model/project.py Status.process_result_value 1 0 0 100%
rfpy/model/project.py LazyParticipants.__init__ 1 0 0 100%
rfpy/model/project.py LazyParticipants.roleq 1 0 0 100%
rfpy/model/project.py LazyParticipants.__contains__ 6 1 0 83%
rfpy/model/project.py LazyParticipants.__iter__ 2 0 0 100%
rfpy/model/project.py LazyParticipants.__len__ 1 0 0 100%
rfpy/model/project.py LazyParticipants.get 1 0 0 100%
rfpy/model/project.py LazyParticipants.add 1 0 0 100%
rfpy/model/project.py LazyParticipants.clear 1 0 0 100%
rfpy/model/project.py LazyRestrictedUsers.__init__ 1 0 0 100%
rfpy/model/project.py LazyRestrictedUsers.project_perms_query 4 0 0 100%
rfpy/model/project.py LazyRestrictedUsers.__contains__ 2 0 0 100%
rfpy/model/project.py LazyRestrictedUsers.__iter__ 2 0 0 100%
rfpy/model/project.py Project.__init__ 2 0 0 100%
rfpy/model/project.py Project.issues 1 0 0 100%
rfpy/model/project.py Project.issue_by_id 1 0 0 100%
rfpy/model/project.py Project.question_by_number 1 0 0 100%
rfpy/model/project.py Project.published_issues 1 0 0 100%
rfpy/model/project.py Project.opportunity_issues 1 0 0 100%
rfpy/model/project.py Project.respondent_watchers 2 0 0 100%
rfpy/model/project.py Project.iter_all_watchers 2 0 0 100%
rfpy/model/project.py Project.deadline_passed 3 0 0 100%
rfpy/model/project.py Project.scoreable_issues 4 0 0 100%
rfpy/model/project.py Project.get_issue 1 0 0 100%
rfpy/model/project.py Project.__repr__ 0 0 1 100%
rfpy/model/project.py Project.participants 1 0 0 100%
rfpy/model/project.py Project.restricted_users 1 0 0 100%
rfpy/model/project.py Project.project_type 3 0 0 100%
rfpy/model/project.py Project.project_type 5 0 0 100%
rfpy/model/project.py Project.participant_role_permissions 5 0 0 100%
rfpy/model/project.py Project.list_attachments 2 0 0 100%
rfpy/model/project.py Project.get_attachment 2 0 0 100%
rfpy/model/project.py Project.list_issue_attachments 3 0 0 100%
rfpy/model/project.py Project.check_attachments_visible 2 0 0 100%
rfpy/model/project.py Project.get_participant 1 0 0 100%
rfpy/model/project.py Project.query_visible_questions 3 0 0 100%
rfpy/model/project.py Project.visit_questionnaire 11 0 0 100%
rfpy/model/project.py Project.print_questionnaire 0 0 1 100%
rfpy/model/project.py Project.calculate_normalised_weights 1 0 0 100%
rfpy/model/project.py Project.save_total_weights 6 0 0 100%
rfpy/model/project.py Project.delete_total_weights 1 0 0 100%
rfpy/model/project.py Project.total_weights_exist_for 2 0 0 100%
rfpy/model/project.py Project.add_issue 1 0 0 100%
rfpy/model/project.py Project.add_watcher 4 0 0 100%
rfpy/model/project.py Project.contains_section_id 1 0 0 100%
rfpy/model/project.py LiveProject.build_score_key 1 0 0 100%
rfpy/model/project.py LiveProject.generate_autoscores 11 0 0 100%
rfpy/model/project.py LiveProject.scores_dict 6 0 0 100%
rfpy/model/project.py ProjectField.__repr__ 0 0 4 100%
rfpy/model/project.py PrintVisitor.__init__ 0 0 1 100%
rfpy/model/project.py PrintVisitor.inset 0 0 1 100%
rfpy/model/project.py PrintVisitor.hello_section 0 0 21 100%
rfpy/model/project.py PrintVisitor.goodbye_section 0 0 1 100%
rfpy/model/project.py PrintVisitor.visit_question 0 0 7 100%
rfpy/model/project.py (no function) 160 0 21 100%
rfpy/model/questionnaire.py to_b36 3 0 0 100%
rfpy/model/questionnaire.py base36encode 13 0 0 100%
rfpy/model/questionnaire.py from_b36 5 0 0 100%
rfpy/model/questionnaire.py NumberString.__init__ 1 0 0 100%
rfpy/model/questionnaire.py NumberString.dotted 1 0 0 100%
rfpy/model/questionnaire.py NumberString.next_increment 3 0 0 100%
rfpy/model/questionnaire.py NumberString.first_child 5 0 0 100%
rfpy/model/questionnaire.py NumberString.from_dotted 1 0 0 100%
rfpy/model/questionnaire.py NumberString.visible_relatives_regex 5 0 0 100%
rfpy/model/questionnaire.py SafeNumber.__get__ 3 0 0 100%
rfpy/model/questionnaire.py SafeNumber.__set__ 5 0 0 100%
rfpy/model/questionnaire.py PositionNumber.process_bind_param 1 0 0 100%
rfpy/model/questionnaire.py PositionNumber.process_result_value 1 0 0 100%
rfpy/model/questionnaire.py PositionNumber.copy 1 0 0 100%
rfpy/model/questionnaire.py Section.__repr__ 0 0 1 100%
rfpy/model/questionnaire.py Section.as_dict 1 0 0 100%
rfpy/model/questionnaire.py Section.renumber 15 0 0 100%
rfpy/model/questionnaire.py Section.accept 7 0 0 100%
rfpy/model/questionnaire.py Section.is_top_level 1 0 0 100%
rfpy/model/questionnaire.py Section.weight 4 0 0 100%
rfpy/model/questionnaire.py Section.weight 1 0 0 100%
rfpy/model/questionnaire.py Section.absolute_weight 12 0 0 100%
rfpy/model/questionnaire.py Section.absolute_weight 1 0 0 100%
rfpy/model/questionnaire.py Section.check_position 18 0 0 100%
rfpy/model/questionnaire.py QuestionDefinition.__repr__ 0 0 1 100%
rfpy/model/questionnaire.py QuestionDefinition.__eq__ 5 1 0 80%
rfpy/model/questionnaire.py QuestionDefinition.__hash__ 1 1 0 0%
rfpy/model/questionnaire.py QuestionDefinition.is_shared 3 0 0 100%
rfpy/model/questionnaire.py QuestionDefinition.get_element 1 0 0 100%
rfpy/model/questionnaire.py QuestionDefinition.as_dict 13 0 0 100%
rfpy/model/questionnaire.py QuestionDefinition.answerable_elements 1 0 0 100%
rfpy/model/questionnaire.py QuestionDefinition.add_element 3 0 0 100%
rfpy/model/questionnaire.py QuestionDefinition.is_tabular 1 0 0 100%
rfpy/model/questionnaire.py QuestionDefinition.column_count 3 0 0 100%
rfpy/model/questionnaire.py QuestionDefinition.row_count 3 0 0 100%
rfpy/model/questionnaire.py QuestionDefinition.grid_area 1 0 0 100%
rfpy/model/questionnaire.py QuestionDefinition.occupied_area 1 0 0 100%
rfpy/model/questionnaire.py QuestionDefinition.is_table_valid 1 0 0 100%
rfpy/model/questionnaire.py QuestionDefinition.build 11 0 0 100%
rfpy/model/questionnaire.py SaveAnswersResult.__init__ 3 0 0 100%
rfpy/model/questionnaire.py QuestionInstance.__repr__ 0 0 1 100%
rfpy/model/questionnaire.py QuestionInstance.__eq__ 3 1 0 67%
rfpy/model/questionnaire.py QuestionInstance.__hash__ 1 0 0 100%
rfpy/model/questionnaire.py QuestionInstance.all_answers 1 0 0 100%
rfpy/model/questionnaire.py QuestionInstance.answers_for_issue 1 0 0 100%
rfpy/model/questionnaire.py QuestionInstance.single_vendor_dict 2 0 0 100%
rfpy/model/questionnaire.py QuestionInstance.title 1 0 0 100%
rfpy/model/questionnaire.py QuestionInstance.elements 1 0 0 100%
rfpy/model/questionnaire.py QuestionInstance.weight 4 0 0 100%
rfpy/model/questionnaire.py QuestionInstance.weight 3 0 0 100%
rfpy/model/questionnaire.py QuestionInstance.as_dict 1 1 0 0%
rfpy/model/questionnaire.py QuestionInstance.is_autoscored 6 0 0 100%
rfpy/model/questionnaire.py QuestionInstance.calculate_autoscores 14 0 0 100%
rfpy/model/questionnaire.py QuestionInstance.absolute_weight 7 0 0 100%
rfpy/model/questionnaire.py QuestionInstance.absolute_weight 1 0 0 100%
rfpy/model/questionnaire.py QuestionInstance.validate_and_save_answers 27 0 0 100%
rfpy/model/questionnaire.py QElement.__eq__ 9 3 0 67%
rfpy/model/questionnaire.py QElement.__hash__ 1 1 0 0%
rfpy/model/questionnaire.py QElement.get_answer 1 0 0 100%
rfpy/model/questionnaire.py QElement.get_question_instance 1 0 0 100%
rfpy/model/questionnaire.py QElement.split_choice_string 5 0 0 100%
rfpy/model/questionnaire.py QElement.build 3 0 0 100%
rfpy/model/questionnaire.py QElement.cell_area 1 0 0 100%
rfpy/model/questionnaire.py QElement.summary 1 0 0 100%
rfpy/model/questionnaire.py Checkbox.validate 3 0 0 100%
rfpy/model/questionnaire.py TextInput.as_dict 1 0 0 100%
rfpy/model/questionnaire.py TextInput.validate 3 0 0 100%
rfpy/model/questionnaire.py TextInput.summary 1 0 0 100%
rfpy/model/questionnaire.py MultipleChoice.as_dict 4 0 0 100%
rfpy/model/questionnaire.py MultipleChoice.validate 4 0 0 100%
rfpy/model/questionnaire.py MultipleChoice.summary 3 0 0 100%
rfpy/model/questionnaire.py SupportingAttachment.validate 2 0 0 100%
rfpy/model/questionnaire.py SupportingAttachment.summary 1 0 0 100%
rfpy/model/questionnaire.py Answer.as_dict 1 0 0 100%
rfpy/model/questionnaire.py Answer.__repr__ 0 0 1 100%
rfpy/model/questionnaire.py AnswerReport.__repr__ 0 0 1 100%
rfpy/model/questionnaire.py ResponseStatusCol.process_bind_param 1 0 0 100%
rfpy/model/questionnaire.py ResponseStatusCol.process_result_value 1 0 0 100%
rfpy/model/questionnaire.py AAttachment.__repr__ 0 0 1 100%
rfpy/model/questionnaire.py WeightingSet.__repr__ 0 0 1 100%
rfpy/model/questionnaire.py WeightingSet.lookup_table 7 0 0 100%
rfpy/model/questionnaire.py Weighting.__repr__ 0 0 1 100%
rfpy/model/questionnaire.py TotalWeighting.__repr__ 0 0 1 100%
rfpy/model/questionnaire.py LoadWeightSetVisitor.__init__ 4 0 0 100%
rfpy/model/questionnaire.py LoadWeightSetVisitor.hello_section 1 0 0 100%
rfpy/model/questionnaire.py LoadWeightSetVisitor.visit_question 1 0 0 100%
rfpy/model/questionnaire.py HierarchyWeightingsVisitor.hello_section 4 0 0 100%
rfpy/model/questionnaire.py HierarchyWeightingsVisitor._set_subsection_normalised_weights 6 0 0 100%
rfpy/model/questionnaire.py HierarchyWeightingsVisitor._set_question_normalised_weights 6 0 0 100%
rfpy/model/questionnaire.py SaveTotalWeightingsVisitor.__init__ 5 0 0 100%
rfpy/model/questionnaire.py SaveTotalWeightingsVisitor.hello_section 2 0 0 100%
rfpy/model/questionnaire.py SaveTotalWeightingsVisitor.visit_question 2 0 0 100%
rfpy/model/questionnaire.py SaveTotalWeightingsVisitor.finalise 1 0 0 100%
rfpy/model/questionnaire.py (no function) 328 0 14 100%
rfpy/model/tags.py (no function) 16 0 0 100%
rfpy/suxint.py _set_exposed 4 0 0 100%
rfpy/suxint.py http 2 0 0 100%
rfpy/suxint.py http_etag 3 0 0 100%
rfpy/suxint.py Sux.__init__ 17 0 0 100%
rfpy/suxint.py Sux.is_handler_module_valid 1 0 0 100%
rfpy/suxint.py Sux.load_handler_module 5 0 0 100%
rfpy/suxint.py Sux.load_handler_cache 2 0 0 100%
rfpy/suxint.py Sux.load_adaptors 7 0 0 100%
rfpy/suxint.py Sux.extract_handler_name 7 0 0 100%
rfpy/suxint.py Sux.no_matching_handler 7 0 0 100%
rfpy/suxint.py Sux.args_for_handler 7 0 0 100%
rfpy/suxint.py Sux.__call__ 30 0 0 100%
rfpy/suxint.py Sux.iter_handler_modules 3 0 0 100%
rfpy/suxint.py Sux.iter_handlers 7 0 0 100%
rfpy/suxint.py Sux.handler_by_name 3 0 0 100%
rfpy/suxint.py Handler.__init__ 8 0 0 100%
rfpy/suxint.py Handler.method 1 0 0 100%
rfpy/suxint.py Handler.path 4 0 0 100%
rfpy/suxint.py Handler.path.lookup 5 0 0 100%
rfpy/suxint.py Handler.path_params 4 0 0 100%
rfpy/suxint.py Handler.adaptors 3 0 0 100%
rfpy/suxint.py Handler.parameters 3 0 0 100%
rfpy/suxint.py Handler.required_arguments 1 0 0 100%
rfpy/suxint.py Handler.optional_arguments 1 0 0 100%
rfpy/suxint.py Handler.docs 8 0 0 100%
rfpy/suxint.py Handler.permissions 3 0 0 100%
rfpy/suxint.py Handler.errors 3 0 0 100%
rfpy/suxint.py Handler.return_annotation 6 0 0 100%
rfpy/suxint.py Handler.return_value 3 0 0 100%
rfpy/suxint.py Handler.__repr__ 0 0 3 100%
rfpy/suxint.py DocString.__init__ 4 0 0 100%
rfpy/suxint.py DocString._key 1 0 0 100%
rfpy/suxint.py DocString.intro 2 0 0 100%
rfpy/suxint.py DocString.permissions 1 0 0 100%
rfpy/suxint.py DocString.errors 1 0 0 100%
rfpy/suxint.py ArgExtractor.__init__ 15 0 0 100%
rfpy/suxint.py ArgExtractor.validate 3 0 0 100%
rfpy/suxint.py ArgExtractor.validate_enums 7 0 0 100%
rfpy/suxint.py ArgExtractor.typed 12 0 0 100%
rfpy/suxint.py ArgExtractor.__call__ 5 0 0 100%
rfpy/suxint.py ArgExtractor.extract 0 0 1 100%
rfpy/suxint.py ArgExtractor.update_openapi_path_object 15 1 0 93%
rfpy/suxint.py ArgExtractor.augment_openapi_path_object 1 0 0 100%
rfpy/suxint.py ArgExtractor.swagger_type 1 0 0 100%
rfpy/suxint.py ArgExtractor.doc_name 1 0 0 100%
rfpy/suxint.py PathArg.__init__ 3 0 0 100%
rfpy/suxint.py PathArg.extract 6 0 0 100%
rfpy/suxint.py PathArg.doc_name 1 0 0 100%
rfpy/suxint.py GetArg.extract 9 0 0 100%
rfpy/suxint.py GetArgSet.__init__ 4 0 0 100%
rfpy/suxint.py GetArgSet.extract 10 0 0 100%
rfpy/suxint.py GetArgSet.augment_openapi_path_object 6 0 0 100%
rfpy/suxint.py _get_or_create_schema 1 0 0 100%
rfpy/suxint.py PostArg.extract 7 0 0 100%
rfpy/suxint.py PostArg.update_openapi_path_object 6 0 0 100%
rfpy/suxint.py PostFileArg.__init__ 2 0 0 100%
rfpy/suxint.py PostFileArg.extract 4 1 0 75%
rfpy/suxint.py PostFileArg.update_openapi_path_object 4 0 0 100%
rfpy/suxint.py downgrade_prop 8 0 0 100%
rfpy/suxint.py _downgrade_json_schema 8 0 0 100%
rfpy/suxint.py servers_object 1 0 0 100%
rfpy/suxint.py add_model_components 14 3 0 79%
rfpy/suxint.py create_spec 16 0 0 100%
rfpy/suxint.py (no function) 120 0 1 100%
rfpy/templates/__init__.py init_jinja 10 0 0 100%
rfpy/templates/__init__.py get_template 2 0 0 100%
rfpy/templates/__init__.py (no function) 8 0 0 100%
rfpy/tools.py populate_answers 9 0 0 100%
rfpy/tools.py populate_answers.factory 1 0 0 100%
rfpy/tools.py banner_files 0 0 16 100%
rfpy/tools.py list_missing_templates 10 0 0 100%
rfpy/tools.py save_templates_to_disc 14 0 0 100%
rfpy/tools.py upload_templates_to_postmark 13 0 0 100%
rfpy/tools.py (no function) 15 0 1 100%
rfpy/utils.py configure_rfpy 7 1 0 86%
rfpy/utils.py build_engine 12 0 0 100%
rfpy/utils.py log_setup_details 12 1 0 92%
rfpy/utils.py benchmark.__init__ 0 0 2 100%
rfpy/utils.py benchmark.__enter__ 0 0 1 100%
rfpy/utils.py benchmark.__exit__ 0 0 11 100%
rfpy/utils.py profiled 0 0 11 100%
rfpy/utils.py configure_logging 0 0 17 100%
rfpy/utils.py json_default 11 0 0 100%
rfpy/utils.py encrypt_value 3 0 0 100%
rfpy/utils.py decrypt_value 5 0 0 100%
rfpy/utils.py (no function) 25 0 11 100%
rfpy/vendor/__init__.py (no function) 0 0 0 100%
rfpy/vendor/api/__init__.py (no function) 1 0 0 100%
rfpy/vendor/api/attachments.py post_issue_attachment 4 0 0 100%
rfpy/vendor/api/attachments.py post_issue_answer_attachment 19 0 0 100%
rfpy/vendor/api/attachments.py get_issue_answer_attachment 5 0 0 100%
rfpy/vendor/api/attachments.py get_issue_attachment 4 0 0 100%
rfpy/vendor/api/attachments.py get_issue_attachments 3 0 0 100%
rfpy/vendor/api/attachments.py delete_issue_attachments 7 0 0 100%
rfpy/vendor/api/attachments.py get_issue_question_attachment 5 0 0 100%
rfpy/vendor/api/attachments.py (no function) 24 0 0 100%
rfpy/vendor/api/audit.py get_events 4 0 0 100%
rfpy/vendor/api/audit.py (no function) 8 0 0 100%
rfpy/vendor/api/issue.py _issue_q 1 0 0 100%
rfpy/vendor/api/issue.py get_issue 3 0 0 100%
rfpy/vendor/api/issue.py get_issues 2 0 0 100%
rfpy/vendor/api/issue.py post_issue_status 9 1 0 89%
rfpy/vendor/api/issue.py post_issue_workflow 3 0 0 100%
rfpy/vendor/api/issue.py post_issue_note 11 0 0 100%
rfpy/vendor/api/issue.py get_issue_notes 5 0 0 100%
rfpy/vendor/api/issue.py (no function) 24 0 3 100%
rfpy/vendor/api/questionnaire.py get_issue_tree 4 0 0 100%
rfpy/vendor/api/questionnaire.py get_issue_question 6 0 0 100%
rfpy/vendor/api/questionnaire.py get_issue_sections 4 0 0 100%
rfpy/vendor/api/questionnaire.py get_issue_section 7 0 0 100%
rfpy/vendor/api/questionnaire.py get_issue_section_stats 4 0 0 100%
rfpy/vendor/api/questionnaire.py post_issue_question_answers 8 0 0 100%
rfpy/vendor/api/questionnaire.py get_issue_answers_search 5 0 0 100%
rfpy/vendor/api/questionnaire.py post_issue_answers_replace 12 0 0 100%
rfpy/vendor/api/questionnaire.py delete_issue_answer_element 14 0 0 100%
rfpy/vendor/api/questionnaire.py get_issue_answerimport 5 0 0 100%
rfpy/vendor/api/questionnaire.py post_issue_answerimport 22 0 0 100%
rfpy/vendor/api/questionnaire.py (no function) 39 0 0 100%
rfpy/vendor/api/reports.py get_issue_scoregaps 7 0 0 100%
rfpy/vendor/api/reports.py (no function) 8 0 0 100%
rfpy/vendor/api/users.py get_users 2 0 0 100%
rfpy/vendor/api/users.py get_whoami 1 0 0 100%
rfpy/vendor/api/users.py get_user 4 0 0 100%
rfpy/vendor/api/users.py put_user 19 2 0 89%
rfpy/vendor/api/users.py post_user 15 0 0 100%
rfpy/vendor/api/users.py delete_user 8 0 0 100%
rfpy/vendor/api/users.py get_roles 4 0 0 100%
rfpy/vendor/api/users.py get_issue_watchlist 6 0 0 100%
rfpy/vendor/api/users.py auth_wl_change 6 0 0 100%
rfpy/vendor/api/users.py post_issue_watchers 7 0 0 100%
rfpy/vendor/api/users.py delete_issue_watchers 8 0 0 100%
rfpy/vendor/api/users.py (no function) 30 0 0 100%
rfpy/vendor/api/workflow.py get_issue_section_workflow 11 0 0 100%
rfpy/vendor/api/workflow.py post_issue_allocate 7 0 0 100%
rfpy/vendor/api/workflow.py (no function) 13 0 0 100%
rfpy/vendor/validation.py validate 2 0 0 100%
rfpy/vendor/validation.py Validator.__init__ 10 0 0 100%
rfpy/vendor/validation.py Validator.validate 6 0 0 100%
rfpy/vendor/validation.py Validator.check_visibility 7 0 0 100%
rfpy/vendor/validation.py Validator.check_user_permissions 2 0 0 100%
rfpy/vendor/validation.py Validator.check_rules 5 0 0 100%
rfpy/vendor/validation.py Validator.check_issue_rules 11 0 0 100%
rfpy/vendor/validation.py Validator.check_answering_rules 9 0 0 100%
rfpy/vendor/validation.py Validator.authorise_winloss 5 0 0 100%
rfpy/vendor/validation.py Validator.fail 2 0 0 100%
rfpy/vendor/validation.py Validator.invalid_issue_status 1 0 0 100%
rfpy/vendor/validation.py Validator.raise_on_error 2 0 0 100%
rfpy/vendor/validation.py (no function) 15 0 0 100%
rfpy/vendor/webapp.py VendorApp.validate_user 1 0 0 100%
rfpy/vendor/webapp.py VendorApp.build_sux 1 0 0 100%
rfpy/vendor/webapp.py (no function) 9 0 0 100%
rfpy/web/__init__.py Pager.__init__ 5 0 0 100%
rfpy/web/__init__.py Pager.startfrom 1 0 0 100%
rfpy/web/__init__.py Pager.current_page 1 1 0 0%
rfpy/web/__init__.py Pager.goto 1 0 0 100%
rfpy/web/__init__.py Pager.total_pages 1 0 0 100%
rfpy/web/__init__.py Pager.has_next 1 0 0 100%
rfpy/web/__init__.py Pager.__repr__ 0 0 1 100%
rfpy/web/__init__.py Pager.as_pagination 2 0 0 100%
rfpy/web/__init__.py (no function) 13 0 3 100%
rfpy/web/base.py jsonify_models 6 0 0 100%
rfpy/web/base.py render 18 0 0 100%
rfpy/web/base.py commit_or_rollback 7 0 0 100%
rfpy/web/base.py WSGIApp.__init__ 15 1 0 93%
rfpy/web/base.py WSGIApp.build_sux 0 0 5 100%
rfpy/web/base.py WSGIApp.__call__ 14 0 0 100%
rfpy/web/base.py WSGIApp.authenticate 2 0 0 100%
rfpy/web/base.py WSGIApp.resolve_route 7 0 0 100%
rfpy/web/base.py WSGIApp.rest_api 8 0 0 100%
rfpy/web/base.py WSGIApp.route 2 0 0 100%
rfpy/web/base.py WSGIApp.route.wrapper 7 0 0 100%
rfpy/web/base.py WSGIApp.__repr__ 0 0 1 100%
rfpy/web/base.py WSGIApp.validate_user 0 0 1 100%
rfpy/web/base.py (no function) 38 0 4 100%
rfpy/web/exception.py render_error 22 0 0 100%
rfpy/web/exception.py log_exception 4 0 0 100%
rfpy/web/exception.py ex_message 5 0 0 100%
rfpy/web/exception.py resolve_exception 45 2 0 96%
rfpy/web/exception.py (no function) 19 0 0 100%
rfpy/web/ext/__init__.py (no function) 0 0 0 100%
rfpy/web/ext/apilinks.py Link.__init__ 7 0 0 100%
rfpy/web/ext/apilinks.py Link.as_dict 4 0 0 100%
rfpy/web/ext/apilinks.py (no function) 21 0 0 100%
rfpy/web/ext/apispec.py responses 27 0 0 100%
rfpy/web/ext/apispec.py operations_from_handler 7 0 0 100%
rfpy/web/ext/apispec.py SuxPlugin.init_spec 2 0 0 100%
rfpy/web/ext/apispec.py SuxPlugin.path_helper 3 0 0 100%
rfpy/web/ext/apispec.py (no function) 12 0 2 100%
rfpy/web/ext/openapi_types.py (no function) 8 0 0 100%
rfpy/web/hooks/__init__.py (no function) 4 0 0 100%
rfpy/web/hooks/mail_delivered.py postmark_isodate 3 0 0 100%
rfpy/web/hooks/mail_delivered.py DeliveredHook.update_notification_record 5 0 0 100%
rfpy/web/hooks/mail_delivered.py BounceHook.update_notification_record 6 0 0 100%
rfpy/web/hooks/mail_delivered.py (no function) 14 0 0 100%
rfpy/web/hooks/webapp.py WebhookApp.validate_user 1 0 0 100%
rfpy/web/hooks/webapp.py WebhookApp.build_sux 1 0 0 100%
rfpy/web/hooks/webapp.py WebhookApp.register_route 1 0 0 100%
rfpy/web/hooks/webapp.py PostmarkVars.__init__ 4 0 0 100%
rfpy/web/hooks/webapp.py NotificationHook.__call__ 18 1 0 94%
rfpy/web/hooks/webapp.py NotificationHook.extract 3 0 0 100%
rfpy/web/hooks/webapp.py NotificationHook.lookup 1 0 0 100%
rfpy/web/hooks/webapp.py NotificationHook.check_emails_match 3 0 0 100%
rfpy/web/hooks/webapp.py NotificationHook.update_notification_record 0 0 1 100%
rfpy/web/hooks/webapp.py (no function) 23 0 0 100%
rfpy/web/middleware.py DevMiddleware.__init__ 0 0 8 100%
rfpy/web/middleware.py DevMiddleware.static_app 0 0 1 100%
rfpy/web/middleware.py DevMiddleware.__call__ 0 0 13 100%
rfpy/web/middleware.py DevMiddleware.process_request 0 0 5 100%
rfpy/web/middleware.py DevMiddleware.process_response 0 0 14 100%
rfpy/web/middleware.py DevMiddleware.logout 0 0 2 100%
rfpy/web/middleware.py DevMiddleware.auth_logout 0 0 1 100%
rfpy/web/middleware.py DevMiddleware.test_rollback 0 0 19 100%
rfpy/web/middleware.py DevMiddleware.test_mailbox 0 0 10 100%
rfpy/web/middleware.py DevMiddleware.test_process_events 0 0 15 100%
rfpy/web/middleware.py DevMiddleware.xaccel 0 0 28 100%
rfpy/web/middleware.py DevMiddleware.config 0 0 4 100%
rfpy/web/middleware.py DispatchingMiddleware.__init__ 2 0 0 100%
rfpy/web/middleware.py DispatchingMiddleware.__call__ 13 0 0 100%
rfpy/web/middleware.py (no function) 17 0 27 100%
rfpy/web/mime.py (no function) 6 0 0 100%
rfpy/web/request.py HttpRequest.is_https 1 0 0 100%
rfpy/web/request.py HttpRequest.prefers_json 3 0 0 100%
rfpy/web/request.py (no function) 6 0 0 100%
rfpy/web/response.py quote_header_value 1 0 0 100%
rfpy/web/response.py file_size 1 0 0 100%
rfpy/web/response.py XAccelResponse.set_x_accel 2 0 0 100%
rfpy/web/response.py XAccelAttachmentResponse.__init__ 6 0 0 100%
rfpy/web/response.py XAccelTempResponse.__init__ 7 0 0 100%
rfpy/web/response.py (no function) 17 0 0 100%
rfpy/web/serial/__init__.py (no function) 4 0 0 100%
rfpy/web/serial/extractor.py SchemaDocArg.__init__ 4 0 0 100%
rfpy/web/serial/extractor.py SchemaDocArg.extract 14 0 0 100%
rfpy/web/serial/extractor.py SchemaDocArg.update_openapi_path_object 1 0 0 100%
rfpy/web/serial/extractor.py (no function) 11 0 0 100%
rfpy/web/serial/models.py BaseOrganisation.set_type 1 0 0 100%
rfpy/web/serial/models.py User.get_roles 3 1 0 67%
rfpy/web/serial/models.py NewIssue.either_email_or_respondent 5 0 0 100%
rfpy/web/serial/models.py NewIssue.nonify 3 0 0 100%
rfpy/web/serial/models.py NewWeightSet.check_src_weightset 8 0 0 100%
rfpy/web/serial/models.py AllocatedToList.__iter__ 1 0 0 100%
rfpy/web/serial/models.py Section.clean_number 1 0 0 100%
rfpy/web/serial/models.py SectionChildNodes.either_or 6 2 0 67%
rfpy/web/serial/models.py FullProject.set_permissions 1 0 0 100%
rfpy/web/serial/models.py FullProject.perms 1 0 0 100%
rfpy/web/serial/models.py Watcher.set_is_watching 2 0 0 100%
rfpy/web/serial/models.py Watcher.none_if_zerolength 3 0 0 100%
rfpy/web/serial/models.py NewWebhook.validate_event_type 4 0 0 100%
rfpy/web/serial/models.py NewWebhook.validate_http_header 6 0 0 100%
rfpy/web/serial/models.py (no function) 591 0 0 100%
rfpy/web/serial/qmodels.py QuestionDef.nest_elements 28 0 0 100%
rfpy/web/serial/qmodels.py Question.to_dotted 1 0 0 100%
rfpy/web/serial/qmodels.py (no function) 80 0 0 100%
rfpy/web/serial/scoremodels.py (no function) 18 0 0 100%
Total   8813 121 557 99%

No items found using the specified filter.