Coverage report: 92%

Files Functions Classes

coverage.py v7.13.4, created at 2026-10-04 09:33 +0000

File function   statements missing excluded   coverage
server / __init__.py (no function)   0 0 0   100%
server / app.py lifespan   7 7 0   0%
server / app.py _read_version   5 2 0   60%
server / app.py add_no_store_cache_headers   3 0 0   100%
server / app.py validation_exception_handler   79 6 0   92%
server / app.py health_check   1 0 0   100%
server / app.py read_root   5 0 0   100%
server / app.py (no function)   81 0 0   100%
server / authentication / auth0_bearer.py _autorecover_school_id   41 2 2   95%
server / authentication / auth0_bearer.py _coerce_roles   5 1 0   80%
server / authentication / auth0_bearer.py app_role_from_token_roles   5 0 0   100%
server / authentication / auth0_bearer.py Auth0Bearer.__init__   2 0 0   100%
server / authentication / auth0_bearer.py Auth0Bearer.__call__   39 3 0   92%
server / authentication / auth0_bearer.py Auth0Bearer._check_inactive_status   14 0 0   100%
server / authentication / auth0_bearer.py Auth0Bearer._resolve_profile   54 15 0   72%
server / authentication / auth0_bearer.py (no function)   19 0 0   100%
server / authentication / auth0_config.py Auth0Settings.__init__   3 0 0   100%
server / authentication / auth0_config.py get_auth0_settings   1 0 0   100%
server / authentication / auth0_config.py (no function)   19 0 0   100%
server / authentication / auth0_handler.py Auth0TokenHandler.__init__   4 0 0   100%
server / authentication / auth0_handler.py Auth0TokenHandler.get_jwks   14 0 0   100%
server / authentication / auth0_handler.py Auth0TokenHandler.invalidate_jwks_cache   2 2 0   0%
server / authentication / auth0_handler.py Auth0TokenHandler.get_signing_key   27 0 0   100%
server / authentication / auth0_handler.py Auth0TokenHandler.verify_token   12 2 0   83%
server / authentication / auth0_handler.py Auth0TokenHandler.extract_user_info   2 0 0   100%
server / authentication / auth0_handler.py (no function)   18 0 0   100%
server / authentication / bcrypter.py Hasher.__init__   1 0 0   100%
server / authentication / bcrypter.py Hasher.hash_password   1 0 0   100%
server / authentication / bcrypter.py (no function)   5 0 0   100%
server / authentication / cookie_session.py _cookie_secure   2 0 0   100%
server / authentication / cookie_session.py set_auth_cookies   6 0 0   100%
server / authentication / cookie_session.py set_refresh_cookie   1 0 0   100%
server / authentication / cookie_session.py get_refresh_token   1 0 0   100%
server / authentication / cookie_session.py clear_auth_cookies   5 0 0   100%
server / authentication / cookie_session.py validate_csrf   7 5 0   29%
server / authentication / cookie_session.py (no function)   22 0 0   100%
server / connection / database.py _tls_params   7 0 0   100%
server / connection / database.py _with_tls   6 0 0   100%
server / connection / database.py init_db   29 11 0   62%
server / connection / database.py create_initial_users   14 0 0   100%
server / connection / database.py create_user   10 0 0   100%
server / connection / database.py (no function)   49 4 0   92%
server / connection / storage_bucket.py presign_get   3 1 0   67%
server / connection / storage_bucket.py profile_picture_url   4 0 0   100%
server / connection / storage_bucket.py class_photo_url   4 2 0   50%
server / connection / storage_bucket.py (no function)   17 0 0   100%
server / models / account.py Account.set_updated_at_now   1 1 0   0%
server / models / account.py Account.set_created_at_now   1 1 0   0%
server / models / account.py validate_email_format   11 11 0   0%
server / models / account.py Registration.set_updated_at_now   1 1 0   0%
server / models / account.py Registration.set_created_at_now   1 1 0   0%
server / models / account.py UpdatedAccount.set_updated_at_now   1 1 0   0%
server / models / account.py AccountResponseModel.convert_object_id   3 3 0   0%
server / models / account.py (no function)   112 0 0   100%
server / models / assignment.py RubricLevel.label_not_blank   3 0 0   100%
server / models / assignment.py RubricCriterion.name_not_blank   3 0 0   100%
server / models / assignment.py _is_legacy_custom_test_type_string   2 0 0   100%
server / models / assignment.py coerce_assignment_type   13 2 0   85%
server / models / assignment.py AssignmentSettings.validate_allowed_attempts   3 0 0   100%
server / models / assignment.py default_staff_global_assignment_settings   1 1 0   0%
server / models / assignment.py QuestionModel.validate_id   5 2 0   60%
server / models / assignment.py validate_semester_value   5 0 0   100%
server / models / assignment.py Assignment.normalize_assigned_class_for_global   7 0 0   100%
server / models / assignment.py Assignment.validate_required_fields   7 0 0   100%
server / models / assignment.py Assignment.validate_assigned_class_ids   8 2 0   75%
server / models / assignment.py Assignment.apply_global_assignment_defaults   5 1 0   80%
server / models / assignment.py Assignment.validate_exam_catalog_feature_key   4 1 0   75%
server / models / assignment.py Assignment.coerce_user_ref_to_str   3 1 0   67%
server / models / assignment.py Assignment.validate_type   1 0 0   100%
server / models / assignment.py Assignment.validate_title   7 0 0   100%
server / models / assignment.py Assignment.validate_description   7 0 0   100%
server / models / assignment.py Assignment.validate_semester   1 0 0   100%
server / models / assignment.py Assignment.validate_category   8 1 0   88%
server / models / assignment.py Assignment.validate_format   6 0 0   100%
server / models / assignment.py Assignment.validate_questions   5 0 0   100%
server / models / assignment.py Assignment.validate_passing_grade   6 1 0   83%
server / models / assignment.py Assignment.normalize_dates_to_utc   3 0 0   100%
server / models / assignment.py Assignment.validate_dates   5 0 0   100%
server / models / assignment.py UpdateAssignment.validate_update_type   3 0 0   100%
server / models / assignment.py UpdateAssignment.validate_update_semester   3 0 0   100%
server / models / assignment.py UpdateAssignment.normalize_dates_to_utc   3 0 0   100%
server / models / assignment.py UpdateAssignmentRequest.validate_required_semester   3 0 0   100%
server / models / assignment.py TeacherCommentRequest.strip_and_require_nonblank   4 0 0   100%
server / models / assignment.py Answer._neutralise_markup   1 0 0   100%
server / models / assignment.py Submission.set_submitted_at_now   1 1 0   0%
server / models / assignment.py Submission.validate_required_fields   3 1 0   67%
server / models / assignment.py (no function)   227 0 0   100%
server / models / assignment_submit.py AnswerItem._bound_answer_size   7 2 0   71%
server / models / assignment_submit.py AnswerItem._neutralise_markup   1 0 0   100%
server / models / assignment_submit.py AssignmentSubmitRequest._bound_total_payload   4 0 0   100%
server / models / assignment_submit.py ViolationReportRequest._blank_is_no_type   4 0 0   100%
server / models / assignment_submit.py (no function)   28 0 0   100%
server / models / class_message.py ClassMessage.set_created_at   1 1 0   0%
server / models / class_message.py CreateClassMessage._strip_markup   4 0 0   100%
server / models / class_message.py (no function)   23 0 0   100%
server / models / classes.py Schedule.validate_time   12 1 0   92%
server / models / classes.py Schedule.check_time_order   5 0 0   100%
server / models / classes.py ClassModel.set_updated_at_now   1 0 0   100%
server / models / classes.py ClassModel.set_created_at_now   1 0 0   100%
server / models / classes.py RegisterClass.blank_strings   5 0 0   100%
server / models / classes.py RegisterClass._strip_markup   6 0 0   100%
server / models / classes.py UpdateClassModel.set_updated_at_now   1 0 0   100%
server / models / classes.py UpdateClassModel.blank_strings   12 0 0   100%
server / models / classes.py UpdateClassModel._strip_markup   6 1 0   83%
server / models / classes.py (no function)   135 0 0   100%
server / models / clients.py Client.set_updated_at_now   1 1 0   0%
server / models / clients.py Client.set_created_at_now   1 1 0   0%
server / models / clients.py ClientRegistrationRequestSchema.blank_strings   5 0 0   100%
server / models / clients.py ClientRegistrationRequestSchema.set_full_name   8 0 0   100%
server / models / clients.py ClientRegistrationRequestSchema.validate_email   3 1 0   67%
server / models / clients.py ClientRegistrationRequestSchema.validate_designation   5 0 0   100%
server / models / clients.py ClientRegistrationRequestSchema.validate_password   3 0 0   100%
server / models / clients.py ClientRegistrationRequestSchema.validate_repeat_password   3 0 0   100%
server / models / clients.py ClientRegistrationRequestSchema.set_updated_at_now   1 1 0   0%
server / models / clients.py ClientRegistrationRequestSchema.set_created_at_now   1 1 0   0%
server / models / clients.py ClientLoginRequest.blank_strings   5 5 0   0%
server / models / clients.py SchoolRegistration.check_email   6 6 0   0%
server / models / clients.py ClientUserRegistrationRequestSchema.blank_strings   5 5 0   0%
server / models / clients.py ClientUserRegistrationRequestSchema.check_email   6 6 0   0%
server / models / clients.py ClientUserRegistrationRequestSchema.set_updated_at_now   1 1 0   0%
server / models / clients.py ClientUserRegistrationRequestSchema.set_created_at_now   1 1 0   0%
server / models / clients.py (no function)   205 0 0   100%
server / models / question_bank.py ObjectIdField.__get_validators__   1 0 0   100%
server / models / question_bank.py ObjectIdField.validate   5 0 0   100%
server / models / question_bank.py ObjectIdField.__get_pydantic_json_schema__   1 0 0   100%
server / models / question_bank.py CorrectAnswer.validate_answer_format   13 0 0   100%
server / models / question_bank.py QuestionModelCreate.validate_fields   26 0 0   100%
server / models / question_bank.py QuestionModelUpdate.validate_fields   21 0 0   100%
server / models / question_bank.py (no function)   113 0 0   100%
server / models / sharerequests.py ShareRequest.validate_description   5 0 0   100%
server / models / sharerequests.py ShareRequest.set_created_at_now   1 0 0   100%
server / models / sharerequests.py ShareRequest.set_updated_at_now   1 0 0   100%
server / models / sharerequests.py (no function)   26 0 0   100%
server / models / themes.py ThemeColors.validate_hex_color   4 0 0   100%
server / models / themes.py ThemeFont.validate_font_size   4 0 0   100%
server / models / themes.py ThemeLayout.validate_size_with_units   4 0 0   100%
server / models / themes.py Theme.set_updated_at_now   3 0 0   100%
server / models / themes.py UserTheme.set_updated_at_now   3 0 0   100%
server / models / themes.py ThemeUpdate.validate_theme_name   9 0 0   100%
server / models / themes.py ThemeApply.validate_theme_id   16 0 0   100%
server / models / themes.py ThemeApply.validate_color_mode   13 1 0   92%
server / models / themes.py (no function)   100 0 0   100%
server / models / users.py is_not_empty   7 0 0   100%
server / models / users.py User.validate_first_name   5 2 0   60%
server / models / users.py User.validate_middle_name   4 1 0   75%
server / models / users.py User.validate_last_name   4 1 0   75%
server / models / users.py User.validate_school   7 5 0   29%
server / models / users.py User.set_updated_at_now   1 0 0   100%
server / models / users.py User.set_created_at_now   1 0 0   100%
server / models / users.py User.validate_email   6 2 0   67%
server / models / users.py UserBio.first_name_must_be_nonempty   6 0 0   100%
server / models / users.py UserBio.middle_name_must_be_nonempty   8 1 0   88%
server / models / users.py UserBio.last_name_must_be_nonempty   6 0 0   100%
server / models / users.py ContactPerson.validate_required_fields   11 0 0   100%
server / models / users.py ContactPerson.validate_phone_number   8 0 0   100%
server / models / users.py ContactPerson.validate_zip_code   8 0 0   100%
server / models / users.py Student.handle_blank_strings   8 8 0   0%
server / models / users.py Teacher.blank_strings   9 9 0   0%
server / models / users.py Registration.check_role   5 5 0   0%
server / models / users.py Registration.check_email   6 6 0   0%
server / models / users.py UpdatedUserViaSubscriber.set_updated_at_now   1 1 0   0%
server / models / users.py UpdatedRole.set_updated_at_now   1 1 0   0%
server / models / users.py UpdatedStatus.set_updated_at_now   1 1 0   0%
server / models / users.py (no function)   218 0 0   100%
server / rate_limit.py _build_storage_uri   6 1 0   83%
server / rate_limit.py _rate_limit_enabled   5 3 0   40%
server / rate_limit.py _limit   1 0 0   100%
server / rate_limit.py rate_limit_exceeded_handler   3 0 0   100%
server / rate_limit.py (no function)   16 0 0   100%
server / routes / auth0 / auth_routes.py _load_login_cap_exempt   1 0 0   100%
server / routes / auth0 / auth_routes.py LoginRequest.validate_email   6 0 0   100%
server / routes / auth0 / auth_routes.py ForgotPasswordRequest.validate_email   5 0 0   100%
server / routes / auth0 / auth_routes.py login   46 5 0   89%
server / routes / auth0 / auth_routes.py _roles_from_access_token   9 1 0   89%
server / routes / auth0 / auth_routes.py _email_from_access_token   5 2 0   60%
server / routes / auth0 / auth_routes.py _check_account_status   5 1 0   80%
server / routes / auth0 / auth_routes.py refresh   50 4 0   92%
server / routes / auth0 / auth_routes.py logout   12 2 0   83%
server / routes / auth0 / auth_routes.py get_current_user   2 0 0   100%
server / routes / auth0 / auth_routes.py forgot_password   13 1 0   92%
server / routes / auth0 / auth_routes.py (no function)   49 0 0   100%
server / routes / common / assignments.py create_new_assignment   1 0 0   100%
server / routes / common / assignments.py get_specific_assignment_by_id   1 0 0   100%
server / routes / common / assignments.py adoptive_next_item   1 1 0   0%
server / routes / common / assignments.py answer_assignment   1 0 0   100%
server / routes / common / assignments.py review_submission   1 0 0   100%
server / routes / common / assignments.py share_assignment   1 0 0   100%
server / routes / common / assignments.py show_assignment_analytics   1 0 0   100%
server / routes / common / assignments.py update_assignment_details   1 0 0   100%
server / routes / common / assignments.py delete_assignment_by_id   1 0 0   100%
server / routes / common / assignments.py (no function)   26 0 0   100%
server / routes / common / auth0_webhook.py _unauthorized   2 0 0   100%
server / routes / common / auth0_webhook.py _parse_signature_header   14 0 0   100%
server / routes / common / auth0_webhook.py _verify_signature   9 1 0   89%
server / routes / common / auth0_webhook.py _authenticate_webhook   10 0 0   100%
server / routes / common / auth0_webhook.py _validate_webhook_secret   1 1 0   0%
server / routes / common / auth0_webhook.py auth0_user_sync   68 3 0   96%
server / routes / common / auth0_webhook.py (no function)   23 0 0   100%
server / routes / common / health.py readiness   3 0 0   100%
server / routes / common / health.py (no function)   6 0 0   100%
server / routes / common / users.py (no function)   2 0 0   100%
server / routes / student / student_account.py student_account_fetch   1 0 0   100%
server / routes / student / student_account.py student_teacher_find   4 0 0   100%
server / routes / student / student_account.py student_account_update   1 0 0   100%
server / routes / student / student_account.py profile_picture_add   1 0 1   100%
server / routes / student / student_account.py profile_picture_update   1 0 0   100%
server / routes / student / student_account.py profile_picture_delete   1 0 0   100%
server / routes / student / student_account.py student_password_update   3 1 0   67%
server / routes / student / student_account.py student_password_change   12 1 0   92%
server / routes / student / student_account.py (no function)   36 0 0   100%
server / routes / student / student_assignments.py assignments_fetch   1 0 0   100%
server / routes / student / student_assignments.py class_grade_average_fetch   1 0 0   100%
server / routes / student / student_assignments.py assignment_details_fetch   1 0 0   100%
server / routes / student / student_assignments.py assignment_questions_fetch   1 0 0   100%
server / routes / student / student_assignments.py answer_assignment_update   1 0 0   100%
server / routes / student / student_assignments.py assignment_answers_submit   1 0 0   100%
server / routes / student / student_assignments.py assignment_violation_report   1 0 0   100%
server / routes / student / student_assignments.py assignment_submission_fetch   1 0 1   100%
server / routes / student / student_assignments.py (no function)   27 0 0   100%
server / routes / student / student_classes.py all_classes_fetch   1 0 0   100%
server / routes / student / student_classes.py student_class_fetch   1 0 0   100%
server / routes / student / student_classes.py class_join   1 0 0   100%
server / routes / student / student_classes.py class_leave_request   1 0 0   100%
server / routes / student / student_classes.py join_cancel   1 0 0   100%
server / routes / student / student_classes.py class_messages_fetch   1 0 0   100%
server / routes / student / student_classes.py (no function)   22 0 0   100%
server / routes / student / student_dashboard.py achievements_fetch   1 0 0   100%
server / routes / student / student_dashboard.py grade_distribution_fetch   1 0 1   100%
server / routes / student / student_dashboard.py gpa_fetch   1 0 0   100%
server / routes / student / student_dashboard.py upcoming_assignments_fetch   1 0 0   100%
server / routes / student / student_dashboard.py class_statistics_fetch   1 0 0   100%
server / routes / student / student_dashboard.py assignment_statistics_fetch   1 0 0   100%
server / routes / student / student_dashboard.py student_statistics_fetch   1 0 0   100%
server / routes / student / student_dashboard.py (no function)   19 0 0   100%
server / routes / student / student_dashboard_ws.py _allowed_origins   2 0 0   100%
server / routes / student / student_dashboard_ws.py _origin_allowed   3 0 0   100%
server / routes / student / student_dashboard_ws.py _validate_ws_token   10 0 0   100%
server / routes / student / student_dashboard_ws.py student_dashboard_ws   21 2 0   90%
server / routes / student / student_dashboard_ws.py student_dashboard_ws._heartbeat_loop   6 6 0   0%
server / routes / student / student_dashboard_ws.py publish_dashboard_event   2 0 0   100%
server / routes / student / student_dashboard_ws.py (no function)   19 0 0   100%
server / routes / student / student_features.py _effective_features_response   2 0 0   100%
server / routes / student / student_features.py _no_scope_response   1 0 0   100%
server / routes / student / student_features.py effective_features   5 0 0   100%
server / routes / student / student_features.py list_district_features   1 1 0   0%
server / routes / student / student_features.py feature_status   7 2 0   71%
server / routes / student / student_features.py organization_scope   1 1 0   0%
server / routes / student / student_features.py school_scope   1 1 0   0%
server / routes / student / student_features.py district_plan_scope   1 1 0   0%
server / routes / student / student_features.py (no function)   23 0 0   100%
server / routes / student / student_theme.py fetch_theme   1 0 0   100%
server / routes / student / student_theme.py apply_theme   1 0 0   100%
server / routes / student / student_theme.py update_theme   1 0 0   100%
server / routes / student / student_theme.py delete_theme   1 0 0   100%
server / routes / student / student_theme.py (no function)   17 0 0   100%
server / routes / teacher / teacher_account.py teacher_find   1 0 0   100%
server / routes / teacher / teacher_account.py picture_add   1 0 0   100%
server / routes / teacher / teacher_account.py picture_update   1 0 0   100%
server / routes / teacher / teacher_account.py picture_delete   1 0 0   100%
server / routes / teacher / teacher_account.py education_update   1 0 0   100%
server / routes / teacher / teacher_account.py office_details_update   1 0 0   100%
server / routes / teacher / teacher_account.py account_update   1 0 0   100%
server / routes / teacher / teacher_account.py teacher_password_update   3 0 0   100%
server / routes / teacher / teacher_account.py teacher_password_change   12 1 0   92%
server / routes / teacher / teacher_account.py (no function)   40 0 0   100%
server / routes / teacher / teacher_assignment.py create   3 0 0   100%
server / routes / teacher / teacher_assignment.py fetch_all   1 0 0   100%
server / routes / teacher / teacher_assignment.py staff_assignment_create   1 0 0   100%
server / routes / teacher / teacher_assignment.py staff_assignments_fetch   1 0 0   100%
server / routes / teacher / teacher_assignment.py staff_assignment_fetch_by_id   1 0 0   100%
server / routes / teacher / teacher_assignment.py fetch_specific_assignment   1 0 0   100%
server / routes / teacher / teacher_assignment.py update   1 0 0   100%
server / routes / teacher / teacher_assignment.py update_question_points   1 1 0   0%
server / routes / teacher / teacher_assignment.py assignment_delete   1 0 0   100%
server / routes / teacher / teacher_assignment.py analytics_summary_fetch   1 0 0   100%
server / routes / teacher / teacher_assignment.py analytics_item_analysis_fetch   1 0 1   100%
server / routes / teacher / teacher_assignment.py analytics_student_submission_fetch   1 0 0   100%
server / routes / teacher / teacher_assignment.py mark_student_answer   1 1 0   0%
server / routes / teacher / teacher_assignment.py add_student_answer_comment   1 0 0   100%
server / routes / teacher / teacher_assignment.py update_student_answer_comment   1 0 0   100%
server / routes / teacher / teacher_assignment.py delete_student_answer_comment   1 0 0   100%
server / routes / teacher / teacher_assignment.py next_fetch   1 1 0   0%
server / routes / teacher / teacher_assignment.py answer_create   1 1 0   0%
server / routes / teacher / teacher_assignment.py assignment_fetch   1 1 0   0%
server / routes / teacher / teacher_assignment.py list_pending_late_submissions   1 0 0   100%
server / routes / teacher / teacher_assignment.py approve_late_submission   1 0 0   100%
server / routes / teacher / teacher_assignment.py reject_late_submission   1 0 0   100%
server / routes / teacher / teacher_assignment.py assignment_share   1 1 0   0%
server / routes / teacher / teacher_assignment.py (no function)   55 0 0   100%
server / routes / teacher / teacher_classes.py create_new_class   1 0 0   100%
server / routes / teacher / teacher_classes.py all_classes_fetch   1 0 0   100%
server / routes / teacher / teacher_classes.py class_find   1 0 0   100%
server / routes / teacher / teacher_classes.py messages_fetch   1 0 0   100%
server / routes / teacher / teacher_classes.py class_message_create   1 0 0   100%
server / routes / teacher / teacher_classes.py class_message_delete   1 0 0   100%
server / routes / teacher / teacher_classes.py class_gradebook_fetch   1 0 0   100%
server / routes / teacher / teacher_classes.py roster_fetch   1 0 0   100%
server / routes / teacher / teacher_classes.py class_update   1 0 0   100%
server / routes / teacher / teacher_classes.py class_delete   1 0 0   100%
server / routes / teacher / teacher_classes.py class_photo_add   1 0 0   100%
server / routes / teacher / teacher_classes.py class_photo_update   1 0 0   100%
server / routes / teacher / teacher_classes.py class_photo_delete   1 0 0   100%
server / routes / teacher / teacher_classes.py class_restore   1 0 0   100%
server / routes / teacher / teacher_classes.py accept_student   1 0 0   100%
server / routes / teacher / teacher_classes.py remove_student   1 0 0   100%
server / routes / teacher / teacher_classes.py leave_approved   1 0 0   100%
server / routes / teacher / teacher_classes.py assignments_fetch   1 0 0   100%
server / routes / teacher / teacher_classes.py (no function)   46 0 0   100%
server / routes / teacher / teacher_dashboard.py class_statistics_fetch   4 1 0   75%
server / routes / teacher / teacher_dashboard.py student_statistics_fetch   4 4 0   0%
server / routes / teacher / teacher_dashboard.py get_stats_for_assignments   1 1 0   0%
server / routes / teacher / teacher_dashboard.py get_submissions_stats   1 1 1   0%
server / routes / teacher / teacher_dashboard.py (no function)   15 0 0   100%
server / routes / teacher / teacher_features.py _effective_features_response   2 2 0   0%
server / routes / teacher / teacher_features.py effective_features   4 4 0   0%
server / routes / teacher / teacher_features.py list_district_features   1 1 0   0%
server / routes / teacher / teacher_features.py feature_status   7 3 0   57%
server / routes / teacher / teacher_features.py organization_scope   1 1 0   0%
server / routes / teacher / teacher_features.py school_scope   1 1 0   0%
server / routes / teacher / teacher_features.py district_plan_scope   1 1 0   0%
server / routes / teacher / teacher_features.py teacher_made_assignment_quota   1 1 0   0%
server / routes / teacher / teacher_features.py (no function)   27 0 0   100%
server / routes / teacher / teacher_question.py teacher_questions_fetch   8 0 0   100%
server / routes / teacher / teacher_question.py teacher_staff_questions_fetch   7 0 0   100%
server / routes / teacher / teacher_question.py teacher_create_question   1 0 0   100%
server / routes / teacher / teacher_question.py teacher_fetch_question   1 0 0   100%
server / routes / teacher / teacher_question.py teacher_question_update   1 0 0   100%
server / routes / teacher / teacher_question.py teacher_question_delete   1 0 0   100%
server / routes / teacher / teacher_question.py teacher_filter_options   4 0 0   100%
server / routes / teacher / teacher_question.py teacher_clear_filters   6 0 0   100%
server / routes / teacher / teacher_question.py teacher_upload_question_image   1 0 0   100%
server / routes / teacher / teacher_question.py (no function)   48 0 0   100%
server / routes / teacher / teacher_question_import.py _teacher_id   1 0 0   100%
server / routes / teacher / teacher_question_import.py _import_owner   1 0 0   100%
server / routes / teacher / teacher_question_import.py _split_provenance   4 0 0   100%
server / routes / teacher / teacher_question_import.py _assert_batch_defaults   4 0 0   100%
server / routes / teacher / teacher_question_import.py _upload_filename   3 1 0   67%
server / routes / teacher / teacher_question_import.py _reraise   1 0 0   100%
server / routes / teacher / teacher_question_import.py upload_question_file   9 5 0   44%
server / routes / teacher / teacher_question_import.py upload_question_text   7 0 0   100%
server / routes / teacher / teacher_question_import.py import_status   6 4 0   33%
server / routes / teacher / teacher_question_import.py import_questions   17 8 0   53%
server / routes / teacher / teacher_question_import.py commit_import   39 0 0   100%
server / routes / teacher / teacher_question_import.py (no function)   38 0 0   100%
server / routes / teacher / teacher_students.py create   1 0 0   100%
server / routes / teacher / teacher_students.py bulk_create   1 0 0   100%
server / routes / teacher / teacher_students.py (no function)   7 0 0   100%
server / routes / teacher / teacher_theme.py fetch_theme   1 0 0   100%
server / routes / teacher / teacher_theme.py apply_theme   1 0 0   100%
server / routes / teacher / teacher_theme.py update_theme   1 0 0   100%
server / routes / teacher / teacher_theme.py delete_theme   1 0 0   100%
server / routes / teacher / teacher_theme.py (no function)   15 0 0   100%
server / services / common / answer_checking.py normalize_free_response_answer   8 1 0   88%
server / services / common / answer_checking.py _normalize_question_type   3 0 0   100%
server / services / common / answer_checking.py is_multi_group_type   1 0 0   100%
server / services / common / answer_checking.py grade_single_stimulus_answer   13 0 0   100%
server / services / common / answer_checking.py resolve_correct_answer   3 0 0   100%
server / services / common / answer_checking.py needs_manual_marking   1 0 0   100%
server / services / common / answer_checking.py score_question   5 0 0   100%
server / services / common / answer_checking.py _build_id_answer_map   10 2 0   80%
server / services / common / answer_checking.py is_answer_correct   51 1 0   98%
server / services / common / answer_checking.py (no function)   16 0 0   100%
server / services / common / assignments.py _id_match_forms   4 0 0   100%
server / services / common / assignments.py _matches_caller   3 1 0   67%
server / services / common / assignments.py _question_object_ids   1 0 0   100%
server / services / common / assignments.py AssignmentsService.__init__   1 0 0   100%
server / services / common / assignments.py AssignmentsService.assignment_create   5 0 0   100%
server / services / common / assignments.py AssignmentsService.assignment_fetch   14 0 0   100%
server / services / common / assignments.py AssignmentsService.assignment_adaptive_fetch   34 0 0   100%
server / services / common / assignments.py AssignmentsService.assignment_answer_update   15 0 0   100%
server / services / common / assignments.py AssignmentsService.assignment_share   6 0 0   100%
server / services / common / assignments.py AssignmentsService.assignment_analytics_fetch   26 4 0   85%
server / services / common / assignments.py AssignmentsService._get_empty_analytics   1 0 0   100%
server / services / common / assignments.py AssignmentsService._calculate_analytics   10 0 0   100%
server / services / common / assignments.py AssignmentsService._calculate_analytics.calculate_percentile   11 2 0   82%
server / services / common / assignments.py AssignmentsService.assignment_update   27 0 0   100%
server / services / common / assignments.py AssignmentsService.assignment_delete   15 0 0   100%
server / services / common / assignments.py AssignmentsService.assignment_submission_fetch   19 1 0   95%
server / services / common / assignments.py AssignmentsService.create_new_assignment   16 0 0   100%
server / services / common / assignments.py AssignmentsService.assignment_view_fetch   17 0 0   100%
server / services / common / assignments.py AssignmentsService.assignment_review_fetch   31 1 0   97%
server / services / common / assignments.py (no function)   36 0 0   100%
server / services / common / auth0_management.py Auth0ManagementService.__init__   3 0 0   100%
server / services / common / auth0_management.py Auth0ManagementService._is_configured   1 0 0   100%
server / services / common / auth0_management.py Auth0ManagementService._rate_limit   6 0 0   100%
server / services / common / auth0_management.py Auth0ManagementService.get_management_token   11 0 0   100%
server / services / common / auth0_management.py Auth0ManagementService.create_user   22 0 0   100%
server / services / common / auth0_management.py Auth0ManagementService.update_user   9 0 0   100%
server / services / common / auth0_management.py Auth0ManagementService.delete_user   9 0 0   100%
server / services / common / auth0_management.py Auth0ManagementService.generate_password_change_ticket   14 14 0   0%
server / services / common / auth0_management.py (no function)   23 0 0   100%
server / services / common / password_update.py PasswordUpdateRequest._enforce_complexity   3 0 0   100%
server / services / common / password_update.py _password_policy_detail   10 0 0   100%
server / services / common / password_update.py update_auth0_password   25 0 0   100%
server / services / common / password_update.py (no function)   19 0 0   100%
server / services / common / question_bank.py question_object_ids   11 1 0   91%
server / services / common / question_bank.py fetch_questions_by_ids   20 2 0   90%
server / services / common / question_bank.py project_question   1 0 0   100%
server / services / common / question_bank.py resolve_assignment_questions   10 0 0   100%
server / services / common / question_bank.py id_match_forms   4 0 0   100%
server / services / common / question_bank.py _json_safe   1 0 0   100%
server / services / common / question_bank.py pick_adaptive_question   11 0 0   100%
server / services / common / question_bank.py (no function)   12 0 0   100%
server / services / common / student_identity_sync.py _object_id   7 0 0   100%
server / services / common / student_identity_sync.py sync_student_identity_in_classes   11 0 0   100%
server / services / common / student_identity_sync.py sync_teacher_identity_in_classes   10 1 0   90%
server / services / common / student_identity_sync.py sync_identity_in_classes   5 0 0   100%
server / services / common / student_identity_sync.py anonymise_student_identity_in_classes   1 0 0   100%
server / services / common / student_identity_sync.py (no function)   12 0 0   100%
server / services / common / theme_ownership.py merge_nested   2 0 0   100%
server / services / common / theme_ownership.py is_owned_by   5 0 0   100%
server / services / common / theme_ownership.py clone_theme_for_user   4 0 0   100%
server / services / common / theme_ownership.py (no function)   5 0 0   100%
server / services / common / users.py UsersService.__init__   1 0 0   100%
server / services / common / users.py UsersService.ensure_db_initialized   3 0 0   100%
server / services / common / users.py UsersService.init_db   7 7 0   0%
server / services / common / users.py UsersService._strip_credentials   3 0 0   100%
server / services / common / users.py UsersService._serialize_raw_document   6 6 0   0%
server / services / common / users.py UsersService._fetch_account_document   19 5 0   74%
server / services / common / users.py UsersService._resolve_school_name   10 4 0   60%
server / services / common / users.py UsersService.user_account_fetch   34 3 0   91%
server / services / common / users.py UsersService._clamp_pagination   5 0 0   100%
server / services / common / users.py UsersService.teacher_data_search   61 2 0   97%
server / services / common / users.py UsersService.account_update   26 1 0   96%
server / services / common / users.py UsersService.user_picture_update   44 2 0   95%
server / services / common / users.py UsersService.user_picture_delete   24 0 0   100%
server / services / common / users.py UsersService.user_picture_add   35 2 0   94%
server / services / common / users.py (no function)   39 0 0   100%
server / services / growthbook / __init__.py (no function)   8 0 0   100%
server / services / growthbook / admin_db.py get_feature_db   1 1 0   0%
server / services / growthbook / admin_db.py (no function)   2 0 0   100%
server / services / growthbook / cache.py TargetingContextCache.__init__   1 0 0   100%
server / services / growthbook / cache.py TargetingContextCache.connect   4 0 0   100%
server / services / growthbook / cache.py TargetingContextCache.close   3 0 0   100%
server / services / growthbook / cache.py TargetingContextCache.get   11 0 0   100%
server / services / growthbook / cache.py TargetingContextCache.set   8 0 0   100%
server / services / growthbook / cache.py TargetingContextCache.delete_by_district   10 0 0   100%
server / services / growthbook / cache.py (no function)   15 0 0   100%
server / services / growthbook / catalog.py _catalog_keys   1 0 0   100%
server / services / growthbook / catalog.py _audience_as_feature_type   9 0 0   100%
server / services / growthbook / catalog.py feature_exists   3 0 0   100%
server / services / growthbook / catalog.py (no function)   7 0 0   100%
server / services / growthbook / client.py GrowthBookClientWrapper.__init__   3 0 0   100%
server / services / growthbook / client.py GrowthBookClientWrapper.is_ready   1 0 0   100%
server / services / growthbook / client.py GrowthBookClientWrapper.list_feature_keys   6 0 0   100%
server / services / growthbook / client.py GrowthBookClientWrapper.has_feature   1 0 0   100%
server / services / growthbook / client.py GrowthBookClientWrapper.get_feature_default_value   14 0 0   100%
server / services / growthbook / client.py GrowthBookClientWrapper.start   22 0 0   100%
server / services / growthbook / client.py GrowthBookClientWrapper.stop   7 0 0   100%
server / services / growthbook / client.py GrowthBookClientWrapper.eval_boolean   15 0 0   100%
server / services / growthbook / client.py (no function)   18 0 0   100%
server / services / growthbook / config.py get_growthbook_settings   1 0 0   100%
server / services / growthbook / config.py (no function)   21 0 0   100%
server / services / growthbook / context.py TargetingContext.cache_key   4 0 0   100%
server / services / growthbook / context.py TargetingContext.to_growthbook_attributes   1 0 0   100%
server / services / growthbook / context.py _fetch_district_plan   8 0 0   100%
server / services / growthbook / context.py _resolve_scope_from_user_details   23 0 0   100%
server / services / growthbook / context.py resolve_targeting_context   23 0 0   100%
server / services / growthbook / context.py invalidate_targeting_context_for_district   1 0 0   100%
server / services / growthbook / context.py (no function)   27 0 0   100%
server / services / growthbook / dependencies.py require_feature   2 0 0   100%
server / services / growthbook / dependencies.py require_feature._dependency   7 0 0   100%
server / services / growthbook / dependencies.py require_teacher_made_assignment_access   2 0 0   100%
server / services / growthbook / dependencies.py require_teacher_made_assignment_access._dependency   4 4 0   0%
server / services / growthbook / dependencies.py get_targeting_context   1 1 0   0%
server / services / growthbook / dependencies.py _enforce_maintenance   2 0 0   100%
server / services / growthbook / dependencies.py maintenance_mode_guard   2 2 0   0%
server / services / growthbook / dependencies.py (no function)   9 0 0   100%
server / services / growthbook / evaluation.py FeatureEvaluationService.evaluate   27 3 0   89%
server / services / growthbook / evaluation.py FeatureEvaluationService.is_enabled   2 2 0   0%
server / services / growthbook / evaluation.py FeatureEvaluationService.is_maintenance_mode   1 1 0   0%
server / services / growthbook / evaluation.py FeatureEvaluationService.evaluate_all_for_context   9 9 0   0%
server / services / growthbook / evaluation.py FeatureEvaluationService.disabled_catalog   8 0 0   100%
server / services / growthbook / evaluation.py (no function)   24 0 0   100%
server / services / growthbook / global_assignment_gate.py _erudition_tests_library_meta   2 0 0   100%
server / services / growthbook / global_assignment_gate.py global_assignment_access_meta   7 0 0   100%
server / services / growthbook / global_assignment_gate.py enforce_global_assignment_access   6 0 0   100%
server / services / growthbook / global_assignment_gate.py (no function)   9 0 0   100%
server / services / growthbook / organization.py _require_admin_db   3 3 0   0%
server / services / growthbook / organization.py _serialize_document   7 1 0   86%
server / services / growthbook / organization.py fetch_school_document   6 6 0   0%
server / services / growthbook / organization.py fetch_district_document   6 6 0   0%
server / services / growthbook / organization.py _plan_payload   2 0 0   100%
server / services / growthbook / organization.py _scope   1 0 0   100%
server / services / growthbook / organization.py build_organization_payload   15 1 0   93%
server / services / growthbook / organization.py build_school_payload   7 0 0   100%
server / services / growthbook / organization.py build_district_plan_payload   11 0 0   100%
server / services / growthbook / organization.py (no function)   19 0 0   100%
server / services / growthbook / overrides.py (no function)   6 0 0   100%
server / services / growthbook / registry.py _plan_index   2 0 0   100%
server / services / growthbook / registry.py plan_meets_minimum   4 2 0   50%
server / services / growthbook / registry.py _staar_tsi_plans   9 1 0   89%
server / services / growthbook / registry.py _sat_act_plans   9 1 0   89%
server / services / growthbook / registry.py _build_exam_features   7 0 0   100%
server / services / growthbook / registry.py resolve_feature_key   4 0 0   100%
server / services / growthbook / registry.py get_feature_definition   2 0 0   100%
server / services / growthbook / registry.py plan_allows_feature   8 1 0   88%
server / services / growthbook / registry.py registry_default_enabled   1 0 0   100%
server / services / growthbook / registry.py all_feature_keys_for_audience   1 1 0   0%
server / services / growthbook / registry.py features_for_plan   2 2 0   0%
server / services / growthbook / registry.py min_plan_for_feature   8 2 0   75%
server / services / growthbook / registry.py (no function)   30 0 0   100%
server / services / growthbook / teacher_assignment_quota.py _teacher_id_from_request   2 0 0   100%
server / services / growthbook / teacher_assignment_quota.py _created_by_values   5 0 0   100%
server / services / growthbook / teacher_assignment_quota.py _class_id_values   5 0 0   100%
server / services / growthbook / teacher_assignment_quota.py resolve_class_scope   12 12 0   0%
server / services / growthbook / teacher_assignment_quota.py TeacherAssignmentQuota.to_dict   1 1 0   0%
server / services / growthbook / teacher_assignment_quota.py count_teacher_created_assignments   6 1 0   83%
server / services / growthbook / teacher_assignment_quota.py is_teacher_made_assignment_access_enabled   3 3 0   0%
server / services / growthbook / teacher_assignment_quota.py resolve_teacher_assignment_quota   5 1 0   80%
server / services / growthbook / teacher_assignment_quota.py get_teacher_assignment_quota   12 1 0   92%
server / services / growthbook / teacher_assignment_quota.py build_teacher_assignment_quota_payload   4 4 0   0%
server / services / growthbook / teacher_assignment_quota.py enforce_teacher_assignment_quota   20 6 0   70%
server / services / growthbook / teacher_assignment_quota.py enforce_teacher_made_assignment_access   4 4 0   0%
server / services / growthbook / teacher_assignment_quota.py (no function)   33 0 0   100%
server / services / growthbook / user_scope.py fetch_district_id_for_school   11 0 0   100%
server / services / growthbook / user_scope.py _district_for_user_doc   8 0 0   100%
server / services / growthbook / user_scope.py find_best_user_document   29 0 0   100%
server / services / growthbook / user_scope.py find_best_user_document._add   7 0 0   100%
server / services / growthbook / user_scope.py (no function)   9 0 0   100%
server / services / student / student_assignment.py _assert_assignment_open   7 0 0   100%
server / services / student / student_assignment.py _assert_lockdown_not_breached   2 0 0   100%
server / services / student / student_assignment.py _normalize_violation_type   1 0 0   100%
server / services / student / student_assignment.py random_question_fetch   8 0 0   100%
server / services / student / student_assignment.py to_utc_aware   3 0 0   100%
server / services / student / student_assignment.py format_grade   7 0 0   100%
server / services / student / student_assignment.py StudentAssignmentsService.__init__   1 0 0   100%
server / services / student / student_assignment.py StudentAssignmentsService.assignments_fetch   29 0 0   100%
server / services / student / student_assignment.py StudentAssignmentsService.class_grade_average_fetch   33 0 0   100%
server / services / student / student_assignment.py StudentAssignmentsService.fetch_specific_assignment   32 1 0   97%
server / services / student / student_assignment.py StudentAssignmentsService.fetch_assignment_questions   28 1 0   96%
server / services / student / student_assignment.py StudentAssignmentsService._validate_object_id   3 0 0   100%
server / services / student / student_assignment.py StudentAssignmentsService._get_assignment   4 0 0   100%
server / services / student / student_assignment.py StudentAssignmentsService._verify_enrollment   4 0 0   100%
server / services / student / student_assignment.py StudentAssignmentsService._has_live_enrolled_class   5 1 0   80%
server / services / student / student_assignment.py StudentAssignmentsService._parse_time   2 0 0   100%
server / services / student / student_assignment.py StudentAssignmentsService._format_duration_hhmmss   2 0 0   100%
server / services / student / student_assignment.py StudentAssignmentsService._elapsed_seconds   9 0 0   100%
server / services / student / student_assignment.py StudentAssignmentsService._resync_submission_questions   22 0 0   100%
server / services / student / student_assignment.py StudentAssignmentsService._handle_existing_submission   27 1 0   96%
server / services / student / student_assignment.py StudentAssignmentsService._create_new_submission   15 0 0   100%
server / services / student / student_assignment.py StudentAssignmentsService._extract_question_ids   16 2 0   88%
server / services / student / student_assignment.py StudentAssignmentsService._fetch_questions_from_bank   1 0 0   100%
server / services / student / student_assignment.py StudentAssignmentsService._prepare_questions   18 0 0   100%
server / services / student / student_assignment.py StudentAssignmentsService._generate_default_answers   1 0 0   100%
server / services / student / student_assignment.py StudentAssignmentsService._prepare_response   17 0 0   100%
server / services / student / student_assignment.py StudentAssignmentsService.assignment_submit   109 9 0   92%
server / services / student / student_assignment.py StudentAssignmentsService.report_violation   15 0 0   100%
server / services / student / student_assignment.py StudentAssignmentsService.is_meaningful_answer   16 1 0   94%
server / services / student / student_assignment.py StudentAssignmentsService._normalize_free_response_answer   1 1 0   0%
server / services / student / student_assignment.py StudentAssignmentsService._is_correct   1 0 0   100%
server / services / student / student_assignment.py StudentAssignmentsService.assignment_answers_save   40 2 0   95%
server / services / student / student_assignment.py StudentAssignmentsService.fetch_submission_details   131 6 1   95%
server / services / student / student_assignment.py (no function)   55 0 0   100%
server / services / student / student_classes.py InvalidStudentRequest.__init__   2 0 0   100%
server / services / student / student_classes.py _own_roster_entry   2 0 0   100%
server / services / student / student_classes.py StudentClassesService.class_create   24 0 0   100%
server / services / student / student_classes.py StudentClassesService.all_classes_fetch   29 0 0   100%
server / services / student / student_classes.py StudentClassesService.get_specific_class_student   16 0 0   100%
server / services / student / student_classes.py StudentClassesService.class_fetch   11 0 0   100%
server / services / student / student_classes.py StudentClassesService.get_class_gradebook   7 0 0   100%
server / services / student / student_classes.py StudentClassesService.get_class_assignments   5 0 0   100%
server / services / student / student_classes.py StudentClassesService.get_class_roster   9 0 0   100%
server / services / student / student_classes.py StudentClassesService.messages_fetch   14 0 0   100%
server / services / student / student_classes.py StudentClassesService.update_class   22 3 0   86%
server / services / student / student_classes.py StudentClassesService.delete_class   17 0 0   100%
server / services / student / student_classes.py StudentClassesService.join   26 0 0   100%
server / services / student / student_classes.py StudentClassesService.leave   20 0 0   100%
server / services / student / student_classes.py StudentClassesService.join_cancel   24 0 0   100%
server / services / student / student_classes.py StudentClassesService.accept_student   23 0 0   100%
server / services / student / student_classes.py StudentClassesService.remove_student   22 0 0   100%
server / services / student / student_classes.py StudentClassesService.accept_leave_request   33 2 0   94%
server / services / student / student_classes.py (no function)   39 0 0   100%
server / services / student / student_dashboard.py _live_class_submission_stages   1 0 0   100%
server / services / student / student_dashboard.py DashboardService.__init__   1 0 0   100%
server / services / student / student_dashboard.py DashboardService.class_statistics_fetch   8 0 0   100%
server / services / student / student_dashboard.py DashboardService.assignment_statistics_fetch   9 0 0   100%
server / services / student / student_dashboard.py DashboardService.achievements_fetch   18 0 0   100%
server / services / student / student_dashboard.py DashboardService.achievements_fetch._badge   1 0 0   100%
server / services / student / student_dashboard.py DashboardService.grade_distribution_fetch   11 0 0   100%
server / services / student / student_dashboard.py DashboardService.gpa_fetch   13 0 0   100%
server / services / student / student_dashboard.py DashboardService.upcoming_assignments_fetch   10 0 0   100%
server / services / student / student_dashboard.py DashboardService.submissions_statistics_fetch   40 0 0   100%
server / services / student / student_dashboard.py (no function)   22 0 0   100%
server / services / student / student_theme.py studentThemeService.__init__   1 0 0   100%
server / services / student / student_theme.py studentThemeService.get_default_theme   5 0 0   100%
server / services / student / student_theme.py studentThemeService.get_current_theme   15 0 0   100%
server / services / student / student_theme.py studentThemeService.apply_theme   15 0 0   100%
server / services / student / student_theme.py studentThemeService.update_theme   31 2 0   94%
server / services / student / student_theme.py studentThemeService.delete_theme   12 0 0   100%
server / services / student / student_theme.py (no function)   16 0 0   100%
server / services / teacher / question_dedup.py fingerprint   3 0 0   100%
server / services / teacher / question_dedup.py existing_fingerprints   5 0 0   100%
server / services / teacher / question_dedup.py mark_duplicates   9 0 0   100%
server / services / teacher / question_dedup.py (no function)   9 0 0   100%
server / services / teacher / question_import.py IngestRejected.__init__   3 0 0   100%
server / services / teacher / question_import.py _request   27 3 0   89%
server / services / teacher / question_import.py _owner_headers   1 0 0   100%
server / services / teacher / question_import.py _safe_json   4 0 0   100%
server / services / teacher / question_import.py _media_type   1 0 0   100%
server / services / teacher / question_import.py create_import   5 0 0   100%
server / services / teacher / question_import.py create_import_from_text   1 0 0   100%
server / services / teacher / question_import.py get_import   1 0 0   100%
server / services / teacher / question_import.py get_import_questions   1 0 0   100%
server / services / teacher / question_import.py commit_import   1 0 0   100%
server / services / teacher / question_import.py ingest_ready   5 0 0   100%
server / services / teacher / question_import.py (no function)   28 0 0   100%
server / services / teacher / teacher_account.py TeacherAccountService.__init__   1 0 0   100%
server / services / teacher / teacher_account.py TeacherAccountService.account_update   74 3 0   96%
server / services / teacher / teacher_account.py TeacherAccountService.teacher_picture_delete   32 0 0   100%
server / services / teacher / teacher_account.py TeacherAccountService.education_update   27 0 0   100%
server / services / teacher / teacher_account.py TeacherAccountService.office_details_update   27 0 0   100%
server / services / teacher / teacher_account.py (no function)   17 0 0   100%
server / services / teacher / teacher_assignment.py TeacherAssignmentsService.__init__   1 0 0   100%
server / services / teacher / teacher_assignment.py TeacherAssignmentsService.create   18 2 0   89%
server / services / teacher / teacher_assignment.py TeacherAssignmentsService.create_staff_assignment   19 5 0   74%
server / services / teacher / teacher_assignment.py TeacherAssignmentsService.fetch_all   14 0 0   100%
server / services / teacher / teacher_assignment.py TeacherAssignmentsService.staff_assignments_fetch   19 2 0   89%
server / services / teacher / teacher_assignment.py TeacherAssignmentsService._assignment_question_ids   7 0 0   100%
server / services / teacher / teacher_assignment.py TeacherAssignmentsService._fetch_questions_for_assignment   19 2 0   89%
server / services / teacher / teacher_assignment.py TeacherAssignmentsService.staff_specific_assignment_fetch   20 3 0   85%
server / services / teacher / teacher_assignment.py TeacherAssignmentsService.fetch_specific_assignment   18 2 0   89%
server / services / teacher / teacher_assignment.py TeacherAssignmentsService.fetch   15 2 1   87%
server / services / teacher / teacher_assignment.py TeacherAssignmentsService.next_fetch   29 0 0   100%
server / services / teacher / teacher_assignment.py TeacherAssignmentsService.answer_update   15 0 0   100%
server / services / teacher / teacher_assignment.py TeacherAssignmentsService.share   7 0 0   100%
server / services / teacher / teacher_assignment.py TeacherAssignmentsService.analytics_summary_fetch   33 2 0   94%
server / services / teacher / teacher_assignment.py TeacherAssignmentsService._build_empty_response   1 0 0   100%
server / services / teacher / teacher_assignment.py TeacherAssignmentsService._calculate_analytics   10 0 0   100%
server / services / teacher / teacher_assignment.py TeacherAssignmentsService._get_empty_analytics   2 0 0   100%
server / services / teacher / teacher_assignment.py TeacherAssignmentsService._format_score   3 0 0   100%
server / services / teacher / teacher_assignment.py TeacherAssignmentsService._percentile   15 0 0   100%
server / services / teacher / teacher_assignment.py TeacherAssignmentsService._get_teacher_assignment   1 0 0   100%
server / services / teacher / teacher_assignment.py TeacherAssignmentsService._authorize_teacher_student_access   11 0 0   100%
server / services / teacher / teacher_assignment.py TeacherAssignmentsService._extract_valid_scores   4 2 0   50%
server / services / teacher / teacher_assignment.py TeacherAssignmentsService._extract_valid_grades   4 2 0   50%
server / services / teacher / teacher_assignment.py TeacherAssignmentsService._count_pass_fail   4 0 0   100%
server / services / teacher / teacher_assignment.py TeacherAssignmentsService._build_category_stats   19 0 0   100%
server / services / teacher / teacher_assignment.py TeacherAssignmentsService._serialize_assignment_details   1 0 0   100%
server / services / teacher / teacher_assignment.py TeacherAssignmentsService.analytics_item_analysis_fetch   27 2 1   93%
server / services / teacher / teacher_assignment.py TeacherAssignmentsService._group_filtered_submissions_by_question   7 0 0   100%
server / services / teacher / teacher_assignment.py TeacherAssignmentsService._fetch_assignment   1 0 0   100%
server / services / teacher / teacher_assignment.py TeacherAssignmentsService._group_submissions_by_question   8 8 0   0%
server / services / teacher / teacher_assignment.py TeacherAssignmentsService._fetch_questionbank_map   15 7 0   53%
server / services / teacher / teacher_assignment.py TeacherAssignmentsService._analyze_question   27 0 0   100%
server / services / teacher / teacher_assignment.py TeacherAssignmentsService._analyze_question.format_value   3 1 0   67%
server / services / teacher / teacher_assignment.py TeacherAssignmentsService._get_empty_stats   1 0 0   100%
server / services / teacher / teacher_assignment.py TeacherAssignmentsService._get_correct_answers   24 0 0   100%
server / services / teacher / teacher_assignment.py TeacherAssignmentsService._init_student_answers   3 0 0   100%
server / services / teacher / teacher_assignment.py TeacherAssignmentsService.analytics_student_submission_fetch   101 5 1   95%
server / services / teacher / teacher_assignment.py TeacherAssignmentsService._validate_comment_path_ids   6 0 0   100%
server / services / teacher / teacher_assignment.py TeacherAssignmentsService._find_submission_for_comment   1 0 0   100%
server / services / teacher / teacher_assignment.py TeacherAssignmentsService.add_student_answer_comment   11 0 0   100%
server / services / teacher / teacher_assignment.py TeacherAssignmentsService.update_student_answer_comment   11 0 0   100%
server / services / teacher / teacher_assignment.py TeacherAssignmentsService._set_student_answer_comment   4 0 0   100%
server / services / teacher / teacher_assignment.py TeacherAssignmentsService.delete_student_answer_comment   12 0 0   100%
server / services / teacher / teacher_assignment.py TeacherAssignmentsService._update_student_answer_counts   8 0 0   100%
server / services / teacher / teacher_assignment.py TeacherAssignmentsService.clean_html   6 0 0   100%
server / services / teacher / teacher_assignment.py TeacherAssignmentsService.choice_text_to_letter   5 0 0   100%
server / services / teacher / teacher_assignment.py TeacherAssignmentsService.mark_student_answer   36 0 0   100%
server / services / teacher / teacher_assignment.py TeacherAssignmentsService._recount_marked_submission   15 0 0   100%
server / services / teacher / teacher_assignment.py TeacherAssignmentsService.update_question_points   16 0 0   100%
server / services / teacher / teacher_assignment.py TeacherAssignmentsService._recount_submissions_for_question   43 0 0   100%
server / services / teacher / teacher_assignment.py TeacherAssignmentsService.update   31 3 0   90%
server / services / teacher / teacher_assignment.py TeacherAssignmentsService.delete   13 0 0   100%
server / services / teacher / teacher_assignment.py TeacherAssignmentsService.list_pending_late_submissions   19 0 0   100%
server / services / teacher / teacher_assignment.py TeacherAssignmentsService.approve_late_submission   22 1 0   95%
server / services / teacher / teacher_assignment.py TeacherAssignmentsService.reject_late_submission   20 1 0   95%
server / services / teacher / teacher_assignment.py TeacherAssignmentsService.submission_fetch   21 2 0   90%
server / services / teacher / teacher_assignment.py (no function)   84 0 0   100%
server / services / teacher / teacher_classes.py InvalidStudentRequest.__init__   2 0 0   100%
server / services / teacher / teacher_classes.py TeacherClassesService.create_new_class   45 3 0   93%
server / services / teacher / teacher_classes.py TeacherClassesService.all_classes_fetch   24 4 0   83%
server / services / teacher / teacher_classes.py TeacherClassesService.my_classes_fetch   17 17 0   0%
server / services / teacher / teacher_classes.py TeacherClassesService.specific_class_fetch   17 17 0   0%
server / services / teacher / teacher_classes.py TeacherClassesService.student_class_fetch   15 15 0   0%
server / services / teacher / teacher_classes.py TeacherClassesService.class_fetch   11 2 0   82%
server / services / teacher / teacher_classes.py TeacherClassesService.class_gradebook_fetch   38 2 0   95%
server / services / teacher / teacher_classes.py TeacherClassesService.class_assignments_fetch   13 2 0   85%
server / services / teacher / teacher_classes.py TeacherClassesService.class_roster_fetch   13 2 0   85%
server / services / teacher / teacher_classes.py TeacherClassesService.class_messages_fetch   13 2 0   85%
server / services / teacher / teacher_classes.py TeacherClassesService.class_message_create   15 2 0   87%
server / services / teacher / teacher_classes.py TeacherClassesService.class_message_delete   16 2 0   88%
server / services / teacher / teacher_classes.py TeacherClassesService.class_update   46 5 0   89%
server / services / teacher / teacher_classes.py TeacherClassesService.class_delete   20 2 0   90%
server / services / teacher / teacher_classes.py TeacherClassesService._authorize_class_owner   12 0 0   100%
server / services / teacher / teacher_classes.py TeacherClassesService.class_photo_add   21 0 0   100%
server / services / teacher / teacher_classes.py TeacherClassesService.class_photo_update   28 2 0   93%
server / services / teacher / teacher_classes.py TeacherClassesService.class_photo_delete   18 0 0   100%
server / services / teacher / teacher_classes.py TeacherClassesService.class_restore   24 5 0   79%
server / services / teacher / teacher_classes.py TeacherClassesService.class_join   24 2 0   92%
server / services / teacher / teacher_classes.py TeacherClassesService.class_leave_request   20 2 0   90%
server / services / teacher / teacher_classes.py TeacherClassesService.join_request_cancel   24 5 0   79%
server / services / teacher / teacher_classes.py TeacherClassesService.student_accepted   31 5 0   84%
server / services / teacher / teacher_classes.py TeacherClassesService.student_remove   32 5 0   84%
server / services / teacher / teacher_classes.py TeacherClassesService.leave_approved   32 3 0   91%
server / services / teacher / teacher_classes.py (no function)   56 0 0   100%
server / services / teacher / teacher_dashboard.py TeacherDashboardService.__init__   1 0 0   100%
server / services / teacher / teacher_dashboard.py TeacherDashboardService.class_statistics_fetch   6 0 0   100%
server / services / teacher / teacher_dashboard.py TeacherDashboardService.student_statistics_fetch   18 3 0   83%
server / services / teacher / teacher_dashboard.py TeacherDashboardService.assignment_statistics_fetch   8 0 0   100%
server / services / teacher / teacher_dashboard.py TeacherDashboardService.submission_statistics_fetch   7 0 0   100%
server / services / teacher / teacher_dashboard.py (no function)   11 0 0   100%
server / services / teacher / teacher_question.py _strip_html_tags   1 0 0   100%
server / services / teacher / teacher_question.py _resolved_pagination   10 4 0   60%
server / services / teacher / teacher_question.py TeacherQuestionService.__init__   1 0 0   100%
server / services / teacher / teacher_question.py TeacherQuestionService.upload_question_image   20 0 0   100%
server / services / teacher / teacher_question.py TeacherQuestionService.fetch   36 2 0   94%
server / services / teacher / teacher_question.py TeacherQuestionService.fetch.to_dict   1 0 0   100%
server / services / teacher / teacher_question.py TeacherQuestionService.staff_questions_fetch   38 4 0   89%
server / services / teacher / teacher_question.py TeacherQuestionService.staff_questions_fetch.to_dict   1 0 0   100%
server / services / teacher / teacher_question.py TeacherQuestionService._apply_search_text   5 0 0   100%
server / services / teacher / teacher_question.py TeacherQuestionService._extract_query_params   10 0 0   100%
server / services / teacher / teacher_question.py TeacherQuestionService._get_empty_response   1 0 0   100%
server / services / teacher / teacher_question.py TeacherQuestionService._mc_choices_or_answers   4 0 0   100%
server / services / teacher / teacher_question.py TeacherQuestionService._mc_choices_or_answers._norm   5 0 0   100%
server / services / teacher / teacher_question.py TeacherQuestionService._check_mc_answer_matches_choice   27 1 0   96%
server / services / teacher / teacher_question.py TeacherQuestionService._validate_question_data   265 17 1   94%
server / services / teacher / teacher_question.py TeacherQuestionService._validate_question_data.validate_field_length   111 47 0   58%
server / services / teacher / teacher_question.py TeacherQuestionService._sanitize_question_rich_text   66 11 0   83%
server / services / teacher / teacher_question.py TeacherQuestionService.create   16 1 0   94%
server / services / teacher / teacher_question.py TeacherQuestionService.detail_fetch   6 0 0   100%
server / services / teacher / teacher_question.py TeacherQuestionService.update   28 1 0   96%
server / services / teacher / teacher_question.py TeacherQuestionService.delete   11 0 0   100%
server / services / teacher / teacher_question.py TeacherQuestionService.get_filter_options   19 0 0   100%
server / services / teacher / teacher_question.py (no function)   55 0 0   100%
server / services / teacher / teacher_theme.py TeacherThemeService.__init__   1 0 0   100%
server / services / teacher / teacher_theme.py TeacherThemeService.get_default_theme   5 0 0   100%
server / services / teacher / teacher_theme.py TeacherThemeService.get_current_theme   15 0 0   100%
server / services / teacher / teacher_theme.py TeacherThemeService.apply_theme   15 0 0   100%
server / services / teacher / teacher_theme.py TeacherThemeService.update_theme   31 1 0   97%
server / services / teacher / teacher_theme.py TeacherThemeService.delete_theme   12 0 0   100%
server / services / teacher / teacher_theme.py (no function)   16 0 0   100%
server / utilities / __init__.py (no function)   0 0 0   100%
server / utilities / answer_match.py normalize_answer_text   6 0 0   100%
server / utilities / answer_match.py first_unmatched_answer   10 0 0   100%
server / utilities / answer_match.py (no function)   6 0 0   100%
server / utilities / assignment_dedupe.py _normalise_date   5 0 0   100%
server / utilities / assignment_dedupe.py compute_dedupe_key   4 0 0   100%
server / utilities / assignment_dedupe.py is_within_dedupe_window   8 1 0   88%
server / utilities / assignment_dedupe.py resolve_duplicate_create   8 0 0   100%
server / utilities / assignment_dedupe.py (no function)   10 0 0   100%
server / utilities / assignment_update.py set_settings_per_key   6 0 0   100%
server / utilities / assignment_update.py _utc   3 0 0   100%
server / utilities / assignment_update.py dates_inverted   3 0 0   100%
server / utilities / assignment_update.py is_reused_global_copy   1 0 0   100%
server / utilities / assignment_update.py _question_ids   6 0 0   100%
server / utilities / assignment_update.py changes_title_or_questions   7 0 0   100%
server / utilities / assignment_update.py (no function)   8 0 0   100%
server / utilities / class_dedupe.py class_dedupe_key   2 0 0   100%
server / utilities / class_dedupe.py is_class_dedupe_violation   2 0 0   100%
server / utilities / class_dedupe.py ensure_class_dedupe_index   1 0 0   100%
server / utilities / class_dedupe.py (no function)   6 0 0   100%
server / utilities / class_limits.py (no function)   2 0 0   100%
server / utilities / email_utils.py is_mailhog_available   10 0 0   100%
server / utilities / email_utils.py get_mail_config   21 0 0   100%
server / utilities / email_utils.py send_custom_email   10 10 0   0%
server / utilities / email_utils.py (no function)   24 7 0   71%
server / utilities / error_detail.py safe_detail   2 0 0   100%
server / utilities / error_detail.py (no function)   3 0 0   100%
server / utilities / exam_catalog.py tiered_exam_feature_keys   1 0 0   100%
server / utilities / exam_catalog.py _assignment_type_value   3 0 0   100%
server / utilities / exam_catalog.py _format_value   1 0 0   100%
server / utilities / exam_catalog.py is_tiered_practice_global   1 0 0   100%
server / utilities / exam_catalog.py parse_exam_feature_key   5 0 0   100%
server / utilities / exam_catalog.py assignment_type_for_feature_key   2 0 0   100%
server / utilities / exam_catalog.py feature_key_for_assignment   9 1 0   89%
server / utilities / exam_catalog.py validate_assignment_feature_key_rules   13 0 0   100%
server / utilities / exam_catalog.py catalog_entry   4 0 0   100%
server / utilities / exam_catalog.py list_exam_catalog_entries   3 0 0   100%
server / utilities / exam_catalog.py list_exam_catalog_entries.sort_key   2 0 0   100%
server / utilities / exam_catalog.py (no function)   15 0 0   100%
server / utilities / file_handler.py FileHandler.read_html_file   9 0 0   100%
server / utilities / file_handler.py (no function)   7 0 0   100%
server / utilities / gradebook.py _to_utc_aware   3 0 0   100%
server / utilities / gradebook.py _canonical_sort_key   3 0 0   100%
server / utilities / gradebook.py select_canonical_submission   3 0 0   100%
server / utilities / gradebook.py resolve_cell_grade   17 0 0   100%
server / utilities / gradebook.py extract_live_question_ids   6 0 0   100%
server / utilities / gradebook.py recalculate_submitted_grade   18 1 0   94%
server / utilities / gradebook.py (no function)   13 0 0   100%
server / utilities / graph_data_checker.py normalize_coordinate   4 0 0   100%
server / utilities / graph_data_checker.py _parse_payload   28 4 0   86%
server / utilities / graph_data_checker.py parse_interactive_dot_limits   11 5 0   55%
server / utilities / graph_data_checker.py parse_interactive_dot_limits.to_limit   9 4 0   56%
server / utilities / graph_data_checker.py parse_interactive_dot_limits.from_limits_obj   3 1 0   67%
server / utilities / graph_data_checker.py _looks_like_inner_graph   3 1 0   67%
server / utilities / graph_data_checker.py looks_like_graph_payload   1 0 0   100%
server / utilities / graph_data_checker.py _sort_dots   11 1 0   91%
server / utilities / graph_data_checker.py _sort_interactive_dots   11 1 0   91%
server / utilities / graph_data_checker.py _sort_label_dots   11 5 0   55%
server / utilities / graph_data_checker.py _sort_lines   13 2 0   85%
server / utilities / graph_data_checker.py _cross_z   1 0 0   100%
server / utilities / graph_data_checker.py _ordered_endpoints   3 0 0   100%
server / utilities / graph_data_checker.py _ineq_shade_sign   10 5 0   50%
server / utilities / graph_data_checker.py _canonicalize_ineq_lines   21 3 0   86%
server / utilities / graph_data_checker.py canonicalize_graph_data   9 2 0   78%
server / utilities / graph_data_checker.py _coords_equal   3 1 0   67%
server / utilities / graph_data_checker.py _compare_coord_arrays   3 1 0   67%
server / utilities / graph_data_checker.py _compare_lines   14 11 0   21%
server / utilities / graph_data_checker.py _compare_ineq_lines   13 4 0   69%
server / utilities / graph_data_checker.py check_graph_data   41 19 0   54%
server / utilities / graph_data_checker.py is_graph_question_type   3 0 0   100%
server / utilities / graph_data_checker.py is_interactive_dots_question_type   4 0 0   100%
server / utilities / graph_data_checker.py check_interactive_dots   17 5 0   71%
server / utilities / graph_data_checker.py grade_interactive_dots_answer   1 0 0   100%
server / utilities / graph_data_checker.py canonical_graph_fingerprint   10 2 0   80%
server / utilities / graph_data_checker.py grade_graph_answer   7 1 0   86%
server / utilities / graph_data_checker.py attach_graph_fingerprint   23 5 0   78%
server / utilities / graph_data_checker.py to_student_prompt_graph   9 1 0   89%
server / utilities / graph_data_checker.py parse_graph_axis_bounds   10 2 0   80%
server / utilities / graph_data_checker.py parse_graph_axis_bounds._num   5 2 0   60%
server / utilities / graph_data_checker.py to_student_prompt_drawing_graph   6 1 0   83%
server / utilities / graph_data_checker.py student_prompt_correct_answer   17 3 0   82%
server / utilities / graph_data_checker.py (no function)   39 0 0   100%
server / utilities / helpers.py question_serializer   1 0 0   100%
server / utilities / helpers.py serialize_profile   2 0 0   100%
server / utilities / helpers.py sanitize_profile   2 0 0   100%
server / utilities / helpers.py _serialize_datetime_utc   2 0 0   100%
server / utilities / helpers.py serialized_response_object   9 0 0   100%
server / utilities / helpers.py (no function)   7 0 0   100%
server / utilities / html_sanitizer.py _fallback_sanitize   4 4 0   0%
server / utilities / html_sanitizer.py strip_html   8 3 0   62%
server / utilities / html_sanitizer.py sanitize_rich_text   7 1 0   86%
server / utilities / html_sanitizer.py sanitize_answer_value   7 0 0   100%
server / utilities / html_sanitizer.py to_plain_text   8 1 0   88%
server / utilities / html_sanitizer.py (no function)   18 0 4   100%
server / utilities / image_processing.py compress_profile_picture   17 6 0   65%
server / utilities / image_processing.py (no function)   7 0 0   100%
server / utilities / model_parser.py account_parser   7 0 0   100%
server / utilities / model_parser.py staff_parser   7 0 0   100%
server / utilities / model_parser.py user_account_parser   32 15 0   53%
server / utilities / model_parser.py updated_account_parser   8 1 0   88%
server / utilities / model_parser.py JSONEncoder.default   5 0 0   100%
server / utilities / model_parser.py parse_response   2 0 0   100%
server / utilities / model_parser.py generate_response_payload   42 0 0   100%
server / utilities / model_parser.py generate_unique_code   7 0 0   100%
server / utilities / model_parser.py InvalidRoleException.__init__   2 0 0   100%
server / utilities / model_parser.py validate_params   4 0 0   100%
server / utilities / model_parser.py normalize_query_params   5 0 0   100%
server / utilities / model_parser.py (no function)   25 0 0   100%
server / utilities / pagination.py resolve_pagination   7 0 0   100%
server / utilities / pagination.py page_count   3 0 0   100%
server / utilities / pagination.py (no function)   5 0 0   100%
server / utilities / readiness.py _ping_mongo   11 0 0   100%
server / utilities / readiness.py check_dependencies   3 0 0   100%
server / utilities / readiness.py (no function)   8 0 0   100%
server / utilities / redis_url.py redis_url_or_default   7 0 0   100%
server / utilities / redis_url.py (no function)   5 0 0   100%
server / utilities / refresh_single_flight.py _fingerprint   1 0 0   100%
server / utilities / refresh_single_flight.py _claim_key   1 0 0   100%
server / utilities / refresh_single_flight.py _result_key   1 0 0   100%
server / utilities / refresh_single_flight.py _get_client   8 3 0   62%
server / utilities / refresh_single_flight.py claim   9 0 0   100%
server / utilities / refresh_single_flight.py publish   7 0 0   100%
server / utilities / refresh_single_flight.py await_result   20 1 0   95%
server / utilities / refresh_single_flight.py abandon   7 1 0   86%
server / utilities / refresh_single_flight.py (no function)   24 0 4   100%
server / utilities / sample_payloads.py (no function)   15 0 0   100%
server / utilities / user_id_helper.py to_user_id   5 1 0   80%
server / utilities / user_id_helper.py enrollment_id_conditions   4 0 0   100%
server / utilities / user_id_helper.py resolve_user_query   6 0 0   100%
server / utilities / user_id_helper.py caller_owns   3 0 0   100%
server / utilities / user_id_helper.py user_id_from_request   2 0 0   100%
server / utilities / user_id_helper.py (no function)   6 0 0   100%
server / utilities / websocket_manager.py StudentDashboardWebSocketManager.__init__   2 0 0   100%
server / utilities / websocket_manager.py StudentDashboardWebSocketManager.connect   4 0 0   100%
server / utilities / websocket_manager.py StudentDashboardWebSocketManager.disconnect   5 0 0   100%
server / utilities / websocket_manager.py StudentDashboardWebSocketManager.broadcast_to_user   22 0 0   100%
server / utilities / websocket_manager.py StudentDashboardWebSocketManager.count_connections   1 0 0   100%
server / utilities / websocket_manager.py StudentDashboardWebSocketManager.total_connections   1 0 0   100%
server / utilities / websocket_manager.py (no function)   13 0 0   100%
server / validators / accounts_validator.py validate_fields   8 8 0   0%
server / validators / accounts_validator.py validate_update_fields   7 7 0   0%
server / validators / accounts_validator.py validate_field_lengths   6 0 0   100%
server / validators / accounts_validator.py is_not_empty   13 0 0   100%
server / validators / accounts_validator.py password_must_be_valid   24 0 0   100%
server / validators / accounts_validator.py check_email   8 0 0   100%
server / validators / accounts_validator.py (no function)   8 0 0   100%
server / validators / assignment_validator.py validate_assignment_fields   18 1 0   94%
server / validators / assignment_validator.py validate_submission_fields   17 0 0   100%
server / validators / assignment_validator.py (no function)   4 0 0   100%
server / validators / class_code_validator.py (no function)   7 0 0   100%
server / validators / feature_enum.py normalize_plan_type   2 0 0   100%
server / validators / feature_enum.py plans_included_through   6 6 0   0%
server / validators / feature_enum.py (no function)   15 0 0   100%
server / validators / query_params_validators.py validate_query_params   4 0 0   100%
server / validators / query_params_validators.py (no function)   2 0 0   100%
server / validators / question_bank / field_validations.py validate_question_field   3 0 0   100%
server / validators / question_bank / field_validations.py validate_choices_field   21 1 0   95%
server / validators / question_bank / field_validations.py _enforce_choice_text_lengths   13 7 0   46%
server / validators / question_bank / field_validations.py validate_correct_answer_field   12 0 0   100%
server / validators / question_bank / field_validations.py validate_solutions_field   2 0 0   100%
server / validators / question_bank / field_validations.py validate_question_details_field   3 0 0   100%
server / validators / question_bank / field_validations.py validate_assignment_type_field   3 0 0   100%
server / validators / question_bank / field_validations.py validate_question_type_field   3 0 0   100%
server / validators / question_bank / field_validations.py validate_difficulty_field   3 0 0   100%
server / validators / question_bank / field_validations.py validate_teks_code_field   3 0 0   100%
server / validators / question_bank / field_validations.py validate_grade_level_field   5 0 0   100%
server / validators / question_bank / field_validations.py validate_points_field   3 0 0   100%
server / validators / question_bank / field_validations.py validate_category_field   7 0 0   100%
server / validators / question_bank / field_validations.py validate_deleted_field   3 0 0   100%
server / validators / question_bank / field_validations.py validate_deleted_date_field   3 0 0   100%
server / validators / question_bank / field_validations.py validate_created_date_field   3 0 0   100%
server / validators / question_bank / field_validations.py validate_updated_date_field   3 0 0   100%
server / validators / question_bank / field_validations.py validate_release_date_field   5 0 0   100%
server / validators / question_bank / field_validations.py (no function)   21 0 0   100%
server / validators / question_bank / input_validations.py (no function)   57 0 0   100%
server / validators / question_class_enum.py (no function)   88 0 0   100%
server / validators / question_request_root_validators.py validate_staar_fields   13 0 0   100%
server / validators / question_request_root_validators.py validate_staff_staar_fields   15 2 0   87%
server / validators / question_request_root_validators.py validate_sat_tsi_act_fields   8 0 0   100%
server / validators / question_request_root_validators.py validate_college_fields   12 12 0   0%
server / validators / question_request_root_validators.py validate_mathworld_fields   16 16 0   0%
server / validators / question_request_root_validators.py validate_option_fields   9 9 0   0%
server / validators / question_request_root_validators.py validate_updated_question_fields   3 3 0   0%
server / validators / question_request_root_validators.py validate_updated_status_fields   3 3 0   0%
server / validators / question_request_root_validators.py is_not_empty   14 0 0   100%
server / validators / question_request_root_validators.py validate_missing_staar_keys   6 0 0   100%
server / validators / question_request_root_validators.py validate_staff_missing_staar_keys   10 0 0   100%
server / validators / question_request_root_validators.py validate_missing_college_keys   6 0 0   100%
server / validators / question_request_root_validators.py validate_missing_mathworld_keys   6 1 0   83%
server / validators / question_request_root_validators.py validate_missing_option_keys   6 0 0   100%
server / validators / question_request_root_validators.py validate_missing_update_keys   8 0 0   100%
server / validators / question_request_root_validators.py validate_category   8 0 0   100%
server / validators / question_request_root_validators.py validate_topic   6 0 0   100%
server / validators / question_request_root_validators.py validate_grade_level   5 0 0   100%
server / validators / question_request_root_validators.py validate_points   15 0 0   100%
server / validators / question_request_root_validators.py validate_subject   8 0 0   100%
server / validators / question_request_root_validators.py validate_keywords   14 0 0   100%
server / validators / question_request_root_validators.py validate_student_expectations   5 0 0   100%
server / validators / question_request_root_validators.py validate_question_content   5 0 0   100%
server / validators / question_request_root_validators.py validate_release_date   12 0 0   100%
server / validators / question_request_root_validators.py set_response_type   8 0 0   100%
server / validators / question_request_root_validators.py is_type_match   11 1 0   91%
server / validators / question_request_root_validators.py set_image   7 1 0   86%
server / validators / question_request_root_validators.py validate_image_urls   10 0 0   100%
server / validators / question_request_root_validators.py validate_test_code   5 0 0   100%
server / validators / question_request_root_validators.py set_classification_type   6 0 0   100%
server / validators / question_request_root_validators.py validate_teks_code   8 0 0   100%
server / validators / question_request_root_validators.py validate_difficulty   6 1 0   83%
server / validators / question_request_root_validators.py validate_option_content   5 0 0   100%
server / validators / question_request_root_validators.py validate_unit   10 0 0   100%
server / validators / question_request_root_validators.py validate_option_letter   7 0 0   100%
server / validators / question_request_root_validators.py validate_is_answer   3 0 0   100%
server / validators / question_request_root_validators.py set_option_image   7 1 0   86%
server / validators / question_request_root_validators.py validate_update_note   4 0 0   100%
server / validators / question_request_root_validators.py validate_question_status   4 0 0   100%
server / validators / question_request_root_validators.py validate_file_size_type   20 0 0   100%
server / validators / question_request_root_validators.py (no function)   47 0 0   100%
server / validators / question_richtext.py has_embedded_base64_image   1 0 0   100%
server / validators / question_richtext.py html_allows_large_content   10 2 0   80%
server / validators / question_richtext.py enforce_text_length   9 2 0   78%
server / validators / question_richtext.py (no function)   11 0 0   100%
server / validators / user_enum.py (no function)   13 0 0   100%
server / worker / __init__.py (no function)   0 0 0   100%
server / worker / auth0_reconciliation.py _send_alert_email   26 4 0   85%
server / worker / auth0_reconciliation.py _get_management_token   3 0 0   100%
server / worker / auth0_reconciliation.py _fetch_all_auth0_users   25 5 0   80%
server / worker / auth0_reconciliation.py reconcile_auth0_users   88 6 0   93%
server / worker / auth0_reconciliation.py (no function)   34 0 0   100%
server / worker / celery_worker.py _redis_db   1 0 0   100%
server / worker / celery_worker.py (no function)   15 0 0   100%
server / worker / student_identity_sync_task.py sync_embedded_student_identity   17 17 0   0%
server / worker / student_identity_sync_task.py (no function)   17 0 0   100%
Total     11471 963 20   92%

No items found using the specified filter.