| Suite | Status | Total | Passed | Failed | Errors | Skipped | Duration |
|---|---|---|---|---|---|---|---|
| account | FAILED | 53 | 33 | 0 | 7 | 13 | 15.15s |
| assignment | FAILED | 69 | 37 | 0 | 28 | 4 | 24.18s |
| backup | PASSED | 2 | 2 | 0 | 0 | 0 | 1.51s |
| classes | FAILED | 30 | 15 | 0 | 15 | 0 | 8.05s |
| dashboard | FAILED | 18 | 8 | 0 | 10 | 0 | 3.16s |
| features | FAILED | 15 | 2 | 0 | 13 | 0 | 1.60s |
| health | PASSED | 2 | 2 | 0 | 0 | 0 | 1.13s |
| password | PASSED | 5 | 5 | 0 | 0 | 0 | 2.31s |
| perf | PASSED | 14 | 0 | 0 | 0 | 14 | 1.00s |
| question | FAILED | 31 | 4 | 0 | 25 | 2 | 2.32s |
| security | PASSED | 35 | 35 | 0 | 0 | 0 | 8.31s |
| theme | FAILED | 23 | 18 | 2 | 3 | 0 | 7.83s |
account| Class | Test | Status | Duration |
|---|---|---|---|
| tests.account.test_EI_222_teacher_account | test_EI_222_account_find_returns_200 [1] | PASSED | 1.06s |
| tests.account.test_EI_222_teacher_account | test_EI_222_account_find_no_auth_returns_unauthorized [2] | PASSED | 0.32s |
| tests.account.test_EI_222_teacher_account | test_EI_222_account_update_invalid_uuid_returns_400 [3] | PASSED | 0.33s |
| tests.account.test_EI_222_teacher_account | test_EI_222_picture_add_no_auth_returns_unauthorized [4] | PASSED | 0.29s |
| tests.account.test_EI_222_teacher_account | test_EI_222_picture_delete_invalid_uuid_returns_400 [5] | PASSED | 0.36s |
| tests.account.test_EI_569_teacher_picture_delete | test_EI_569_picture_delete_no_auth_returns_unauthorized [6] | PASSED | 0.31s |
| tests.account.test_EI_569_teacher_picture_delete | test_EI_569_picture_delete_invalid_uuid_format_returns_400 [7] | PASSED | 0.60s |
| tests.account.test_EI_569_teacher_picture_delete | test_EI_569_picture_delete_other_teacher_returns_403 [8] | PASSED | 0.33s |
| tests.account.test_EI_569_teacher_picture_delete | test_EI_569_picture_delete_missing_teacher_id_falls_back_to_caller [9] | PASSED | 0.27s |
| tests.account.test_auth_logout_refresh | test_logout_returns_200_with_message [10] | PASSED | 0.55s |
| tests.account.test_auth_logout_refresh | test_logout_without_auth_still_returns_200 [11] | PASSED | 0.22s |
| tests.account.test_auth_logout_refresh | test_refresh_without_refresh_cookie_returns_401 [12] | PASSED | 0.23s |
| tests.account.test_student_account_reads | test_account_fetch_returns_200_with_data [13] failed on setup with "AssertionError: Expected status 200, got 403. Body: {"error":"invalid_grant","error_description":"Wrong email or password."}" |
ERROR | 0.25s |
| tests.account.test_student_account_reads | test_theme_fetch_returns_200_with_theme_details [14] failed on setup with "AssertionError: Expected status 200, got 403. Body: {"error":"invalid_grant","error_description":"Wrong email or password."}" |
ERROR | 0.00s |
| tests.account.test_student_account_reads | test_teacher_find_returns_200_with_paged_results [15] failed on setup with "AssertionError: Expected status 200, got 403. Body: {"error":"invalid_grant","error_description":"Wrong email or password."}" |
ERROR | 0.00s |
| tests.account.test_student_account_reads | test_account_fetch_no_auth_returns_401 [16] | PASSED | 0.23s |
| tests.account.test_student_account_reads | test_theme_fetch_no_auth_returns_401 [17] | PASSED | 0.21s |
| tests.account.test_student_account_reads | test_teacher_find_no_auth_returns_401 [18] | PASSED | 0.28s |
| tests.account.test_student_account_update | test_account_update_sets_contact_person [19] failed on setup with "AssertionError: Expected status 200, got 403. Body: {"error":"invalid_grant","error_description":"Wrong email or password."}" |
ERROR | 0.27s |
| tests.account.test_student_account_update | test_account_update_non_numeric_phone_returns_400 [20] failed on setup with "AssertionError: Expected status 200, got 403. Body: {"error":"invalid_grant","error_description":"Wrong email or password."}" |
ERROR | 0.00s |
| tests.account.test_student_password_change | test_wrong_current_password_returns_400 [21] Student ROPG login failed: Wrong email or password. |
SKIPPED | 0.25s |
| tests.account.test_student_password_change | test_no_token_returns_401 [22] | PASSED | 0.21s |
| tests.account.test_student_password_change | test_below_min_length_new_password_returns_422 [23] 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 [24] Student ROPG login failed: Wrong email or password. |
SKIPPED | 0.00s |
| tests.account.test_student_picture_lifecycle | test_picture_add_update_delete_lifecycle [25] failed on setup with "AssertionError: Expected status 200, got 403. Body: {"error":"invalid_grant","error_description":"Wrong email or password."}" |
ERROR | 0.00s |
| tests.account.test_student_picture_lifecycle | test_picture_add_unsupported_type_returns_415 [26] failed on setup with "AssertionError: Expected status 200, got 403. Body: {"error":"invalid_grant","error_description":"Wrong email or password."}" |
ERROR | 0.00s |
| tests.account.test_teacher_auth0_login | test_auth0_login_returns_200 [27] | PASSED | 0.40s |
| tests.account.test_teacher_auth0_login | test_auth0_login_response_contains_access_token [28] | PASSED | 0.28s |
| tests.account.test_teacher_auth0_login | test_auth0_login_token_type_is_bearer [29] | PASSED | 0.29s |
| tests.account.test_teacher_auth0_login | test_auth0_login_access_token_is_jwt_format [30] | PASSED | 0.31s |
| tests.account.test_teacher_auth0_login | test_auth0_login_response_contains_expires_in [31] | PASSED | 0.32s |
| tests.account.test_teacher_auth0_login | test_auth0_login_response_schema [32] | PASSED | 0.34s |
| tests.account.test_teacher_login | test_login_returns_200 [33] | PASSED | 0.67s |
| tests.account.test_teacher_login | test_login_response_contains_access_token [34] | PASSED | 0.47s |
| tests.account.test_teacher_login | test_login_token_carries_teacher_role [35] | PASSED | 0.42s |
| tests.account.test_teacher_login | test_login_access_token_is_jwt_format [36] | PASSED | 0.43s |
| tests.account.test_teacher_login | test_login_response_schema [37] | PASSED | 0.42s |
| tests.account.test_teacher_login | test_login_with_wrong_password_returns_401 [38] | PASSED | 0.28s |
| tests.account.test_teacher_login | test_login_with_wrong_email_returns_401 [39] | PASSED | 0.17s |
| tests.account.test_teacher_login | test_login_with_empty_email_returns_400 [40] | PASSED | 0.07s |
| tests.account.test_teacher_login | test_login_with_empty_password_returns_401 [41] | PASSED | 0.18s |
| tests.account.test_teacher_picture_lifecycle | test_picture_add_update_delete_lifecycle [42] | PASSED | 1.11s |
| tests.account.test_teacher_picture_lifecycle | test_picture_add_unsupported_type_returns_415 [43] | PASSED | 0.26s |
| tests.account.test_teacher_register | test_register_returns_201 [44] Teacher self-registration endpoint (POST /v1/teacher/account/register) was removed in the Auth0 migration — accounts are provisioned via staff/admin invitation + Auth0. Nothing to test here. |
SKIPPED | 0.22s |
| tests.account.test_teacher_register | test_register_response_detail_message [45] Teacher self-registration endpoint (POST /v1/teacher/account/register) was removed in the Auth0 migration — accounts are provisioned via staff/admin invitation + Auth0. Nothing to test here. |
SKIPPED | 0.00s |
| tests.account.test_teacher_register | test_register_response_contains_user_account [46] Teacher self-registration endpoint (POST /v1/teacher/account/register) was removed in the Auth0 migration — accounts are provisioned via staff/admin invitation + Auth0. Nothing to test here. |
SKIPPED | 0.00s |
| tests.account.test_teacher_register | test_register_response_schema [47] Teacher self-registration endpoint (POST /v1/teacher/account/register) was removed in the Auth0 migration — accounts are provisioned via staff/admin invitation + Auth0. Nothing to test here. |
SKIPPED | 0.00s |
| tests.account.test_teacher_register | test_register_user_account_fields [48] Teacher self-registration endpoint (POST /v1/teacher/account/register) was removed in the Auth0 migration — accounts are provisioned via staff/admin invitation + Auth0. Nothing to test here. |
SKIPPED | 0.00s |
| tests.account.test_teacher_register | test_register_user_status_is_pending_activation [49] Teacher self-registration endpoint (POST /v1/teacher/account/register) was removed in the Auth0 migration — accounts are provisioned via staff/admin invitation + Auth0. Nothing to test here. |
SKIPPED | 0.00s |
| tests.account.test_teacher_register | test_register_user_id_is_present [50] Teacher self-registration endpoint (POST /v1/teacher/account/register) was removed in the Auth0 migration — accounts are provisioned via staff/admin invitation + Auth0. Nothing to test here. |
SKIPPED | 0.00s |
| tests.account.test_teacher_register | test_register_user_nullable_fields_are_present [51] Teacher self-registration endpoint (POST /v1/teacher/account/register) was removed in the Auth0 migration — accounts are provisioned via staff/admin invitation + Auth0. Nothing to test here. |
SKIPPED | 0.00s |
| tests.account.test_teacher_register | test_register_user_usage_counters_default_to_zero [52] Teacher self-registration endpoint (POST /v1/teacher/account/register) was removed in the Auth0 migration — accounts are provisioned via staff/admin invitation + Auth0. Nothing to test here. |
SKIPPED | 0.00s |
| tests.account.test_teacher_register | test_register_user_created_at_is_populated [53] Teacher self-registration endpoint (POST /v1/teacher/account/register) was removed in the Auth0 migration — accounts are provisioned via staff/admin invitation + Auth0. Nothing to test here. |
SKIPPED | 0.00s |
assignment| Class | Test | Status | Duration |
|---|---|---|---|
| tests.assignment.test_EI_1114_student_assignments_fetch_all_class_code | test_EI_TC_4481_positive_valid_class_code_returns_assignments [1] failed on setup with "AssertionError: Expected status 200, got 403. Body: {"error":"invalid_grant","error_description":"Wrong email or password."}" |
ERROR | 0.25s |
| tests.assignment.test_EI_1114_student_assignments_fetch_all_class_code | test_EI_TC_4480_negative_empty_class_code_rejected [2] failed on setup with "AssertionError: Expected status 200, got 403. Body: {"error":"invalid_grant","error_description":"Wrong email or password."}" |
ERROR | 0.00s |
| tests.assignment.test_EI_1121_students_assignment_questions_fetch | test_EI_TC_3729_positive_fetch_within_time_limit_ignores_client_clock [3] failed on setup with "AssertionError: Expected status 200, got 403. Body: {"error":"invalid_grant","error_description":"Wrong email or password."}" |
ERROR | 0.49s |
| tests.assignment.test_EI_1121_students_assignment_questions_fetch | test_EI_TC_3730_positive_near_expiry_remaining_time_decrements_server_side [4] failed on setup with "AssertionError: Expected status 200, got 403. Body: {"error":"invalid_grant","error_description":"Wrong email or password."}" |
ERROR | 0.00s |
| tests.assignment.test_EI_1121_students_assignment_questions_fetch | test_EI_TC_3731_negative_tampered_request_time_headers_do_not_extend_timer [5] failed on setup with "AssertionError: Expected status 200, got 403. Body: {"error":"invalid_grant","error_description":"Wrong email or password."}" |
ERROR | 0.00s |
| tests.assignment.test_EI_1177_mixed_actor_assignment_questions | test_EI_TC_3634_positive_student_can_answer_all_mixed_questions [6] failed on setup with "AssertionError: Expected status 200, got 403. Body: {"error":"invalid_grant","error_description":"Wrong email or password."}" |
ERROR | 0.46s |
| tests.assignment.test_EI_1177_mixed_actor_assignment_questions | test_EI_TC_3635_negative_staff_question_not_silently_hidden [7] failed on setup with "AssertionError: Expected status 200, got 403. Body: {"error":"invalid_grant","error_description":"Wrong email or password."}" |
ERROR | 0.00s |
| tests.assignment.test_EI_1177_mixed_actor_assignment_questions | test_round2_free_response_question_loads_without_500 [8] failed on setup with "AssertionError: Expected status 200, got 403. Body: {"error":"invalid_grant","error_description":"Wrong email or password."}" |
ERROR | 0.00s |
| tests.assignment.test_EI_1210_late_submission_approval | test_EI_TC_4414_step_1_teacher_creates_closed_assignment_with_late_flag [9] failed on setup with "AssertionError: Expected status 200, got 403. Body: {"error":"invalid_grant","error_description":"Wrong email or password."}" |
ERROR | 0.46s |
| tests.assignment.test_EI_1210_late_submission_approval | test_EI_TC_4414_step_2_student_late_submit_returns_pending [10] failed on setup with "AssertionError: Expected status 200, got 403. Body: {"error":"invalid_grant","error_description":"Wrong email or password."}" |
ERROR | 0.00s |
| tests.assignment.test_EI_1210_late_submission_approval | test_EI_TC_4414_step_3_teacher_fetches_pending_late_submissions [11] failed on setup with "AssertionError: Expected status 200, got 403. Body: {"error":"invalid_grant","error_description":"Wrong email or password."}" |
ERROR | 0.00s |
| tests.assignment.test_EI_1210_late_submission_approval | test_EI_TC_4414_step_4_teacher_approves_late_submission [12] failed on setup with "AssertionError: Expected status 200, got 403. Body: {"error":"invalid_grant","error_description":"Wrong email or password."}" |
ERROR | 0.00s |
| tests.assignment.test_EI_1210_late_submission_approval | test_EI_TC_4414_step_5_teacher_rejects_late_submission [13] failed on setup with "AssertionError: Expected status 200, got 403. Body: {"error":"invalid_grant","error_description":"Wrong email or password."}" |
ERROR | 0.00s |
| tests.assignment.test_EI_214_teacher_create_assignment | test_EI_214_teacher_create_assignment [14] | PASSED | 1.45s |
| tests.assignment.test_EI_214_teacher_create_assignment | test_assignment_timestamps_chronological [15] | PASSED | 0.44s |
| tests.assignment.test_EI_214_teacher_create_assignment | test_assignment_ids_unique [16] | PASSED | 0.44s |
| tests.assignment.test_EI_214_teacher_create_assignment | test_assignment_required_fields_not_empty [17] | PASSED | 0.45s |
| tests.assignment.test_EI_214_teacher_create_assignment | test_EI_TC_950_create_assignment_for_class_success [18] | PASSED | 0.45s |
| tests.assignment.test_EI_214_teacher_create_assignment | test_EI_TC_951_create_assignment_missing_required_fields_returns_error [19] | PASSED | 0.40s |
| tests.assignment.test_EI_214_teacher_create_assignment | test_EI_TC_953_fetch_assignments_by_class_code_staff_view [20] | PASSED | 0.68s |
| tests.assignment.test_EI_214_teacher_create_assignment | test_EI_TC_954_update_assignment_unauthorized_or_invalid_owner[unauthorized] [21] | PASSED | 0.67s |
| tests.assignment.test_EI_214_teacher_create_assignment | test_EI_TC_954_update_assignment_unauthorized_or_invalid_owner[different_owner] [22] Teacher register endpoint is not available in this environment. |
SKIPPED | 0.66s |
| tests.assignment.test_EI_214_teacher_create_assignment | test_EI_TC_956_analytics_summary_fetch_for_assignment [23] | PASSED | 0.76s |
| tests.assignment.test_EI_214_teacher_create_assignment | test_EI_TC_959_create_assignment_missing_required_fields_variant [24] | PASSED | 0.41s |
| tests.assignment.test_EI_214_teacher_create_assignment | test_EI_TC_961_unauthorized_user_cannot_create_assignment [25] | PASSED | 0.36s |
| tests.assignment.test_EI_214_teacher_create_assignment | test_EI_TC_962_update_non_existent_assignment [26] | PASSED | 0.22s |
| tests.assignment.test_EI_214_teacher_create_assignment | test_EI_1170_assigned_class_missing_returns_400 [27] | PASSED | 0.40s |
| tests.assignment.test_EI_214_teacher_create_assignment | test_EI_1170_assigned_class_empty_list_returns_400 [28] | PASSED | 0.40s |
| tests.assignment.test_EI_214_teacher_create_assignment | test_EI_1170_assigned_class_non_empty_returns_201 [29] | PASSED | 0.66s |
| tests.assignment.test_EI_2365_analytics | test_EI_2365_analytics_summary_no_auth_returns_unauthorized [30] | PASSED | 0.21s |
| tests.assignment.test_EI_2365_analytics | test_EI_2365_analytics_summary_invalid_uuid_returns_400 [31] | PASSED | 0.66s |
| tests.assignment.test_EI_2365_analytics | test_EI_2365_analytics_summary_nonexistent_class_returns_404 [32] | PASSED | 0.35s |
| tests.assignment.test_EI_2365_analytics | test_EI_2365_analytics_summary_no_data_leakage [33] | PASSED | 0.33s |
| tests.assignment.test_EI_2365_analytics | test_EI_2365_item_analysis_invalid_uuid_returns_400 [34] | PASSED | 0.43s |
| tests.assignment.test_EI_3205_item_analysis_counts_submissions | test_EI_TC_001_positive_item_analysis_counts_correct_submission [35] failed on setup with "AssertionError: Expected status 200, got 403. Body: {"error":"invalid_grant","error_description":"Wrong email or password."}" |
ERROR | 0.46s |
| tests.assignment.test_EI_3205_item_analysis_counts_submissions | test_EI_TC_002_positive_item_analysis_reports_one_submission [36] failed on setup with "AssertionError: Expected status 200, got 403. Body: {"error":"invalid_grant","error_description":"Wrong email or password."}" |
ERROR | 0.00s |
| tests.assignment.test_EI_3205_item_analysis_counts_submissions | test_EI_TC_003_positive_item_analysis_option_distribution_populated [37] failed on setup with "AssertionError: Expected status 200, got 403. Body: {"error":"invalid_grant","error_description":"Wrong email or password."}" |
ERROR | 0.00s |
| tests.assignment.test_EI_3279_analytics_performance | test_EI_TC_3921_analytics_large_dataset_within_budget_and_accurate [38] Mongo env (DB_HOST/DB_USER/DB_PASSWORD/DB_NAME) not set — perf seeding skipped. |
SKIPPED | 0.29s |
| tests.assignment.test_EI_3279_analytics_performance | test_EI_TC_3922_nonexistent_assignment_returns_404 [39] | PASSED | 0.27s |
| tests.assignment.test_EI_3279_analytics_performance | test_EI_TC_3922_invalid_uuid_format_returns_400 [40] | PASSED | 0.25s |
| tests.assignment.test_EI_3279_analytics_performance | test_EI_TC_3922_zero_submissions_returns_200_empty [41] Mongo env not set — perf seeding skipped. |
SKIPPED | 0.00s |
| tests.assignment.test_EI_3279_analytics_performance | test_EI_TC_3922_timeout_504_not_applicable [42] No timeout mechanism exists in show_analytics — the ticket's 504 step is N/A (reconcile: implement asyncio.timeout->504 or drop the step). |
SKIPPED | 0.00s |
| tests.assignment.test_EI_3286_show_analytics | test_EI_3286_show_analytics_no_auth_returns_unauthorized [43] | PASSED | 0.21s |
| tests.assignment.test_EI_3286_show_analytics | test_EI_3286_show_analytics_malformed_uuid_returns_400 [44] | PASSED | 0.58s |
| tests.assignment.test_EI_3286_show_analytics | test_EI_3286_show_analytics_short_uuid_returns_400 [45] | PASSED | 0.25s |
| tests.assignment.test_EI_3286_show_analytics | test_EI_3286_show_analytics_long_uuid_returns_400 [46] | PASSED | 0.26s |
| tests.assignment.test_EI_3286_show_analytics | test_EI_3286_show_analytics_nonexistent_uuid_returns_404 [47] | PASSED | 0.26s |
| tests.assignment.test_EI_3286_show_analytics | test_EI_3286_show_analytics_special_chars_returns_400 [48] | PASSED | 0.25s |
| tests.assignment.test_assignments_common_view | test_common_view_returns_assignment [49] failed on setup with "AssertionError: Expected status 200, got 403. Body: {"error":"invalid_grant","error_description":"Wrong email or password."}" |
ERROR | 0.49s |
| tests.assignment.test_assignments_common_view | test_common_view_no_auth_returns_401 [50] failed on setup with "AssertionError: Expected status 200, got 403. Body: {"error":"invalid_grant","error_description":"Wrong email or password."}" |
ERROR | 0.00s |
| tests.assignment.test_take_assignment_incorrect_scoring | test_submit_incorrect_answer_scores_zero [51] failed on setup with "AssertionError: Expected status 200, got 403. Body: {"error":"invalid_grant","error_description":"Wrong email or password."}" |
ERROR | 0.00s |
| tests.assignment.test_take_assignment_student_flow | test_all_fetch_lists_the_seeded_assignment [52] failed on setup with "AssertionError: Expected status 200, got 403. Body: {"error":"invalid_grant","error_description":"Wrong email or password."}" |
ERROR | 0.00s |
| tests.assignment.test_take_assignment_student_flow | test_details_fetch_returns_the_assignment [53] failed on setup with "AssertionError: Expected status 200, got 403. Body: {"error":"invalid_grant","error_description":"Wrong email or password."}" |
ERROR | 0.00s |
| tests.assignment.test_take_assignment_student_flow | test_questions_fetch_returns_the_in_progress_assignment [54] failed on setup with "AssertionError: Expected status 200, got 403. Body: {"error":"invalid_grant","error_description":"Wrong email or password."}" |
ERROR | 0.00s |
| tests.assignment.test_take_assignment_student_flow | test_answers_save_persists_a_draft_answer [55] failed on setup with "AssertionError: Expected status 200, got 403. Body: {"error":"invalid_grant","error_description":"Wrong email or password."}" |
ERROR | 0.00s |
| tests.assignment.test_take_assignment_student_flow | test_submission_fetch_returns_summary_for_the_started_assignment [56] failed on setup with "AssertionError: Expected status 200, got 403. Body: {"error":"invalid_grant","error_description":"Wrong email or password."}" |
ERROR | 0.00s |
| tests.assignment.test_take_assignment_student_flow | test_questions_fetch_no_auth_returns_401 [57] failed on setup with "AssertionError: Expected status 200, got 403. Body: {"error":"invalid_grant","error_description":"Wrong email or password."}" |
ERROR | 0.00s |
| tests.assignment.test_take_assignment_submit_flow | test_submit_correct_answer_scores_full_and_records_submission [58] failed on setup with "AssertionError: Expected status 200, got 403. Body: {"error":"invalid_grant","error_description":"Wrong email or password."}" |
ERROR | 0.00s |
| tests.assignment.test_take_assignment_submit_flow | test_submit_no_auth_returns_401 [59] failed on setup with "AssertionError: Expected status 200, got 403. Body: {"error":"invalid_grant","error_description":"Wrong email or password."}" |
ERROR | 0.00s |
| tests.assignment.test_teacher_assignment_view_update_fetch_by_class | test_fetch_by_class_returns_200_with_assignments [60] | PASSED | 1.23s |
| tests.assignment.test_teacher_assignment_view_update_fetch_by_class | test_fetch_by_class_no_auth_returns_401 [61] | PASSED | 0.81s |
| tests.assignment.test_teacher_assignment_view_update_fetch_by_class | test_view_returns_200_with_assignment [62] | PASSED | 0.99s |
| tests.assignment.test_teacher_assignment_view_update_fetch_by_class | test_view_no_auth_returns_401 [63] | PASSED | 0.84s |
| tests.assignment.test_teacher_assignment_view_update_fetch_by_class | test_update_no_auth_returns_401 [64] | PASSED | 0.81s |
| tests.assignment.test_teacher_grade_comment_crud | test_grade_comment_add_update_delete [65] failed on setup with "AssertionError: Expected status 200, got 403. Body: {"error":"invalid_grant","error_description":"Wrong email or password."}" |
ERROR | 0.00s |
| tests.assignment.test_teacher_staff_assignments_reads | test_staff_assignments_all_returns_200_with_list [66] | PASSED | 0.98s |
| tests.assignment.test_teacher_staff_assignments_reads | test_staff_assignment_view_returns_200 [67] | PASSED | 0.75s |
| tests.assignment.test_teacher_staff_assignments_reads | test_staff_assignments_all_no_auth_returns_401 [68] | PASSED | 0.22s |
| tests.assignment.test_teacher_staff_assignments_reads | test_staff_assignment_view_no_auth_returns_401 [69] | PASSED | 0.22s |
backup| Class | Test | Status | Duration |
|---|---|---|---|
| tests.backup.test_teacher_students_deprecated | test_student_create_is_gone [1] | PASSED | 0.55s |
| tests.backup.test_teacher_students_deprecated | test_student_bulk_create_is_gone [2] | PASSED | 0.26s |
classes| Class | Test | Status | Duration |
|---|---|---|---|
| tests.classes.test_EI_2360_classes_with_students | test_EI_2360_classes_list_returns_200 [1] | PASSED | 0.59s |
| tests.classes.test_EI_2360_classes_with_students | test_EI_2360_classes_list_envelope_has_classes_key [2] | PASSED | 0.30s |
| tests.classes.test_EI_2360_classes_with_students | test_EI_2360_classes_list_no_auth_returns_unauthorized [3] | PASSED | 0.21s |
| tests.classes.test_EI_2360_classes_with_students | test_EI_2360_invalid_path_returns_404 [4] | PASSED | 0.22s |
| tests.classes.test_EI_3274_update_datetime | test_EI_3274_update_no_auth_returns_unauthorized [5] | PASSED | 0.22s |
| tests.classes.test_EI_3274_update_datetime | test_EI_3274_update_invalid_uuid_returns_400 [6] | PASSED | 0.57s |
| tests.classes.test_EI_3274_update_datetime | test_EI_3274_update_nonexistent_uuid_returns_4xx [7] | PASSED | 0.25s |
| tests.classes.test_EI_3274_update_datetime | test_EI_3274_update_error_does_not_leak_uuid [8] | PASSED | 0.26s |
| tests.classes.test_student_class_reads | test_all_fetch_returns_enrolled_classes [9] failed on setup with "AssertionError: Expected status 200, got 403. Body: {"error":"invalid_grant","error_description":"Wrong email or password."}" |
ERROR | 0.51s |
| tests.classes.test_student_class_reads | test_find_returns_the_enrolled_class [10] failed on setup with "AssertionError: Expected status 200, got 403. Body: {"error":"invalid_grant","error_description":"Wrong email or password."}" |
ERROR | 0.00s |
| tests.classes.test_student_class_reads | test_messages_returns_message_board [11] failed on setup with "AssertionError: Expected status 200, got 403. Body: {"error":"invalid_grant","error_description":"Wrong email or password."}" |
ERROR | 0.00s |
| tests.classes.test_student_enrollment_lifecycle | test_join_then_cancel [12] failed on setup with "AssertionError: Expected status 200, got 403. Body: {"error":"invalid_grant","error_description":"Wrong email or password."}" |
ERROR | 0.00s |
| tests.classes.test_student_enrollment_lifecycle | test_join_accept_then_leave [13] failed on setup with "AssertionError: Expected status 200, got 403. Body: {"error":"invalid_grant","error_description":"Wrong email or password."}" |
ERROR | 0.00s |
| tests.classes.test_student_enrollment_lifecycle | test_leave_without_membership_returns_400 [14] failed on setup with "AssertionError: Expected status 200, got 403. Body: {"error":"invalid_grant","error_description":"Wrong email or password."}" |
ERROR | 0.00s |
| tests.classes.test_teacher_class_gradebook_roster | test_gradebook_returns_200_with_class_and_students [15] | PASSED | 0.65s |
| tests.classes.test_teacher_class_gradebook_roster | test_roster_returns_200_with_class_roster_list [16] | PASSED | 0.38s |
| tests.classes.test_teacher_class_gradebook_roster | test_gradebook_no_auth_returns_401 [17] | PASSED | 0.51s |
| tests.classes.test_teacher_class_gradebook_roster | test_roster_no_auth_returns_401 [18] | PASSED | 0.48s |
| tests.classes.test_teacher_class_message_lifecycle | test_message_create_then_delete [19] | PASSED | 0.92s |
| tests.classes.test_teacher_class_message_lifecycle | test_message_create_no_auth_returns_401 [20] | PASSED | 0.48s |
| tests.classes.test_teacher_class_message_lifecycle | test_message_delete_no_auth_returns_401 [21] | PASSED | 0.48s |
| tests.classes.test_teacher_class_messages_find_assignments | test_messages_returns_200_with_messages [22] failed on setup with "AssertionError: Expected status 200, got 429. Body: {"error":"invalid_grant","error_description":"Too many logins with the same username or email."}" |
ERROR | 0.14s |
| tests.classes.test_teacher_class_messages_find_assignments | test_find_returns_200_with_class [23] failed on setup with "AssertionError: Expected status 200, got 429. Body: {"error":"invalid_grant","error_description":"Too many logins with the same username or email."}" |
ERROR | 0.00s |
| tests.classes.test_teacher_class_messages_find_assignments | test_class_assignments_returns_200_with_assignments [24] failed on setup with "AssertionError: Expected status 200, got 429. Body: {"error":"invalid_grant","error_description":"Too many logins with the same username or email."}" |
ERROR | 0.00s |
| tests.classes.test_teacher_class_messages_find_assignments | test_messages_no_auth_returns_401 [25] failed on setup with "AssertionError: Expected status 200, got 429. Body: {"error":"invalid_grant","error_description":"Too many logins with the same username or email."}" |
ERROR | 0.00s |
| tests.classes.test_teacher_class_messages_find_assignments | test_find_no_auth_returns_401 [26] failed on setup with "AssertionError: Expected status 200, got 429. Body: {"error":"invalid_grant","error_description":"Too many logins with the same username or email."}" |
ERROR | 0.00s |
| tests.classes.test_teacher_class_messages_find_assignments | test_class_assignments_no_auth_returns_401 [27] failed on setup with "AssertionError: Expected status 200, got 429. Body: {"error":"invalid_grant","error_description":"Too many logins with the same username or email."}" |
ERROR | 0.00s |
| tests.classes.test_teacher_membership_mutations | test_class_soft_delete_then_restore [28] failed on setup with "AssertionError: Expected status 200, got 403. Body: {"error":"invalid_grant","error_description":"Wrong email or password."}" |
ERROR | 0.00s |
| tests.classes.test_teacher_membership_mutations | test_remove_enrolled_student [29] failed on setup with "AssertionError: Expected status 200, got 403. Body: {"error":"invalid_grant","error_description":"Wrong email or password."}" |
ERROR | 0.00s |
| tests.classes.test_teacher_membership_mutations | test_approve_student_leave [30] failed on setup with "AssertionError: Expected status 200, got 403. Body: {"error":"invalid_grant","error_description":"Wrong email or password."}" |
ERROR | 0.00s |
dashboard| Class | Test | Status | Duration |
|---|---|---|---|
| tests.dashboard.test_EI_1125_unauthorized_access | test_EI_1125_no_auth_header_returns_unauthorized [1] | PASSED | 0.22s |
| tests.dashboard.test_EI_1125_unauthorized_access | test_EI_1125_invalid_token_returns_401 [2] | PASSED | 0.22s |
| tests.dashboard.test_EI_1125_unauthorized_access | test_EI_1125_teacher_token_on_student_route_returns_403 [3] | PASSED | 0.54s |
| tests.dashboard.test_EI_1125_unauthorized_access | test_EI_1125_unauthorized_response_is_json [4] | PASSED | 0.22s |
| tests.dashboard.test_student_dashboard_statistics | test_gpa_returns_200_with_overall_average [5] failed on setup with "AssertionError: Expected status 200, got 429. Body: {"error":"too_many_attempts","error_description":"Your account has been blocked after multiple consecutive login attempts. We've sent you a notification via your preferred contact method with instructions on how to unblock it. |
ERROR | 0.15s |
| tests.dashboard.test_student_dashboard_statistics | test_grade_distribution_returns_200_with_buckets [6] failed on setup with "AssertionError: Expected status 200, got 429. Body: {"error":"too_many_attempts","error_description":"Your account has been blocked after multiple consecutive login attempts. We've sent you a notification via your preferred contact method with instructions on how to unblock it. |
ERROR | 0.00s |
| tests.dashboard.test_student_dashboard_statistics | test_upcoming_assignments_returns_200_with_upcoming_list [7] failed on setup with "AssertionError: Expected status 200, got 429. Body: {"error":"too_many_attempts","error_description":"Your account has been blocked after multiple consecutive login attempts. We've sent you a notification via your preferred contact method with instructions on how to unblock it. |
ERROR | 0.00s |
| tests.dashboard.test_student_dashboard_statistics | test_assignments_statistics_returns_200_with_total [8] failed on setup with "AssertionError: Expected status 200, got 429. Body: {"error":"too_many_attempts","error_description":"Your account has been blocked after multiple consecutive login attempts. We've sent you a notification via your preferred contact method with instructions on how to unblock it. |
ERROR | 0.00s |
| tests.dashboard.test_student_dashboard_statistics | test_submissions_statistics_returns_200_with_total [9] failed on setup with "AssertionError: Expected status 200, got 429. Body: {"error":"too_many_attempts","error_description":"Your account has been blocked after multiple consecutive login attempts. We've sent you a notification via your preferred contact method with instructions on how to unblock it. |
ERROR | 0.00s |
| tests.dashboard.test_student_dashboard_statistics | test_achievements_returns_200_with_counts [10] failed on setup with "AssertionError: Expected status 200, got 429. Body: {"error":"too_many_attempts","error_description":"Your account has been blocked after multiple consecutive login attempts. We've sent you a notification via your preferred contact method with instructions on how to unblock it. |
ERROR | 0.00s |
| tests.dashboard.test_student_dashboard_statistics | test_gpa_no_auth_returns_401 [11] | PASSED | 0.22s |
| tests.dashboard.test_student_dashboard_statistics | test_achievements_no_auth_returns_401 [12] | PASSED | 0.22s |
| tests.dashboard.test_teacher_dashboard_statistics | test_class_statistics_returns_total_and_details [13] failed on setup with "AssertionError: Expected status 200, got 429. Body: {"error":"invalid_grant","error_description":"Too many logins with the same username or email."}" |
ERROR | 0.15s |
| tests.dashboard.test_teacher_dashboard_statistics | test_students_statistics_returns_total_and_details [14] failed on setup with "AssertionError: Expected status 200, got 429. Body: {"error":"invalid_grant","error_description":"Too many logins with the same username or email."}" |
ERROR | 0.00s |
| tests.dashboard.test_teacher_dashboard_statistics | test_assignments_statistics_returns_total_and_details [15] failed on setup with "AssertionError: Expected status 200, got 429. Body: {"error":"invalid_grant","error_description":"Too many logins with the same username or email."}" |
ERROR | 0.00s |
| tests.dashboard.test_teacher_dashboard_statistics | test_submissions_statistics_returns_data_and_details [16] failed on setup with "AssertionError: Expected status 200, got 429. Body: {"error":"invalid_grant","error_description":"Too many logins with the same username or email."}" |
ERROR | 0.00s |
| tests.dashboard.test_teacher_dashboard_statistics | test_class_statistics_no_auth_returns_401 [17] | PASSED | 0.22s |
| tests.dashboard.test_teacher_dashboard_statistics | test_submissions_statistics_no_auth_returns_401 [18] | PASSED | 0.22s |
features| Class | Test | Status | Duration |
|---|---|---|---|
| tests.features.test_student_features | test_effective_returns_200_with_features [1] failed on setup with "AssertionError: Expected status 200, got 429. Body: {"error":"too_many_attempts","error_description":"Your account has been blocked after multiple consecutive login attempts. We've sent you a notification via your preferred contact method with instructions on how to unblock it. |
ERROR | 0.24s |
| tests.features.test_student_features | test_organization_returns_200_with_plan [2] failed on setup with "AssertionError: Expected status 200, got 429. Body: {"error":"too_many_attempts","error_description":"Your account has been blocked after multiple consecutive login attempts. We've sent you a notification via your preferred contact method with instructions on how to unblock it. |
ERROR | 0.00s |
| tests.features.test_student_features | test_school_returns_200_with_school_id [3] failed on setup with "AssertionError: Expected status 200, got 429. Body: {"error":"too_many_attempts","error_description":"Your account has been blocked after multiple consecutive login attempts. We've sent you a notification via your preferred contact method with instructions on how to unblock it. |
ERROR | 0.00s |
| tests.features.test_student_features | test_district_plan_returns_200_with_plan [4] failed on setup with "AssertionError: Expected status 200, got 429. Body: {"error":"too_many_attempts","error_description":"Your account has been blocked after multiple consecutive login attempts. We've sent you a notification via your preferred contact method with instructions on how to unblock it. |
ERROR | 0.00s |
| tests.features.test_student_features | test_feature_status_returns_200_with_enabled [5] failed on setup with "AssertionError: Expected status 200, got 429. Body: {"error":"too_many_attempts","error_description":"Your account has been blocked after multiple consecutive login attempts. We've sent you a notification via your preferred contact method with instructions on how to unblock it. |
ERROR | 0.00s |
| tests.features.test_student_features | test_effective_no_auth_returns_401 [6] | PASSED | 0.22s |
| tests.features.test_student_features | test_feature_status_no_auth_returns_401 [7] failed on setup with "AssertionError: Expected status 200, got 429. Body: {"error":"too_many_attempts","error_description":"Your account has been blocked after multiple consecutive login attempts. We've sent you a notification via your preferred contact method with instructions on how to unblock it. |
ERROR | 0.00s |
| tests.features.test_teacher_features | test_effective_returns_200_with_features [8] failed on setup with "AssertionError: Expected status 200, got 429. Body: {"error":"invalid_grant","error_description":"Too many logins with the same username or email."}" |
ERROR | 0.12s |
| tests.features.test_teacher_features | test_organization_returns_200_with_plan [9] failed on setup with "AssertionError: Expected status 200, got 429. Body: {"error":"invalid_grant","error_description":"Too many logins with the same username or email."}" |
ERROR | 0.00s |
| tests.features.test_teacher_features | test_school_returns_200_with_school_id [10] failed on setup with "AssertionError: Expected status 200, got 429. Body: {"error":"invalid_grant","error_description":"Too many logins with the same username or email."}" |
ERROR | 0.00s |
| tests.features.test_teacher_features | test_district_plan_returns_200_with_plan [11] failed on setup with "AssertionError: Expected status 200, got 429. Body: {"error":"invalid_grant","error_description":"Too many logins with the same username or email."}" |
ERROR | 0.00s |
| tests.features.test_teacher_features | test_assignments_quota_returns_200_with_can_create [12] failed on setup with "AssertionError: Expected status 200, got 429. Body: {"error":"invalid_grant","error_description":"Too many logins with the same username or email."}" |
ERROR | 0.00s |
| tests.features.test_teacher_features | test_feature_status_returns_200_with_enabled [13] failed on setup with "AssertionError: Expected status 200, got 429. Body: {"error":"invalid_grant","error_description":"Too many logins with the same username or email."}" |
ERROR | 0.00s |
| tests.features.test_teacher_features | test_effective_no_auth_returns_401 [14] | PASSED | 0.21s |
| tests.features.test_teacher_features | test_feature_status_no_auth_returns_401 [15] failed on setup with "AssertionError: Expected status 200, got 429. Body: {"error":"invalid_grant","error_description":"Too many logins with the same username or email."}" |
ERROR | 0.00s |
health| Class | Test | Status | Duration |
|---|---|---|---|
| tests.health.test_health | test_health_returns_200 [1] | PASSED | 0.22s |
| tests.health.test_health | test_v1_health_returns_200_with_status_and_version [2] | PASSED | 0.22s |
password| Class | Test | Status | Duration |
|---|---|---|---|
| tests.password.test_EI_3284_password_reset_token | test_EI_3284_valid_email_returns_200 [1] | PASSED | 0.38s |
| tests.password.test_EI_3284_password_reset_token | test_EI_3284_nonexistent_email_returns_200 [2] | PASSED | 0.47s |
| tests.password.test_EI_3284_password_reset_token | test_EI_3284_missing_email_returns_400 [3] | PASSED | 0.21s |
| tests.password.test_EI_3284_password_reset_token | test_EI_3284_malformed_email_returns_400 [4] | PASSED | 0.21s |
| tests.password.test_EI_3284_password_reset_token | test_EI_3284_extra_fields_ignored [5] | PASSED | 0.34s |
perf| Class | Test | Status | Duration |
|---|---|---|---|
| tests.perf.test_EI_1262_database_performance | test_EI_TC_3253_step_1_dataset_loaded_with_indexes [1] Mongo env (DB_HOST/DB_USER/DB_PASSWORD/DB_NAME) not set — perf seeding skipped. Source the eruditiontx-services-mvp `.env` before running (`set -a; . path/to/.env; set +a`). |
SKIPPED | 0.29s |
| tests.perf.test_EI_1262_database_performance | test_EI_TC_3253_step_2_standard_read_within_sla [2] Mongo env (DB_HOST/DB_USER/DB_PASSWORD/DB_NAME) not set — perf seeding skipped. Source the eruditiontx-services-mvp `.env` before running (`set -a; . path/to/.env; set +a`). |
SKIPPED | 0.00s |
| tests.perf.test_EI_1262_database_performance | test_EI_TC_3253_step_3_complex_aggregation_within_sla [3] Mongo env (DB_HOST/DB_USER/DB_PASSWORD/DB_NAME) not set — perf seeding skipped. Source the eruditiontx-services-mvp `.env` before running (`set -a; . path/to/.env; set +a`). |
SKIPPED | 0.00s |
| tests.perf.test_EI_1262_database_performance | test_EI_TC_3253_step_4_5_concurrent_reads_use_connection_pool [4] Mongo env (DB_HOST/DB_USER/DB_PASSWORD/DB_NAME) not set — perf seeding skipped. Source the eruditiontx-services-mvp `.env` before running (`set -a; . path/to/.env; set +a`). |
SKIPPED | 0.00s |
| tests.perf.test_EI_1262_database_performance | test_EI_TC_3253_step_6_backup_during_workload_not_applicable [5] EI-TC-3253 Step 6 — backup during workload is DBA-infrastructure level; no application-layer backup API exists. Reconciled to N/A (verify at the DBA / monitoring layer, not via E2E API tests). |
SKIPPED | 0.00s |
| tests.perf.test_EI_1262_database_performance | test_EI_TC_3253_step_7_archival_retention_not_applicable [6] EI-TC-3253 Step 7 — archival / retention is DBA-infrastructure level; no application-layer archival API exists. Reconciled to N/A. |
SKIPPED | 0.00s |
| tests.perf.test_EI_1262_database_performance | test_EI_TC_3253_step_8_replication_lag_not_applicable [7] EI-TC-3253 Step 8 — replication lag is infrastructure-layer; the app uses `directConnection=true` and never sees replica state. Reconciled to N/A. |
SKIPPED | 0.00s |
| tests.perf.test_EI_1262_database_performance | test_EI_TC_3254_step_1_invalid_index_config_not_applicable [8] EI-TC-3254 Step 1 — invalid index configuration is DBA-infrastructure level; no application-layer index API exists. Reconciled to N/A. |
SKIPPED | 0.00s |
| tests.perf.test_EI_1262_database_performance | test_EI_TC_3254_step_2_disk_quota_overflow_not_applicable [9] EI-TC-3254 Step 2 — disk-quota overflow is OS/infrastructure level; fundamentally untestable from app code on a shared live DB. Reconciled to N/A. |
SKIPPED | 0.00s |
| tests.perf.test_EI_1262_database_performance | test_EI_TC_3254_step_3_large_result_set_returns_gracefully [10] Mongo env (DB_HOST/DB_USER/DB_PASSWORD/DB_NAME) not set — perf seeding skipped. Source the eruditiontx-services-mvp `.env` before running (`set -a; . path/to/.env; set +a`). |
SKIPPED | 0.00s |
| tests.perf.test_EI_1262_database_performance | test_EI_TC_3254_step_4_pool_saturation_handled_gracefully [11] Mongo env (DB_HOST/DB_USER/DB_PASSWORD/DB_NAME) not set — perf seeding skipped. Source the eruditiontx-services-mvp `.env` before running (`set -a; . path/to/.env; set +a`). |
SKIPPED | 0.00s |
| tests.perf.test_EI_1262_database_performance | test_EI_TC_3254_step_5_corrupt_backup_not_applicable [12] EI-TC-3254 Step 5 — corrupt-backup handling is DBA-infrastructure level; no application-layer backup API exists. Reconciled to N/A. |
SKIPPED | 0.00s |
| tests.perf.test_EI_1262_database_performance | test_EI_TC_3254_step_6_corrupted_data_integrity_not_applicable [13] EI-TC-3254 Step 6 — block-level corruption is detected by the storage engine (WiredTiger checksums), not via app code. Reconciled to N/A. |
SKIPPED | 0.00s |
| tests.perf.test_EI_1262_database_performance | test_EI_TC_3254_step_7_replication_partition_not_applicable [14] EI-TC-3254 Step 7 — replication partition is infrastructure-layer; the app uses `directConnection=true` and never sees replica state. Reconciled to N/A. |
SKIPPED | 0.00s |
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.22s |
| tests.question.test_EI_218_teacher_create_question_bank | test_EI_TC_975_fetch_all_staff_questions_list_successfully [2] failed on setup with "AssertionError: Expected status 200, got 429. Body: {"error":"invalid_grant","error_description":"Too many logins with the same username or email."}" |
ERROR | 0.14s |
| tests.question.test_EI_218_teacher_create_question_bank | test_EI_TC_976_create_new_question [3] failed on setup with "AssertionError: Expected status 200, got 429. Body: {"error":"invalid_grant","error_description":"Too many logins with the same username or email."}" |
ERROR | 0.00s |
| 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.07s |
| tests.question.test_EI_218_teacher_create_question_bank | test_EI_TC_978_create_question_with_invalid_data_payload [5] failed on setup with "AssertionError: Expected status 200, got 429. Body: {"error":"invalid_grant","error_description":"Too many logins with the same username or email."}" |
ERROR | 0.00s |
| tests.question.test_EI_218_teacher_create_question_bank | test_EI_TC_979_fetch_update_delete_non_existent_question_id [6] failed on setup with "AssertionError: Expected status 200, got 429. Body: {"error":"invalid_grant","error_description":"Too many logins with the same username or email."}" |
ERROR | 0.00s |
| tests.question.test_EI_218_teacher_create_question_bank | test_EI_2781_points_at_max_succeeds [7] failed on setup with "AssertionError: Expected status 200, got 429. Body: {"error":"invalid_grant","error_description":"Too many logins with the same username or email."}" |
ERROR | 0.00s |
| tests.question.test_EI_218_teacher_create_question_bank | test_EI_2781_points_above_max_rejected [8] failed on setup with "AssertionError: Expected status 200, got 429. Body: {"error":"invalid_grant","error_description":"Too many logins with the same username or email."}" |
ERROR | 0.00s |
| tests.question.test_EI_218_teacher_create_question_bank | test_EI_2781_points_at_zero_rejected [9] failed on setup with "AssertionError: Expected status 200, got 429. Body: {"error":"invalid_grant","error_description":"Too many logins with the same username or email."}" |
ERROR | 0.00s |
| tests.question.test_EI_218_teacher_create_question_bank | test_EI_2781_points_overflow_rejected [10] failed on setup with "AssertionError: Expected status 200, got 429. Body: {"error":"invalid_grant","error_description":"Too many logins with the same username or email."}" |
ERROR | 0.00s |
| tests.question.test_EI_218_teacher_create_question_bank | test_EI_2841_category_present_returns_201 [11] failed on setup with "AssertionError: Expected status 200, got 429. Body: {"error":"invalid_grant","error_description":"Too many logins with the same username or email."}" |
ERROR | 0.00s |
| tests.question.test_EI_218_teacher_create_question_bank | test_EI_2841_category_missing_returns_400 [12] failed on setup with "AssertionError: Expected status 200, got 429. Body: {"error":"invalid_grant","error_description":"Too many logins with the same username or email."}" |
ERROR | 0.00s |
| tests.question.test_EI_218_teacher_create_question_bank | test_EI_2841_category_null_returns_400 [13] failed on setup with "AssertionError: Expected status 200, got 429. Body: {"error":"invalid_grant","error_description":"Too many logins with the same username or email."}" |
ERROR | 0.00s |
| tests.question.test_EI_218_teacher_create_question_bank | test_EI_2841_category_empty_string_returns_400 [14] failed on setup with "AssertionError: Expected status 200, got 429. Body: {"error":"invalid_grant","error_description":"Too many logins with the same username or email."}" |
ERROR | 0.00s |
| tests.question.test_EI_218_teacher_create_question_bank | test_EI_2841_category_whitespace_only_returns_400 [15] failed on setup with "AssertionError: Expected status 200, got 429. Body: {"error":"invalid_grant","error_description":"Too many logins with the same username or email."}" |
ERROR | 0.00s |
| tests.question.test_EI_218_teacher_create_question_bank | test_EI_2844_difficulty_case_insensitive_returns_201[EASY] [16] failed on setup with "AssertionError: Expected status 200, got 429. Body: {"error":"invalid_grant","error_description":"Too many logins with the same username or email."}" |
ERROR | 0.00s |
| tests.question.test_EI_218_teacher_create_question_bank | test_EI_2844_difficulty_case_insensitive_returns_201[easy] [17] failed on setup with "AssertionError: Expected status 200, got 429. Body: {"error":"invalid_grant","error_description":"Too many logins with the same username or email."}" |
ERROR | 0.00s |
| tests.question.test_EI_218_teacher_create_question_bank | test_EI_2844_difficulty_case_insensitive_returns_201[Easy] [18] failed on setup with "AssertionError: Expected status 200, got 429. Body: {"error":"invalid_grant","error_description":"Too many logins with the same username or email."}" |
ERROR | 0.00s |
| tests.question.test_EI_218_teacher_create_question_bank | test_EI_2844_difficulty_case_insensitive_returns_201[AVERAGE] [19] failed on setup with "AssertionError: Expected status 200, got 429. Body: {"error":"invalid_grant","error_description":"Too many logins with the same username or email."}" |
ERROR | 0.00s |
| tests.question.test_EI_218_teacher_create_question_bank | test_EI_2844_difficulty_case_insensitive_returns_201[average] [20] failed on setup with "AssertionError: Expected status 200, got 429. Body: {"error":"invalid_grant","error_description":"Too many logins with the same username or email."}" |
ERROR | 0.00s |
| tests.question.test_EI_218_teacher_create_question_bank | test_EI_2844_difficulty_case_insensitive_returns_201[Advance] [21] failed on setup with "AssertionError: Expected status 200, got 429. Body: {"error":"invalid_grant","error_description":"Too many logins with the same username or email."}" |
ERROR | 0.00s |
| tests.question.test_EI_218_teacher_create_question_bank | test_EI_2844_difficulty_case_insensitive_returns_201[ADVANCE] [22] failed on setup with "AssertionError: Expected status 200, got 429. Body: {"error":"invalid_grant","error_description":"Too many logins with the same username or email."}" |
ERROR | 0.00s |
| tests.question.test_EI_218_teacher_create_question_bank | test_EI_2844_difficulty_case_insensitive_returns_201[advance] [23] failed on setup with "AssertionError: Expected status 200, got 429. Body: {"error":"invalid_grant","error_description":"Too many logins with the same username or email."}" |
ERROR | 0.00s |
| tests.question.test_EI_218_teacher_create_question_bank | test_EI_2844_difficulty_invalid_value_rejected [24] failed on setup with "AssertionError: Expected status 200, got 429. Body: {"error":"invalid_grant","error_description":"Too many logins with the same username or email."}" |
ERROR | 0.00s |
| tests.question.test_teacher_question_reads_and_crud | test_fetch_question_returns_200 [25] failed on setup with "AssertionError: Expected status 200, got 429. Body: {"error":"invalid_grant","error_description":"Too many logins with the same username or email."}" |
ERROR | 0.12s |
| tests.question.test_teacher_question_reads_and_crud | test_filter_options_returns_200_with_facets [26] failed on setup with "AssertionError: Expected status 200, got 429. Body: {"error":"invalid_grant","error_description":"Too many logins with the same username or email."}" |
ERROR | 0.00s |
| tests.question.test_teacher_question_reads_and_crud | test_clear_filters_returns_200_with_data [27] failed on setup with "AssertionError: Expected status 200, got 429. Body: {"error":"invalid_grant","error_description":"Too many logins with the same username or email."}" |
ERROR | 0.00s |
| tests.question.test_teacher_question_reads_and_crud | test_fetch_no_auth_returns_401 [28] | PASSED | 0.22s |
| tests.question.test_teacher_question_reads_and_crud | test_update_no_auth_returns_401 [29] | PASSED | 0.21s |
| tests.question.test_teacher_question_reads_and_crud | test_delete_no_auth_returns_401 [30] | PASSED | 0.22s |
| tests.question.test_teacher_question_reads_and_crud | test_filter_options_no_auth_returns_401 [31] | PASSED | 0.22s |
security| Class | Test | Status | Duration |
|---|---|---|---|
| tests.security.test_remaining_endpoints_require_auth | test_student_endpoint_requires_auth[DELETE:/v1/student/account/picture/delete] [1] | PASSED | 0.22s |
| tests.security.test_remaining_endpoints_require_auth | test_student_endpoint_requires_auth[DELETE:/v1/student/account/theme/delete] [2] | PASSED | 0.22s |
| tests.security.test_remaining_endpoints_require_auth | test_student_endpoint_requires_auth[GET:/v1/student/assignment/507f1f77bcf86cd799439011… | PASSED | 0.22s |
| tests.security.test_remaining_endpoints_require_auth | test_student_endpoint_requires_auth[GET:/v1/student/classes/messages/507f1f77bcf86cd799… | PASSED | 0.21s |
| tests.security.test_remaining_endpoints_require_auth | test_student_endpoint_requires_auth[GET:/v1/student/classes/ABC123/fetch] [5] | PASSED | 0.22s |
| tests.security.test_remaining_endpoints_require_auth | test_student_endpoint_requires_auth[PATCH:/v1/student/account/picture/update] [6] | PASSED | 0.22s |
| tests.security.test_remaining_endpoints_require_auth | test_student_endpoint_requires_auth[PATCH:/v1/student/account/update] [7] | PASSED | 0.22s |
| tests.security.test_remaining_endpoints_require_auth | test_student_endpoint_requires_auth[PATCH:/v1/student/classes/join/ABC123/cancel] [8] | PASSED | 0.21s |
| tests.security.test_remaining_endpoints_require_auth | test_student_endpoint_requires_auth[PATCH:/v1/student/classes/ABC123/leave] [9] | PASSED | 0.22s |
| tests.security.test_remaining_endpoints_require_auth | test_student_endpoint_requires_auth[POST:/v1/student/account/picture/add] [10] | PASSED | 0.22s |
| tests.security.test_remaining_endpoints_require_auth | test_student_endpoint_requires_auth[POST:/v1/student/account/theme/apply] [11] | PASSED | 0.22s |
| tests.security.test_remaining_endpoints_require_auth | test_student_endpoint_requires_auth[POST:/v1/student/assignment/507f1f77bcf86cd79943901… | PASSED | 0.22s |
| tests.security.test_remaining_endpoints_require_auth | test_student_endpoint_requires_auth[PUT:/v1/student/account/theme/update] [13] | PASSED | 0.22s |
| tests.security.test_remaining_endpoints_require_auth | test_common_endpoint_requires_auth[DELETE:/v1/assignments/delete/507f1f77bcf86cd7994390… | PASSED | 0.22s |
| tests.security.test_remaining_endpoints_require_auth | test_common_endpoint_requires_auth[GET:/v1/assignments/adoptive/507f1f77bcf86cd79943901… | PASSED | 0.22s |
| tests.security.test_remaining_endpoints_require_auth | test_common_endpoint_requires_auth[GET:/v1/assignments/review/507f1f77bcf86cd799439011]… | PASSED | 0.22s |
| tests.security.test_remaining_endpoints_require_auth | test_common_endpoint_requires_auth[GET:/v1/assignments/view/507f1f77bcf86cd799439011] [17] | PASSED | 0.22s |
| tests.security.test_remaining_endpoints_require_auth | test_common_endpoint_requires_auth[POST:/v1/assignments/answer] [18] | PASSED | 0.22s |
| tests.security.test_remaining_endpoints_require_auth | test_common_endpoint_requires_auth[POST:/v1/assignments/create] [19] | PASSED | 0.22s |
| tests.security.test_remaining_endpoints_require_auth | test_common_endpoint_requires_auth[POST:/v1/assignments/share] [20] | PASSED | 0.22s |
| tests.security.test_remaining_endpoints_require_auth | test_common_endpoint_requires_auth[PUT:/v1/assignments/update/507f1f77bcf86cd799439011]… | PASSED | 0.23s |
| tests.security.test_remaining_endpoints_require_auth | test_common_endpoint_requires_auth[POST:/v1/webhooks/auth0/user-sync] [22] | PASSED | 0.22s |
| tests.security.test_teacher_endpoints_require_auth | test_teacher_endpoint_requires_auth[POST:/v1/teacher/students/create] [23] | PASSED | 0.22s |
| tests.security.test_teacher_endpoints_require_auth | test_teacher_endpoint_requires_auth[POST:/v1/teacher/students/bulk/create] [24] | PASSED | 0.21s |
| tests.security.test_teacher_endpoints_require_auth | test_teacher_endpoint_requires_auth[PATCH:/v1/teacher/account/picture/update] [25] | PASSED | 0.21s |
| tests.security.test_teacher_endpoints_require_auth | test_teacher_endpoint_requires_auth[POST:/v1/teacher/account/password/update] [26] | PASSED | 0.22s |
| tests.security.test_teacher_endpoints_require_auth | test_teacher_endpoint_requires_auth[POST:/v1/teacher/class/507f1f77bcf86cd799439011/res… | PASSED | 0.21s |
| tests.security.test_teacher_endpoints_require_auth | test_teacher_endpoint_requires_auth[PATCH:/v1/teacher/class/507f1f77bcf86cd799439011/50… | PASSED | 0.22s |
| tests.security.test_teacher_endpoints_require_auth | test_teacher_endpoint_requires_auth[DELETE:/v1/teacher/class/507f1f77bcf86cd799439011/5… | PASSED | 0.22s |
| tests.security.test_teacher_endpoints_require_auth | test_teacher_endpoint_requires_auth[DELETE:/v1/teacher/assignment/507f1f77bcf86cd799439… | PASSED | 0.22s |
| tests.security.test_teacher_endpoints_require_auth | test_teacher_endpoint_requires_auth[POST:/v1/teacher/assignment/staff/assignments/creat… | PASSED | 0.21s |
| tests.security.test_teacher_endpoints_require_auth | test_teacher_endpoint_requires_auth[GET:/v1/teacher/assignment/ABC123/507f1f77bcf86cd79… | PASSED | 0.22s |
| tests.security.test_teacher_endpoints_require_auth | test_teacher_endpoint_requires_auth[POST:/v1/teacher/assignment/ABC123/507f1f77bcf86cd7… | PASSED | 0.21s |
| tests.security.test_teacher_endpoints_require_auth | test_teacher_endpoint_requires_auth[PUT:/v1/teacher/assignment/ABC123/507f1f77bcf86cd79… | PASSED | 0.21s |
| tests.security.test_teacher_endpoints_require_auth | test_teacher_endpoint_requires_auth[DELETE:/v1/teacher/assignment/ABC123/507f1f77bcf86c… | PASSED | 0.22s |
theme| Class | Test | Status | Duration |
|---|---|---|---|
| tests.theme.test_EI_217_teacher_apply_theme | test_auth0_login_response_contains_access_token [1] | PASSED | 0.30s |
| tests.theme.test_EI_217_teacher_apply_theme | test_EI_217_teacher_fetch_theme [2] | PASSED | 0.52s |
| tests.theme.test_EI_217_teacher_apply_theme | test_EI_217_teacher_apply_theme [3] | PASSED | 0.37s |
| tests.theme.test_EI_217_teacher_apply_theme | test_EI_217_teacher_update_theme [4] | PASSED | 0.26s |
| tests.theme.test_EI_217_teacher_apply_theme | test_EI_217_teacher_delete_theme [5] | PASSED | 0.26s |
| tests.theme.test_EI_217_teacher_apply_theme | test_EI_TC_971_positive_fetch_themes_with_valid_credentials_and_return_list [6] | PASSED | 0.26s |
| tests.theme.test_EI_217_teacher_apply_theme | test_EI_TC_972_negative_apply_theme_with_invalid_token_and_insufficient_permissions [7] | PASSED | 0.47s |
| tests.theme.test_EI_217_teacher_apply_theme | test_EI_1214_default_theme_fetch_has_color_mode [8] | PASSED | 0.26s |
| tests.theme.test_EI_217_teacher_apply_theme | test_EI_1214_default_theme_fetch_no_nonetype_leak [9] | PASSED | 0.28s |
| tests.theme.test_EI_217_teacher_apply_theme | test_EI_1214_default_theme_persistence_across_fetches [10] | PASSED | 0.37s |
| tests.theme.test_EI_217_teacher_apply_theme | test_EI_1214_default_theme_fetch_theme_details_not_null [11] | PASSED | 0.27s |
| tests.theme.test_EI_217_teacher_apply_theme | test_EI_1214_default_theme_fetch_renderable_attrs_present [12] | PASSED | 0.26s |
| tests.theme.test_EI_217_teacher_apply_theme | test_EI_1214_pos_step1_teacher_account_exists_via_auth0_login [13] AssertionError: Expected status 200, got 429. Body: {"error":"invalid_grant","error_description":"Too many logins with the same username or email."} |
FAILED | 0.11s |
| tests.theme.test_EI_217_teacher_apply_theme | test_EI_1214_pos_step2_auth0_login_returns_access_token [14] AssertionError: Expected status 200, got 429. Body: {"error":"invalid_grant","error_description":"Too many logins with the same username or email."} |
FAILED | 0.12s |
| 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.37s |
| tests.theme.test_EI_217_teacher_apply_theme | test_EI_1214_neg_step2_auth0_login_with_invalid_credentials_returns_403 [16] | PASSED | 0.20s |
| tests.theme.test_EI_217_teacher_apply_theme | test_EI_1214_neg_step5_recovered_account_fetch_has_color_mode [17] | PASSED | 0.26s |
| tests.theme.test_student_theme_lifecycle | test_theme_apply_changes_color_mode [18] failed on setup with "AssertionError: Expected status 200, got 429. Body: {"error":"too_many_attempts","error_description":"Your account has been blocked after multiple consecutive login attempts. We've sent you a notification via your preferred contact method with instructions on how to unblock it. |
ERROR | 0.14s |
| tests.theme.test_student_theme_lifecycle | test_theme_update_changes_theme_name [19] failed on setup with "AssertionError: Expected status 200, got 429. Body: {"error":"too_many_attempts","error_description":"Your account has been blocked after multiple consecutive login attempts. We've sent you a notification via your preferred contact method with instructions on how to unblock it. |
ERROR | 0.00s |
| tests.theme.test_student_theme_lifecycle | test_theme_apply_invalid_theme_id_returns_400 [20] failed on setup with "AssertionError: Expected status 200, got 429. Body: {"error":"too_many_attempts","error_description":"Your account has been blocked after multiple consecutive login attempts. We've sent you a notification via your preferred contact method with instructions on how to unblock it. |
ERROR | 0.00s |
| tests.theme.test_teacher_theme_lifecycle | test_theme_apply_changes_color_mode [21] | PASSED | 1.01s |
| tests.theme.test_teacher_theme_lifecycle | test_theme_update_changes_theme_name [22] | PASSED | 0.68s |
| tests.theme.test_teacher_theme_lifecycle | test_theme_apply_invalid_theme_id_returns_400 [23] | PASSED | 0.26s |