Coverage report: 87%

Files Functions Classes

coverage.py v7.6.12, created at 2025-05-02 02:49 +0000

File function statements missing excluded coverage
app/__init__.py getEnvironmentVars 14 1 0 93%
app/__init__.py create_app 20 1 0 95%
app/__init__.py FlaskSessionStorage.__init__ 1 1 0 0%
app/__init__.py FlaskSessionStorage.get_item 3 3 0 0%
app/__init__.py FlaskSessionStorage.set_item 2 2 0 0%
app/__init__.py FlaskSessionStorage.remove_item 3 3 0 0%
app/__init__.py (no function) 20 1 0 95%
app/controllers/__init__.py (no function) 0 0 0 100%
app/controllers/ai.py get_openai 4 4 0 0%
app/controllers/ai.py get_gemini 6 6 0 0%
app/controllers/ai.py (no function) 19 0 0 100%
app/controllers/database.py get_session_storage 2 2 0 0%
app/controllers/database.py get_db 3 3 0 0%
app/controllers/database.py get_service_client 1 1 0 0%
app/controllers/database.py generate_code_verifier 1 1 0 0%
app/controllers/database.py generate_code_challenge 3 3 0 0%
app/controllers/database.py (no function) 12 0 0 100%
app/models/errors.py BaseError.__init__ 4 0 0 100%
app/models/errors.py UserAlreadyExistsError.__init__ 1 1 0 0%
app/models/errors.py UserNotFoundError.__init__ 1 1 0 0%
app/models/errors.py DatabaseError.__init__ 1 0 0 100%
app/models/errors.py AuthenticationError.__init__ 1 1 0 0%
app/models/errors.py ModelError.__init__ 1 0 0 100%
app/models/errors.py (no function) 13 0 0 100%
app/models/response.py success_response 1 0 0 100%
app/models/response.py error_response 1 0 0 100%
app/models/response.py (no function) 5 0 0 100%
app/models/status_codes.py (no function) 9 0 0 100%
app/models/suggestion.py Suggestion.__init__ 6 6 0 0%
app/models/suggestion.py Suggestion.get_suggestion 1 1 0 0%
app/models/suggestion.py Suggestion.to_json 1 1 0 0%
app/models/suggestion.py (no function) 11 0 0 100%
app/models/user.py Base.__init__ 1 0 0 100%
app/models/user.py Base.to_json 1 0 0 100%
app/models/user.py Base.__getattr__ 1 0 0 100%
app/models/user.py Base.__getitem__ 1 1 0 0%
app/models/user.py Base.get_user 1 1 0 0%
app/models/user.py Suggestion.hash_password 1 1 0 0%
app/models/user.py (no function) 15 0 0 100%
app/routes/__init__.py register_blueprints 8 0 0 100%
app/routes/__init__.py (no function) 10 0 0 100%
app/routes/auth.py login_page 1 0 0 100%
app/routes/auth.py login_route 15 0 0 100%
app/routes/auth.py auth_complete_route 1 0 0 100%
app/routes/auth.py auth 7 0 0 100%
app/routes/auth.py signup_route 9 0 0 100%
app/routes/auth.py signout_route 5 0 0 100%
app/routes/auth.py (no function) 21 0 0 100%
app/routes/classes.py create_class 10 0 0 100%
app/routes/classes.py get_classes_by_instructor 5 0 0 100%
app/routes/classes.py register_user_to_class 10 0 0 100%
app/routes/classes.py (no function) 11 0 0 100%
app/routes/docs.py serve_docs 1 1 0 0%
app/routes/docs.py docs_index 1 1 0 0%
app/routes/docs.py serve_static 1 1 0 0%
app/routes/docs.py serve_tsdocs 1 1 0 0%
app/routes/docs.py docs_tsindex 1 1 0 0%
app/routes/docs.py serve_tsstatic 1 1 0 0%
app/routes/docs.py (no function) 17 0 0 100%
app/routes/logging.py log_event_route 10 2 0 80%
app/routes/logging.py get_all_logs_route 5 2 0 60%
app/routes/logging.py get_logs_by_user_route 9 3 0 67%
app/routes/logging.py get_logs_by_class_route 7 3 0 57%
app/routes/logging.py log_suggestion_route 11 2 0 82%
app/routes/logging.py ai_usage_route 5 2 0 60%
app/routes/logging.py health_check 1 0 0 100%
app/routes/logging.py (no function) 24 0 0 100%
app/routes/main_page.py main_page_route 4 2 0 50%
app/routes/main_page.py download_route 4 4 0 0%
app/routes/main_page.py get_all_data 9 9 0 0%
app/routes/main_page.py (no function) 13 0 0 100%
app/routes/quiz.py generate_quiz_route 26 26 0 0%
app/routes/quiz.py (no function) 9 0 0 100%
app/routes/suggestions.py generate_suggestion_route 14 3 0 79%
app/routes/suggestions.py refine_prompt 10 3 0 70%
app/routes/suggestions.py generate_hint 11 3 0 73%
app/routes/suggestions.py generate_explanation 11 11 0 0%
app/routes/suggestions.py validate_fix 12 3 0 75%
app/routes/suggestions.py list_models_route 8 8 0 0%
app/routes/suggestions.py get_suggestion_details 7 7 0 0%
app/routes/suggestions.py (no function) 23 0 0 100%
app/routes/user.py get_user_route 7 2 0 71%
app/routes/user.py update_user_status_route 11 2 0 82%
app/routes/user.py get_user_class_status_route 10 2 0 80%
app/routes/user.py create_user_section_route 5 2 0 60%
app/routes/user.py get_user_section_route 6 2 0 67%
app/routes/user.py update_user_section_route 13 2 0 85%
app/routes/user.py update_user_settings_route 8 2 0 75%
app/routes/user.py get_user_classes_route 7 3 0 57%
app/routes/user.py get_all_users_route 7 3 0 57%
app/routes/user.py delete_user_route 7 3 0 57%
app/routes/user.py update_user_route 8 2 0 75%
app/routes/user.py (no function) 32 0 0 100%
app/services/auth_service.py login_with_provider 3 0 0 100%
app/services/auth_service.py login_with_email 3 0 0 100%
app/services/auth_service.py callback 5 0 0 100%
app/services/auth_service.py signout 5 0 0 100%
app/services/auth_service.py signup_with_email 3 0 0 100%
app/services/auth_service.py (no function) 9 0 0 100%
app/services/class_service.py insert_new_class 5 0 0 100%
app/services/class_service.py fetch_classes_by_instructor 4 0 0 100%
app/services/class_service.py insert_class_user 5 0 0 100%
app/services/class_service.py (no function) 4 0 0 100%
app/services/log_service.py log_event 5 3 0 40%
app/services/log_service.py log_suggestion 9 0 0 100%
app/services/log_service.py get_all_logs 6 3 0 50%
app/services/log_service.py get_logs_by_user 11 3 0 73%
app/services/log_service.py get_ai_usage 6 3 0 50%
app/services/log_service.py get_all_data_from_db 13 3 0 77%
app/services/log_service.py get_logs_by_class 9 4 0 56%
app/services/log_service.py (no function) 9 0 0 100%
app/services/quiz_service.py build_prompt_from_suggestions 9 9 0 0%
app/services/quiz_service.py generate_quiz_from_prompt 27 27 0 0%
app/services/quiz_service.py (no function) 7 0 0 100%
app/services/suggestion_service.py getSuggestion 13 2 0 85%
app/services/suggestion_service.py getSuggestionFromOpenAI 15 0 0 100%
app/services/suggestion_service.py getSuggestionFromOllama 9 0 0 100%
app/services/suggestion_service.py getSuggestionFromGoogle 26 1 0 96%
app/services/suggestion_service.py getAvailableModels 10 2 0 80%
app/services/suggestion_service.py getModelsFromOpenAI 7 0 0 100%
app/services/suggestion_service.py getModelsFromOllama 9 0 0 100%
app/services/suggestion_service.py getModelsFromGoogle 5 0 0 100%
app/services/suggestion_service.py generate_refined_prompt 6 0 0 100%
app/services/suggestion_service.py generate_hint_from_gemini 6 0 0 100%
app/services/suggestion_service.py generate_explanation_from_gemini 6 2 0 67%
app/services/suggestion_service.py check_code_correctness 7 3 0 57%
app/services/suggestion_service.py get_suggestion_by_id 8 0 0 100%
app/services/suggestion_service.py (no function) 23 0 0 100%
app/services/user_service.py update_user_class_status 11 0 0 100%
app/services/user_service.py get_user_class_status 7 3 0 57%
app/services/user_service.py create_user_section 11 4 0 64%
app/services/user_service.py get_user_section 13 4 0 69%
app/services/user_service.py update_user_section 5 3 0 40%
app/services/user_service.py get_classes_by_user_id 15 0 0 100%
app/services/user_service.py get_all_users 24 0 0 100%
app/services/user_service.py get_user_by_id 22 22 0 0%
app/services/user_service.py update_user_settings 5 5 0 0%
app/services/user_service.py delete_user 9 9 0 0%
app/services/user_service.py edit_user 10 10 0 0%
app/services/user_service.py (no function) 16 0 0 100%
tests/__init__.py (no function) 0 0 0 100%
tests/conftest.py app 4 0 0 100%
tests/conftest.py client 1 0 0 100%
tests/conftest.py (no function) 9 0 0 100%
tests/routes/test_auth_route.py test_login_page 2 0 0 100%
tests/routes/test_auth_route.py test_login_route_email_success 11 0 0 100%
tests/routes/test_auth_route.py test_login_route_email_missing_fields 10 0 0 100%
tests/routes/test_auth_route.py test_login_route_github_success 6 0 0 100%
tests/routes/test_auth_route.py test_login_route_github_missing_provider 5 0 0 100%
tests/routes/test_auth_route.py test_auth_complete 3 0 0 100%
tests/routes/test_auth_route.py test_auth_callback 8 0 0 100%
tests/routes/test_auth_route.py test_auth_callback_missing_code 5 0 0 100%
tests/routes/test_auth_route.py test_auth_callback_next_url 10 0 0 100%
tests/routes/test_auth_route.py test_auth_signup_success 8 0 0 100%
tests/routes/test_auth_route.py test_auth_signup_missing_fields 5 0 0 100%
tests/routes/test_auth_route.py test_auth_signout_success 7 0 0 100%
tests/routes/test_auth_route.py test_auth_signout_missing_user_id 5 0 0 100%
tests/routes/test_auth_route.py (no function) 17 0 0 100%
tests/routes/test_classes_route.py test_create_class_sucess 7 0 0 100%
tests/routes/test_classes_route.py test_create_class_missing_fields 4 0 0 100%
tests/routes/test_classes_route.py test_create_class_unknown_error 6 0 0 100%
tests/routes/test_classes_route.py test_get_classes_by_intructor_success 7 0 0 100%
tests/routes/test_classes_route.py test_get_classes_by_intructor_unknown_error 5 0 0 100%
tests/routes/test_classes_route.py test_register_user_to_class_success 7 0 0 100%
tests/routes/test_classes_route.py test_register_user_to_class_missing_fields 4 0 0 100%
tests/routes/test_classes_route.py test_register_user_to_class_unknown_error 6 0 0 100%
tests/routes/test_classes_route.py (no function) 10 0 0 100%
tests/routes/test_index_route.py test_index_route 2 0 0 100%
tests/routes/test_index_route.py (no function) 1 0 0 100%
tests/routes/test_log_route.py test_health_check 3 0 0 100%
tests/routes/test_log_route.py test_log_event_success 4 0 0 100%
tests/routes/test_log_route.py test_log_event_missing_fields 3 0 0 100%
tests/routes/test_log_route.py test_get_all_logs_success 4 0 0 100%
tests/routes/test_log_route.py test_get_logs_by_user_success 4 0 0 100%
tests/routes/test_log_route.py test_get_logs_by_class_success 4 0 0 100%
tests/routes/test_log_route.py test_log_suggestion_success 4 0 0 100%
tests/routes/test_log_route.py test_log_suggestion_missing_fields 3 0 0 100%
tests/routes/test_log_route.py test_ai_usage_success 4 0 0 100%
tests/routes/test_log_route.py (no function) 18 0 0 100%
tests/routes/test_quiz_route.py (no function) 0 0 0 100%
tests/routes/test_suggestions_route.py mock_get_suggestion 2 0 0 100%
tests/routes/test_suggestions_route.py mock_check_code_correctness 2 0 0 100%
tests/routes/test_suggestions_route.py mock_get_code_hint 2 0 0 100%
tests/routes/test_suggestions_route.py mock_get_refined_prompt 2 0 0 100%
tests/routes/test_suggestions_route.py test_suggestions_route_prompt 5 0 0 100%
tests/routes/test_suggestions_route.py test_suggestions_route_no_prompt 3 0 0 100%
tests/routes/test_suggestions_route.py test_suggestions_route_refine 6 0 0 100%
tests/routes/test_suggestions_route.py test_suggestions_route_hint 4 0 0 100%
tests/routes/test_suggestions_route.py test_suggestions_route_answer 5 0 0 100%
tests/routes/test_suggestions_route.py (no function) 16 0 0 100%
tests/routes/test_user_route.py test_get_user_success 6 0 0 100%
tests/routes/test_user_route.py test_get_user_not_found 5 0 0 100%
tests/routes/test_user_route.py test_update_user_status_success 4 0 0 100%
tests/routes/test_user_route.py test_update_user_status_invalid_status 2 0 0 100%
tests/routes/test_user_route.py test_get_user_class_status_success 5 0 0 100%
tests/routes/test_user_route.py test_get_user_class_status_not_found 3 0 0 100%
tests/routes/test_user_route.py test_create_user_section_success 3 0 0 100%
tests/routes/test_user_route.py test_get_user_sections_success 5 0 0 100%
tests/routes/test_user_route.py test_update_user_section_status_success 4 0 0 100%
tests/routes/test_user_route.py test_update_user_section_status_invalid_status 2 0 0 100%
tests/routes/test_user_route.py test_update_user_section_status_missing_id 2 0 0 100%
tests/routes/test_user_route.py test_update_user_settings_success 4 0 0 100%
tests/routes/test_user_route.py test_update_user_settings_missing_settings 2 0 0 100%
tests/routes/test_user_route.py test_get_user_classes_success 5 0 0 100%
tests/routes/test_user_route.py test_get_users_success 5 0 0 100%
tests/routes/test_user_route.py test_delete_user_success 5 0 0 100%
tests/routes/test_user_route.py test_update_user_success 4 0 0 100%
tests/routes/test_user_route.py test_update_user_missing_data 2 0 0 100%
tests/routes/test_user_route.py (no function) 22 0 0 100%
tests/services/test_auth_service.py test_login_with_provider 8 0 0 100%
tests/services/test_auth_service.py test_login_with_email 7 0 0 100%
tests/services/test_auth_service.py test_callback_success 4 0 0 100%
tests/services/test_auth_service.py test_callback_failure 4 0 0 100%
tests/services/test_auth_service.py test_signout_success 4 0 0 100%
tests/services/test_auth_service.py test_signout_failure 4 0 0 100%
tests/services/test_auth_service.py test_signup_with_email 10 0 0 100%
tests/services/test_auth_service.py (no function) 18 0 0 100%
tests/services/test_class_service.py test_insert_new_class_success 7 0 0 100%
tests/services/test_class_service.py test_insert_new_class_failure 6 0 0 100%
tests/services/test_class_service.py test_fetch_classes_by_instructor_success 7 0 0 100%
tests/services/test_class_service.py test_fetch_classes_by_instructor_failure 5 0 0 100%
tests/services/test_class_service.py test_insert_class_user_success 6 0 0 100%
tests/services/test_class_service.py test_insert_class_user_failure 5 0 0 100%
tests/services/test_class_service.py (no function) 15 0 0 100%
tests/services/test_log_service.py mock_execute_with_data 3 0 0 100%
tests/services/test_log_service.py test_log_event_success 11 0 0 100%
tests/services/test_log_service.py test_log_suggestion_success 12 0 0 100%
tests/services/test_log_service.py test_log_suggestion_failure_no_data 9 0 0 100%
tests/services/test_log_service.py test_get_all_logs 8 0 0 100%
tests/services/test_log_service.py test_get_logs_by_user 10 0 0 100%
tests/services/test_log_service.py test_get_logs_by_user_with_section_and_class 15 0 0 100%
tests/services/test_log_service.py test_get_logs_by_class 10 0 0 100%
tests/services/test_log_service.py test_get_ai_usage 8 0 0 100%
tests/services/test_log_service.py test_get_all_data_from_db 5 0 0 100%
tests/services/test_log_service.py (no function) 22 0 0 100%
tests/services/test_suggestion_service.py mock_openai_client 19 0 0 100%
tests/services/test_suggestion_service.py mock_gemini_client 19 0 0 100%
tests/services/test_suggestion_service.py mock_db_client 17 0 0 100%
tests/services/test_suggestion_service.py mock_requests 11 0 0 100%
tests/services/test_suggestion_service.py test_getSuggestion_routes_to_openai 3 0 0 100%
tests/services/test_suggestion_service.py test_getSuggestion_routes_to_ollama 3 0 0 100%
tests/services/test_suggestion_service.py test_getSuggestion_routes_to_google 3 0 0 100%
tests/services/test_suggestion_service.py test_getSuggestion_defaults_to_google_on_invalid_vendor 3 0 0 100%
tests/services/test_suggestion_service.py test_getSuggestionFromOpenAI_success_correct 9 0 0 100%
tests/services/test_suggestion_service.py test_getSuggestionFromOpenAI_success_incorrect 7 0 0 100%
tests/services/test_suggestion_service.py test_getSuggestionFromOpenAI_api_error 3 0 0 100%
tests/services/test_suggestion_service.py test_getSuggestionFromOllama_success_correct 7 0 0 100%
tests/services/test_suggestion_service.py test_getSuggestionFromOllama_success_incorrect 7 0 0 100%
tests/services/test_suggestion_service.py test_getSuggestionFromOllama_request_error 4 0 0 100%
tests/services/test_suggestion_service.py test_getSuggestionFromOllama_other_error 4 0 0 100%
tests/services/test_suggestion_service.py test_getSuggestionFromGoogle_success 10 0 0 100%
tests/services/test_suggestion_service.py test_getSuggestionFromGoogle_gemini_error 6 0 0 100%
tests/services/test_suggestion_service.py test_getSuggestionFromGoogle_json_decode_error 8 0 0 100%
tests/services/test_suggestion_service.py test_getSuggestionFromGoogle_empty_response 5 0 0 100%
tests/services/test_suggestion_service.py test_getSuggestionFromGoogle_no_usage_metadata 7 0 0 100%
tests/services/test_suggestion_service.py test_getAvailableModels_routes_openai 3 0 0 100%
tests/services/test_suggestion_service.py test_getAvailableModels_routes_ollama 3 0 0 100%
tests/services/test_suggestion_service.py test_getAvailableModels_routes_google 3 0 0 100%
tests/services/test_suggestion_service.py test_getAvailableModels_invalid_vendor 2 0 0 100%
tests/services/test_suggestion_service.py test_getModelsFromOpenAI_success 3 0 0 100%
tests/services/test_suggestion_service.py test_getModelsFromOpenAI_api_error 3 0 0 100%
tests/services/test_suggestion_service.py test_getModelsFromOllama_success 6 0 0 100%
tests/services/test_suggestion_service.py test_getModelsFromOllama_request_error 4 0 0 100%
tests/services/test_suggestion_service.py test_getModelsFromOllama_missing_models_key 4 0 0 100%
tests/services/test_suggestion_service.py test_getModelsFromGoogle_success 3 0 0 100%
tests/services/test_suggestion_service.py test_getModelsFromGoogle_api_error 3 0 0 100%
tests/services/test_suggestion_service.py test_generate_refined_prompt_success 6 0 0 100%
tests/services/test_suggestion_service.py test_generate_refined_prompt_api_error 3 0 0 100%
tests/services/test_suggestion_service.py test_generate_hint_from_gemini_success 11 0 0 100%
tests/services/test_suggestion_service.py test_generate_hint_from_gemini_api_error 3 0 0 100%
tests/services/test_suggestion_service.py test_generate_explanation_from_gemini_success 12 0 0 100%
tests/services/test_suggestion_service.py test_check_code_correctness 12 0 0 100%
tests/services/test_suggestion_service.py test_get_suggestion_by_id_found 12 0 0 100%
tests/services/test_suggestion_service.py test_get_suggestion_by_id_not_found 6 0 0 100%
tests/services/test_suggestion_service.py test_get_suggestion_by_id_db_error 5 0 0 100%
tests/services/test_suggestion_service.py (no function) 55 0 0 100%
tests/services/test_user_service.py test_update_user_class_status_with_class_id 8 0 0 100%
tests/services/test_user_service.py test_update_user_class_status_with_class_id_error 9 0 0 100%
tests/services/test_user_service.py test_update_user_class_status_without_class_id 8 0 0 100%
tests/services/test_user_service.py test_update_user_class_status_without_class_id_error 9 0 0 100%
tests/services/test_user_service.py test_get_user_class_status_success 10 0 0 100%
tests/services/test_user_service.py test_get_user_class_status_no_data 5 0 0 100%
tests/services/test_user_service.py test_create_user_section_with_class_id 11 0 0 100%
tests/services/test_user_service.py test_create_user_section_without_class_id 11 0 0 100%
tests/services/test_user_service.py test_get_user_section_existing 5 0 0 100%
tests/services/test_user_service.py test_get_user_section_creates_new 7 0 0 100%
tests/services/test_user_service.py test_update_user_section 11 0 0 100%
tests/services/test_user_service.py test_get_classes_by_user_id_returns_classes 6 0 0 100%
tests/services/test_user_service.py test_get_classes_by_user_id_no_data 5 0 0 100%
tests/services/test_user_service.py test_get_classes_by_user_id_raises_error 4 0 0 100%
tests/services/test_user_service.py test_get_all_users_merges_sources 18 0 0 100%
tests/services/test_user_service.py test_get_all_users_handles_empty_sources 4 0 0 100%
tests/services/test_user_service.py test_get_all_users_raises_database_error 3 0 0 100%
tests/services/test_user_service.py (no function) 43 0 0 100%
Total   2217 295 0 87%

No items found using the specified filter.