| Suite | Status | Total | Passed | Failed | Errors | Skipped | Duration |
|---|---|---|---|---|---|---|---|
| account | FAILED | 29 | 7 | 11 | 8 | 3 | 4.30s |
| assignment | PASSED | 27 | 27 | 0 | 0 | 0 | 4.81s |
| classes | PASSED | 8 | 8 | 0 | 0 | 0 | 1.80s |
| password | PASSED | 5 | 5 | 0 | 0 | 0 | 1.46s |
| question | PASSED | 24 | 22 | 0 | 0 | 2 | 2.74s |
| student | PASSED | 4 | 4 | 0 | 0 | 0 | 1.15s |
| teacher/account | PASSED | 9 | 9 | 0 | 0 | 0 | 1.77s |
| theme | PASSED | 17 | 17 | 0 | 0 | 0 | 2.87s |
account| Class | Test | Status | Duration |
|---|---|---|---|
| tests.account.test_student_password_change | test_wrong_current_password_returns_401 [1] Student ROPG login failed: Wrong email or password. |
SKIPPED | 0.32s |
| tests.account.test_student_password_change | test_no_token_returns_401 [2] | PASSED | 0.17s |
| tests.account.test_student_password_change | test_below_min_length_new_password_returns_422 [3] Student ROPG login failed: Wrong email or password. |
SKIPPED | 0.00s |
| tests.account.test_student_password_change | test_above_max_length_new_password_returns_422 [4] Student ROPG login failed: Wrong email or password. |
SKIPPED | 0.00s |
| tests.account.test_teacher_auth0_login | test_auth0_login_returns_200 [5] | PASSED | 0.48s |
| tests.account.test_teacher_auth0_login | test_auth0_login_response_contains_access_token [6] | PASSED | 0.25s |
| tests.account.test_teacher_auth0_login | test_auth0_login_token_type_is_bearer [7] | PASSED | 0.22s |
| tests.account.test_teacher_auth0_login | test_auth0_login_access_token_is_jwt_format [8] | PASSED | 0.22s |
| tests.account.test_teacher_auth0_login | test_auth0_login_response_contains_expires_in [9] | PASSED | 0.22s |
| tests.account.test_teacher_auth0_login | test_auth0_login_response_schema [10] | PASSED | 0.23s |
| tests.account.test_teacher_login | test_login_returns_200 [11] failed on setup with "AssertionError: Teacher registration failed during login test setup. Body: {"detail":"Not Found"} assert 404 == 201 + where 404 = <Response [404]>.status_code" |
ERROR | 0.09s |
| tests.account.test_teacher_login | test_login_response_contains_access_token [12] failed on setup with "AssertionError: Teacher registration failed during login test setup. Body: {"detail":"Not Found"} assert 404 == 201 + where 404 = <Response [404]>.status_code" |
ERROR | 0.00s |
| tests.account.test_teacher_login | test_login_response_contains_role [13] failed on setup with "AssertionError: Teacher registration failed during login test setup. Body: {"detail":"Not Found"} assert 404 == 201 + where 404 = <Response [404]>.status_code" |
ERROR | 0.00s |
| tests.account.test_teacher_login | test_login_access_token_is_jwt_format [14] failed on setup with "AssertionError: Teacher registration failed during login test setup. Body: {"detail":"Not Found"} assert 404 == 201 + where 404 = <Response [404]>.status_code" |
ERROR | 0.00s |
| tests.account.test_teacher_login | test_login_response_schema [15] failed on setup with "AssertionError: Teacher registration failed during login test setup. Body: {"detail":"Not Found"} assert 404 == 201 + where 404 = <Response [404]>.status_code" |
ERROR | 0.00s |
| tests.account.test_teacher_login | test_login_with_wrong_password_returns_error [16] failed on setup with "AssertionError: Teacher registration failed during login test setup. Body: {"detail":"Not Found"} assert 404 == 201 + where 404 = <Response [404]>.status_code" |
ERROR | 0.00s |
| tests.account.test_teacher_login | test_login_with_wrong_email_returns_error [17] failed on setup with "AssertionError: Teacher registration failed during login test setup. Body: {"detail":"Not Found"} assert 404 == 201 + where 404 = <Response [404]>.status_code" |
ERROR | 0.00s |
| tests.account.test_teacher_login | test_login_with_empty_email_returns_error [18] assert 404 in (400, 401, 422) + where 404 = <Response [404]>.status_code |
FAILED | 0.10s |
| tests.account.test_teacher_login | test_login_with_empty_password_returns_error [19] failed on setup with "AssertionError: Teacher registration failed during login test setup. Body: {"detail":"Not Found"} assert 404 == 201 + where 404 = <Response [404]>.status_code" |
ERROR | 0.00s |
| tests.account.test_teacher_register | test_register_returns_201 [20] AssertionError: Expected status 201, got 404. Body: {"detail":"Not Found"} |
FAILED | 0.09s |
| tests.account.test_teacher_register | test_register_response_detail_message [21] AssertionError: Expected status 201, got 404. Body: {"detail":"Not Found"} |
FAILED | 0.02s |
| tests.account.test_teacher_register | test_register_response_contains_user_account [22] AssertionError: Expected status 201, got 404. Body: {"detail":"Not Found"} |
FAILED | 0.02s |
| tests.account.test_teacher_register | test_register_response_schema [23] AssertionError: Expected status 201, got 404. Body: {"detail":"Not Found"} |
FAILED | 0.02s |
| tests.account.test_teacher_register | test_register_user_account_fields [24] AssertionError: Expected status 201, got 404. Body: {"detail":"Not Found"} |
FAILED | 0.02s |
| tests.account.test_teacher_register | test_register_user_status_is_pending_activation [25] AssertionError: Expected status 201, got 404. Body: {"detail":"Not Found"} |
FAILED | 0.02s |
| tests.account.test_teacher_register | test_register_user_id_is_present [26] AssertionError: Expected status 201, got 404. Body: {"detail":"Not Found"} |
FAILED | 0.02s |
| tests.account.test_teacher_register | test_register_user_nullable_fields_are_present [27] AssertionError: Expected status 201, got 404. Body: {"detail":"Not Found"} |
FAILED | 0.02s |
| tests.account.test_teacher_register | test_register_user_usage_counters_default_to_zero [28] AssertionError: Expected status 201, got 404. Body: {"detail":"Not Found"} |
FAILED | 0.02s |
| tests.account.test_teacher_register | test_register_user_created_at_is_populated [29] AssertionError: Expected status 201, got 404. Body: {"detail":"Not Found"} |
FAILED | 0.02s |
assignment| Class | Test | Status | Duration |
|---|---|---|---|
| tests.assignment.test_EI_214_teacher_create_assignment | test_EI_214_teacher_create_assignment [1] | PASSED | 0.89s |
| tests.assignment.test_EI_214_teacher_create_assignment | test_assignment_timestamps_chronological [2] | PASSED | 0.10s |
| tests.assignment.test_EI_214_teacher_create_assignment | test_assignment_ids_unique [3] | PASSED | 0.10s |
| tests.assignment.test_EI_214_teacher_create_assignment | test_assignment_required_fields_not_empty [4] | PASSED | 0.14s |
| tests.assignment.test_EI_214_teacher_create_assignment | test_EI_TC_950_create_assignment_for_class_success [5] | PASSED | 0.10s |
| tests.assignment.test_EI_214_teacher_create_assignment | test_EI_TC_951_create_assignment_missing_required_fields_returns_error [6] | PASSED | 0.13s |
| tests.assignment.test_EI_214_teacher_create_assignment | test_EI_TC_953_fetch_assignments_by_class_code_staff_view [7] | PASSED | 0.34s |
| tests.assignment.test_EI_214_teacher_create_assignment | test_EI_TC_954_update_assignment_unauthorized_or_invalid_owner[unauthorized] [8] | PASSED | 0.10s |
| tests.assignment.test_EI_214_teacher_create_assignment | test_EI_TC_954_update_assignment_unauthorized_or_invalid_owner[different_owner] [9] | PASSED | 0.10s |
| tests.assignment.test_EI_214_teacher_create_assignment | test_EI_TC_956_analytics_summary_fetch_for_assignment [10] | PASSED | 0.10s |
| tests.assignment.test_EI_214_teacher_create_assignment | test_EI_TC_959_create_assignment_missing_required_fields_variant [11] | PASSED | 0.10s |
| tests.assignment.test_EI_214_teacher_create_assignment | test_EI_TC_961_unauthorized_user_cannot_create_assignment [12] | PASSED | 0.09s |
| tests.assignment.test_EI_214_teacher_create_assignment | test_EI_TC_962_update_non_existent_assignment [13] | PASSED | 0.07s |
| tests.assignment.test_EI_214_teacher_create_assignment | test_EI_1170_assigned_class_missing_returns_400 [14] | PASSED | 0.10s |
| tests.assignment.test_EI_214_teacher_create_assignment | test_EI_1170_assigned_class_empty_list_returns_400 [15] | PASSED | 0.10s |
| tests.assignment.test_EI_214_teacher_create_assignment | test_EI_1170_assigned_class_non_empty_returns_201 [16] | PASSED | 0.14s |
| tests.assignment.test_EI_2365_analytics | test_EI_2365_analytics_summary_no_auth_returns_unauthorized [17] | PASSED | 0.07s |
| tests.assignment.test_EI_2365_analytics | test_EI_2365_analytics_summary_invalid_uuid_returns_400 [18] | PASSED | 0.31s |
| tests.assignment.test_EI_2365_analytics | test_EI_2365_analytics_summary_nonexistent_class_returns_404 [19] | PASSED | 0.08s |
| tests.assignment.test_EI_2365_analytics | test_EI_2365_analytics_summary_no_data_leakage [20] | PASSED | 0.07s |
| tests.assignment.test_EI_2365_analytics | test_EI_2365_item_analysis_invalid_uuid_returns_400 [21] | PASSED | 0.07s |
| tests.assignment.test_EI_3286_show_analytics | test_EI_3286_show_analytics_no_auth_returns_unauthorized [22] | PASSED | 0.07s |
| tests.assignment.test_EI_3286_show_analytics | test_EI_3286_show_analytics_malformed_uuid_returns_400 [23] | PASSED | 0.33s |
| tests.assignment.test_EI_3286_show_analytics | test_EI_3286_show_analytics_short_uuid_returns_400 [24] | PASSED | 0.17s |
| tests.assignment.test_EI_3286_show_analytics | test_EI_3286_show_analytics_long_uuid_returns_400 [25] | PASSED | 0.07s |
| tests.assignment.test_EI_3286_show_analytics | test_EI_3286_show_analytics_nonexistent_uuid_returns_404 [26] | PASSED | 0.08s |
| tests.assignment.test_EI_3286_show_analytics | test_EI_3286_show_analytics_special_chars_returns_400 [27] | PASSED | 0.08s |
classes| Class | Test | Status | Duration |
|---|---|---|---|
| tests.classes.test_EI_2360_classes_with_students | test_EI_2360_classes_list_returns_200 [1] | PASSED | 0.36s |
| tests.classes.test_EI_2360_classes_with_students | test_EI_2360_classes_list_envelope_has_classes_key [2] | PASSED | 0.09s |
| tests.classes.test_EI_2360_classes_with_students | test_EI_2360_classes_list_no_auth_returns_unauthorized [3] | PASSED | 0.07s |
| tests.classes.test_EI_2360_classes_with_students | test_EI_2360_invalid_path_returns_404 [4] | PASSED | 0.07s |
| tests.classes.test_EI_3274_update_datetime | test_EI_3274_update_no_auth_returns_unauthorized [5] | PASSED | 0.07s |
| tests.classes.test_EI_3274_update_datetime | test_EI_3274_update_invalid_uuid_returns_400 [6] | PASSED | 0.36s |
| tests.classes.test_EI_3274_update_datetime | test_EI_3274_update_nonexistent_uuid_returns_4xx [7] | PASSED | 0.07s |
| tests.classes.test_EI_3274_update_datetime | test_EI_3274_update_error_does_not_leak_uuid [8] | PASSED | 0.07s |
password| Class | Test | Status | Duration |
|---|---|---|---|
| tests.password.test_EI_3284_password_reset_token | test_EI_3284_valid_email_returns_200 [1] | PASSED | 0.32s |
| tests.password.test_EI_3284_password_reset_token | test_EI_3284_nonexistent_email_returns_200 [2] | PASSED | 0.27s |
| tests.password.test_EI_3284_password_reset_token | test_EI_3284_missing_email_returns_400 [3] | PASSED | 0.07s |
| tests.password.test_EI_3284_password_reset_token | test_EI_3284_malformed_email_returns_400 [4] | PASSED | 0.07s |
| tests.password.test_EI_3284_password_reset_token | test_EI_3284_extra_fields_ignored [5] | PASSED | 0.23s |
question| Class | Test | Status | Duration |
|---|---|---|---|
| tests.question.test_EI_218_teacher_create_question_bank | test_EI_TC_974_change_teacher_password_with_valid_credentials [1] Teacher register endpoint is not available in this environment. |
SKIPPED | 0.07s |
| tests.question.test_EI_218_teacher_create_question_bank | test_EI_TC_975_fetch_all_staff_questions_list_successfully [2] | PASSED | 0.38s |
| tests.question.test_EI_218_teacher_create_question_bank | test_EI_TC_976_create_new_question [3] | PASSED | 0.08s |
| tests.question.test_EI_218_teacher_create_question_bank | test_EI_TC_977_change_password_with_invalid_old_password [4] Teacher register endpoint is not available in this environment. |
SKIPPED | 0.02s |
| tests.question.test_EI_218_teacher_create_question_bank | test_EI_TC_978_create_question_with_invalid_data_payload [5] | PASSED | 0.07s |
| tests.question.test_EI_218_teacher_create_question_bank | test_EI_TC_979_fetch_update_delete_non_existent_question_id [6] | PASSED | 0.10s |
| tests.question.test_EI_218_teacher_create_question_bank | test_EI_2781_points_at_max_succeeds [7] | PASSED | 0.08s |
| tests.question.test_EI_218_teacher_create_question_bank | test_EI_2781_points_above_max_rejected [8] | PASSED | 0.07s |
| tests.question.test_EI_218_teacher_create_question_bank | test_EI_2781_points_at_zero_rejected [9] | PASSED | 0.07s |
| tests.question.test_EI_218_teacher_create_question_bank | test_EI_2781_points_overflow_rejected [10] | PASSED | 0.07s |
| tests.question.test_EI_218_teacher_create_question_bank | test_EI_2841_category_present_returns_201 [11] | PASSED | 0.08s |
| tests.question.test_EI_218_teacher_create_question_bank | test_EI_2841_category_missing_returns_400 [12] | PASSED | 0.07s |
| tests.question.test_EI_218_teacher_create_question_bank | test_EI_2841_category_null_returns_400 [13] | PASSED | 0.07s |
| tests.question.test_EI_218_teacher_create_question_bank | test_EI_2841_category_empty_string_returns_400 [14] | PASSED | 0.07s |
| tests.question.test_EI_218_teacher_create_question_bank | test_EI_2841_category_whitespace_only_returns_400 [15] | PASSED | 0.07s |
| tests.question.test_EI_218_teacher_create_question_bank | test_EI_2844_difficulty_case_insensitive_returns_201[EASY] [16] | PASSED | 0.08s |
| tests.question.test_EI_218_teacher_create_question_bank | test_EI_2844_difficulty_case_insensitive_returns_201[easy] [17] | PASSED | 0.08s |
| tests.question.test_EI_218_teacher_create_question_bank | test_EI_2844_difficulty_case_insensitive_returns_201[Easy] [18] | PASSED | 0.07s |
| tests.question.test_EI_218_teacher_create_question_bank | test_EI_2844_difficulty_case_insensitive_returns_201[AVERAGE] [19] | PASSED | 0.08s |
| tests.question.test_EI_218_teacher_create_question_bank | test_EI_2844_difficulty_case_insensitive_returns_201[average] [20] | PASSED | 0.08s |
| tests.question.test_EI_218_teacher_create_question_bank | test_EI_2844_difficulty_case_insensitive_returns_201[Advance] [21] | PASSED | 0.08s |
| tests.question.test_EI_218_teacher_create_question_bank | test_EI_2844_difficulty_case_insensitive_returns_201[ADVANCE] [22] | PASSED | 0.08s |
| tests.question.test_EI_218_teacher_create_question_bank | test_EI_2844_difficulty_case_insensitive_returns_201[advance] [23] | PASSED | 0.08s |
| tests.question.test_EI_218_teacher_create_question_bank | test_EI_2844_difficulty_invalid_value_rejected [24] | PASSED | 0.07s |
student| Class | Test | Status | Duration |
|---|---|---|---|
| tests.student.test_EI_1125_unauthorized_access | test_EI_1125_no_auth_header_returns_unauthorized [1] | PASSED | 0.08s |
| tests.student.test_EI_1125_unauthorized_access | test_EI_1125_invalid_token_returns_401 [2] | PASSED | 0.07s |
| tests.student.test_EI_1125_unauthorized_access | test_EI_1125_teacher_token_on_student_route_returns_403 [3] | PASSED | 0.33s |
| tests.student.test_EI_1125_unauthorized_access | test_EI_1125_unauthorized_response_is_json [4] | PASSED | 0.07s |
teacher/account| Class | Test | Status | Duration |
|---|---|---|---|
| tests.teacher.account.test_EI_222_teacher_account | test_EI_222_account_find_returns_200 [1] | PASSED | 0.34s |
| tests.teacher.account.test_EI_222_teacher_account | test_EI_222_account_find_no_auth_returns_unauthorized [2] | PASSED | 0.07s |
| tests.teacher.account.test_EI_222_teacher_account | test_EI_222_account_update_invalid_uuid_returns_400 [3] | PASSED | 0.07s |
| tests.teacher.account.test_EI_222_teacher_account | test_EI_222_picture_add_no_auth_returns_unauthorized [4] | PASSED | 0.07s |
| tests.teacher.account.test_EI_222_teacher_account | test_EI_222_picture_delete_invalid_uuid_returns_400 [5] | PASSED | 0.07s |
| tests.teacher.account.test_EI_569_teacher_picture_delete | test_EI_569_picture_delete_no_auth_returns_unauthorized [6] | PASSED | 0.07s |
| tests.teacher.account.test_EI_569_teacher_picture_delete | test_EI_569_picture_delete_invalid_uuid_format_returns_400 [7] | PASSED | 0.30s |
| tests.teacher.account.test_EI_569_teacher_picture_delete | test_EI_569_picture_delete_other_teacher_returns_403 [8] | PASSED | 0.07s |
| tests.teacher.account.test_EI_569_teacher_picture_delete | test_EI_569_picture_delete_missing_teacher_id_falls_back_to_caller [9] | PASSED | 0.08s |
theme| Class | Test | Status | Duration |
|---|---|---|---|
| tests.theme.test_EI_217_teacher_apply_theme | test_auth0_login_response_contains_access_token [1] | PASSED | 0.24s |
| tests.theme.test_EI_217_teacher_apply_theme | test_EI_217_teacher_fetch_theme [2] | PASSED | 0.34s |
| tests.theme.test_EI_217_teacher_apply_theme | test_EI_217_teacher_apply_theme [3] | PASSED | 0.10s |
| tests.theme.test_EI_217_teacher_apply_theme | test_EI_217_teacher_update_theme [4] | PASSED | 0.08s |
| tests.theme.test_EI_217_teacher_apply_theme | test_EI_217_teacher_delete_theme [5] | PASSED | 0.08s |
| tests.theme.test_EI_217_teacher_apply_theme | test_EI_TC_971_positive_fetch_themes_with_valid_credentials_and_return_list [6] | PASSED | 0.08s |
| tests.theme.test_EI_217_teacher_apply_theme | test_EI_TC_972_negative_apply_theme_with_invalid_token_and_insufficient_permissions [7] | PASSED | 0.15s |
| tests.theme.test_EI_217_teacher_apply_theme | test_EI_1214_default_theme_fetch_has_color_mode [8] | PASSED | 0.08s |
| tests.theme.test_EI_217_teacher_apply_theme | test_EI_1214_default_theme_fetch_no_nonetype_leak [9] | PASSED | 0.08s |
| tests.theme.test_EI_217_teacher_apply_theme | test_EI_1214_default_theme_persistence_across_fetches [10] | PASSED | 0.10s |
| tests.theme.test_EI_217_teacher_apply_theme | test_EI_1214_default_theme_fetch_theme_details_not_null [11] | PASSED | 0.08s |
| tests.theme.test_EI_217_teacher_apply_theme | test_EI_1214_default_theme_fetch_renderable_attrs_present [12] | PASSED | 0.08s |
| tests.theme.test_EI_217_teacher_apply_theme | test_EI_1214_pos_step1_teacher_account_exists_via_auth0_login [13] | PASSED | 0.20s |
| tests.theme.test_EI_217_teacher_apply_theme | test_EI_1214_pos_step2_auth0_login_returns_access_token [14] | PASSED | 0.21s |
| tests.theme.test_EI_217_teacher_apply_theme | test_EI_1214_pos_step6_default_theme_persisted_returns_same_id_on_repeated_fetch [15] | PASSED | 0.10s |
| tests.theme.test_EI_217_teacher_apply_theme | test_EI_1214_neg_step2_auth0_login_with_invalid_credentials_returns_403 [16] | PASSED | 0.14s |
| tests.theme.test_EI_217_teacher_apply_theme | test_EI_1214_neg_step5_recovered_account_fetch_has_color_mode [17] | PASSED | 0.08s |