============================= test session starts ==============================
platform linux -- Python 3.10.12, pytest-9.0.2, pluggy-1.6.0 -- /usr/bin/python
cachedir: .pytest_cache
rootdir: /workspace
plugins: isolate-0.0.13, cov-7.0.0, anyio-4.12.0, returns-0.26.0
collecting ... collected 148 items

tests/e2e/test_complete_workflows.py::TestCompleteWorkflows::test_class_capacity_and_waitlist_workflow PASSED [  0%]
tests/e2e/test_complete_workflows.py::TestCompleteWorkflows::test_complete_member_journey PASSED [  1%]
tests/e2e/test_complete_workflows.py::TestCompleteWorkflows::test_member_suspension_and_reactivation_workflow PASSED [  2%]
tests/e2e/test_complete_workflows.py::TestCompleteWorkflows::test_membership_upgrade_workflow PASSED [  2%]
tests/e2e/test_complete_workflows.py::TestCompleteWorkflows::test_system_analytics_and_reporting PASSED [  3%]
tests/e2e/test_complete_workflows.py::TestCompleteWorkflows::test_trainer_class_management_workflow PASSED [  4%]
tests/e2e/test_complete_workflows.py::TestCompleteWorkflows::test_trainer_scheduling_conflict_prevention PASSED [  4%]
tests/e2e/test_web_interface.py::TestWebInterface::test_404_error_page PASSED [  5%]
tests/e2e/test_web_interface.py::TestWebInterface::test_add_member_form_displays PASSED [  6%]
tests/e2e/test_web_interface.py::TestWebInterface::test_add_member_form_submission_success PASSED [  6%]
tests/e2e/test_web_interface.py::TestWebInterface::test_add_member_form_validation_error PASSED [  7%]
tests/e2e/test_web_interface.py::TestWebInterface::test_api_book_class PASSED [  8%]
tests/e2e/test_web_interface.py::TestWebInterface::test_api_book_class_missing_data PASSED [  8%]
tests/e2e/test_web_interface.py::TestWebInterface::test_api_create_member PASSED [  9%]
tests/e2e/test_web_interface.py::TestWebInterface::test_api_create_member_no_data PASSED [ 10%]
tests/e2e/test_web_interface.py::TestWebInterface::test_api_get_members PASSED [ 10%]
tests/e2e/test_web_interface.py::TestWebInterface::test_classes_page_displays_classes PASSED [ 11%]
tests/e2e/test_web_interface.py::TestWebInterface::test_form_csrf_protection_disabled PASSED [ 12%]
tests/e2e/test_web_interface.py::TestWebInterface::test_home_page_loads PASSED [ 12%]
tests/e2e/test_web_interface.py::TestWebInterface::test_home_page_statistics_calculation PASSED [ 13%]
tests/e2e/test_web_interface.py::TestWebInterface::test_member_profile_not_found PASSED [ 14%]
tests/e2e/test_web_interface.py::TestWebInterface::test_member_profile_page PASSED [ 14%]
tests/e2e/test_web_interface.py::TestWebInterface::test_member_profile_with_bookings PASSED [ 15%]
tests/e2e/test_web_interface.py::TestWebInterface::test_members_page_displays_members PASSED [ 16%]
tests/e2e/test_web_interface.py::TestWebInterface::test_navigation_elements PASSED [ 16%]
tests/e2e/test_web_interface.py::TestWebInterface::test_reports_page_displays_analytics PASSED [ 17%]
tests/e2e/test_web_interface.py::TestWebInterface::test_responsive_design_elements PASSED [ 18%]
tests/e2e/test_web_interface.py::TestWebInterface::test_search_functionality PASSED [ 18%]
tests/e2e/test_web_interface.py::TestWebInterface::test_trainers_page_displays_trainers PASSED [ 19%]
tests/e2e/test_web_interface.py::TestWebInterface::test_web_interface_error_handling PASSED [ 20%]
tests/unit/test_class_booking.py::TestClassBookingSystem::test_book_class_for_member_success PASSED [ 20%]
tests/unit/test_class_booking.py::TestClassBookingSystem::test_book_class_inactive_member PASSED [ 21%]
tests/unit/test_class_booking.py::TestClassBookingSystem::test_book_class_nonexistent_member PASSED [ 22%]
tests/unit/test_class_booking.py::TestClassBookingSystem::test_can_cancel_booking PASSED [ 22%]
tests/unit/test_class_booking.py::TestClassBookingSystem::test_cancel_booking PASSED [ 23%]
tests/unit/test_class_booking.py::TestClassBookingSystem::test_cancel_booking_late_fee PASSED [ 24%]
tests/unit/test_class_booking.py::TestClassBookingSystem::test_cancel_booking_nonexistent PASSED [ 25%]
tests/unit/test_class_booking.py::TestClassBookingSystem::test_create_fitness_class_invalid_date PASSED [ 25%]
tests/unit/test_class_booking.py::TestClassBookingSystem::test_create_fitness_class_invalid_time PASSED [ 26%]
tests/unit/test_class_booking.py::TestClassBookingSystem::test_create_fitness_class_nonexistent_trainer PASSED [ 27%]
tests/unit/test_class_booking.py::TestClassBookingSystem::test_create_fitness_class_pricing PASSED [ 27%]
tests/unit/test_class_booking.py::TestClassBookingSystem::test_create_fitness_class_scheduling_conflict PASSED [ 28%]
tests/unit/test_class_booking.py::TestClassBookingSystem::test_create_fitness_class_short_name PASSED [ 29%]
tests/unit/test_class_booking.py::TestClassBookingSystem::test_create_fitness_class_success PASSED [ 29%]
tests/unit/test_class_booking.py::TestClassBookingSystem::test_create_fitness_class_time_formats PASSED [ 30%]
tests/unit/test_class_booking.py::TestClassBookingSystem::test_generate_class_report PASSED [ 31%]
tests/unit/test_class_booking.py::TestClassBookingSystem::test_get_available_classes PASSED [ 31%]
tests/unit/test_class_booking.py::TestClassBookingSystem::test_get_available_classes_no_spots PASSED [ 32%]
tests/unit/test_class_booking.py::TestClassBookingSystem::test_get_class_roster PASSED [ 33%]
tests/unit/test_class_booking.py::TestClassBookingSystem::test_get_member_bookings_with_details PASSED [ 33%]
tests/unit/test_class_booking.py::TestClassBookingSystem::test_membership_discounts PASSED [ 34%]
tests/unit/test_class_booking.py::TestClassBookingSystem::test_process_class_payment_failure PASSED [ 35%]
tests/unit/test_class_booking.py::TestClassBookingSystem::test_process_class_payment_success PASSED [ 35%]
tests/unit/test_database.py::TestDatabaseManager::test_add_member_duplicate_email PASSED [ 36%]
tests/unit/test_database.py::TestDatabaseManager::test_add_member_invalid_data PASSED [ 37%]
tests/unit/test_database.py::TestDatabaseManager::test_add_member_success PASSED [ 37%]
tests/unit/test_database.py::TestDatabaseManager::test_add_trainer_duplicate_email PASSED [ 38%]
tests/unit/test_database.py::TestDatabaseManager::test_add_trainer_success PASSED [ 39%]
tests/unit/test_database.py::TestDatabaseManager::test_book_class_duplicate PASSED [ 39%]
tests/unit/test_database.py::TestDatabaseManager::test_book_class_full PASSED [ 40%]
tests/unit/test_database.py::TestDatabaseManager::test_book_class_success PASSED [ 41%]
tests/unit/test_database.py::TestDatabaseManager::test_cleanup_old_bookings PASSED [ 41%]
tests/unit/test_database.py::TestDatabaseManager::test_create_class_success PASSED [ 42%]
tests/unit/test_database.py::TestDatabaseManager::test_database_initialization PASSED [ 43%]
tests/unit/test_database.py::TestDatabaseManager::test_get_all_members_with_processing PASSED [ 43%]
tests/unit/test_database.py::TestDatabaseManager::test_get_member_bookings PASSED [ 44%]
tests/unit/test_database.py::TestDatabaseManager::test_get_stats PASSED  [ 45%]
tests/unit/test_member_manager.py::TestMemberManager::test_calculate_days_since_joined_invalid PASSED [ 45%]
tests/unit/test_member_manager.py::TestMemberManager::test_calculate_days_since_joined_valid PASSED [ 46%]
tests/unit/test_member_manager.py::TestMemberManager::test_create_member_account_invalid_email PASSED [ 47%]
tests/unit/test_member_manager.py::TestMemberManager::test_create_member_account_invalid_phone PASSED [ 47%]
tests/unit/test_member_manager.py::TestMemberManager::test_create_member_account_membership_types PASSED [ 48%]
tests/unit/test_member_manager.py::TestMemberManager::test_create_member_account_success PASSED [ 49%]
tests/unit/test_member_manager.py::TestMemberManager::test_get_member_profile_exists PASSED [ 50%]
tests/unit/test_member_manager.py::TestMemberManager::test_get_member_profile_not_exists PASSED [ 50%]
tests/unit/test_member_manager.py::TestMemberManager::test_get_membership_analytics PASSED [ 51%]
tests/unit/test_member_manager.py::TestMemberManager::test_get_membership_status_active PASSED [ 52%]
tests/unit/test_member_manager.py::TestMemberManager::test_get_membership_status_inactive PASSED [ 52%]
tests/unit/test_member_manager.py::TestMemberManager::test_get_membership_status_payment_pending PASSED [ 53%]
tests/unit/test_member_manager.py::TestMemberManager::test_process_membership_renewal PASSED [ 54%]
tests/unit/test_member_manager.py::TestMemberManager::test_process_membership_renewal_invalid_member PASSED [ 54%]
tests/unit/test_member_manager.py::TestMemberManager::test_process_payment_invalid_card PASSED [ 55%]
tests/unit/test_member_manager.py::TestMemberManager::test_process_payment_no_card PASSED [ 56%]
tests/unit/test_member_manager.py::TestMemberManager::test_process_payment_success PASSED [ 56%]
tests/unit/test_member_manager.py::TestMemberManager::test_search_members PASSED [ 57%]
tests/unit/test_member_manager.py::TestMemberManager::test_suspend_member PASSED [ 58%]
tests/unit/test_member_manager.py::TestMemberManager::test_update_member_info_invalid_fields PASSED [ 58%]
tests/unit/test_member_manager.py::TestMemberManager::test_update_member_info_no_updates PASSED [ 59%]
tests/unit/test_member_manager.py::TestMemberManager::test_update_member_info_success PASSED [ 60%]
tests/unit/test_member_manager.py::TestMemberManager::test_validate_email_invalid PASSED [ 60%]
tests/unit/test_member_manager.py::TestMemberManager::test_validate_email_valid PASSED [ 61%]
tests/unit/test_member_manager.py::TestMemberManager::test_validate_phone_invalid PASSED [ 62%]
tests/unit/test_member_manager.py::TestMemberManager::test_validate_phone_valid PASSED [ 62%]
tests/unit/test_trainer_stuff.py::TestTrainerManagement::test_add_trainer_invalid_email PASSED [ 63%]
tests/unit/test_trainer_stuff.py::TestTrainerManagement::test_add_trainer_invalid_phone PASSED [ 64%]
tests/unit/test_trainer_stuff.py::TestTrainerManagement::test_add_trainer_invalid_specialties PASSED [ 64%]
tests/unit/test_trainer_stuff.py::TestTrainerManagement::test_add_trainer_no_name PASSED [ 65%]
tests/unit/test_trainer_stuff.py::TestTrainerManagement::test_add_trainer_rate_bounds PASSED [ 66%]
tests/unit/test_trainer_stuff.py::TestTrainerManagement::test_add_trainer_specialties_string PASSED [ 66%]
tests/unit/test_trainer_stuff.py::TestTrainerManagement::test_add_trainer_success PASSED [ 67%]
tests/unit/test_trainer_stuff.py::TestTrainerManagement::test_calculate_trainer_earnings PASSED [ 68%]
tests/unit/test_trainer_stuff.py::TestTrainerManagement::test_calculate_weekly_hours PASSED [ 68%]
tests/unit/test_trainer_stuff.py::TestTrainerManagement::test_count_trainer_classes PASSED [ 69%]
tests/unit/test_trainer_stuff.py::TestTrainerManagement::test_deactivate_trainer PASSED [ 70%]
tests/unit/test_trainer_stuff.py::TestTrainerManagement::test_get_all_trainers_caching PASSED [ 70%]
tests/unit/test_trainer_stuff.py::TestTrainerManagement::test_get_next_class PASSED [ 71%]
tests/unit/test_trainer_stuff.py::TestTrainerManagement::test_get_next_class_none PASSED [ 72%]
tests/unit/test_trainer_stuff.py::TestTrainerManagement::test_get_trainer_details PASSED [ 72%]
tests/unit/test_trainer_stuff.py::TestTrainerManagement::test_get_trainer_details_nonexistent PASSED [ 73%]
tests/unit/test_trainer_stuff.py::TestTrainerManagement::test_get_trainer_id_by_email PASSED [ 74%]
tests/unit/test_trainer_stuff.py::TestTrainerManagement::test_get_trainer_schedule PASSED [ 75%]
tests/unit/test_trainer_stuff.py::TestTrainerManagement::test_modify_trainer PASSED [ 75%]
tests/unit/test_trainer_stuff.py::TestTrainerManagement::test_search_trainers PASSED [ 76%]
tests/unit/test_utils.py::TestUtils::test_cache_clear PASSED             [ 77%]
tests/unit/test_utils.py::TestUtils::test_cache_operations PASSED        [ 77%]
tests/unit/test_utils.py::TestUtils::test_calculate_age_invalid PASSED   [ 78%]
tests/unit/test_utils.py::TestUtils::test_calculate_age_valid PASSED     [ 79%]
tests/unit/test_utils.py::TestUtils::test_calculate_class_revenue PASSED [ 79%]
tests/unit/test_utils.py::TestUtils::test_calculate_membership_discount PASSED [ 80%]
tests/unit/test_utils.py::TestUtils::test_capitalize_name PASSED         [ 81%]
tests/unit/test_utils.py::TestUtils::test_days_between_invalid PASSED    [ 81%]
tests/unit/test_utils.py::TestUtils::test_days_between_valid PASSED      [ 82%]
tests/unit/test_utils.py::TestUtils::test_format_currency PASSED         [ 83%]
tests/unit/test_utils.py::TestUtils::test_format_date_invalid PASSED     [ 83%]
tests/unit/test_utils.py::TestUtils::test_format_date_valid PASSED       [ 84%]
tests/unit/test_utils.py::TestUtils::test_format_phone_number PASSED     [ 85%]
tests/unit/test_utils.py::TestUtils::test_generate_class_code PASSED     [ 85%]
tests/unit/test_utils.py::TestUtils::test_generate_id PASSED             [ 86%]
tests/unit/test_utils.py::TestUtils::test_generate_member_id PASSED      [ 87%]
tests/unit/test_utils.py::TestUtils::test_generate_random_password PASSED [ 87%]
tests/unit/test_utils.py::TestUtils::test_get_current_timestamp PASSED   [ 88%]
tests/unit/test_utils.py::TestUtils::test_get_membership_benefits PASSED [ 89%]
tests/unit/test_utils.py::TestUtils::test_get_time_of_day PASSED         [ 89%]
tests/unit/test_utils.py::TestUtils::test_handle_database_error PASSED   [ 90%]
tests/unit/test_utils.py::TestUtils::test_hash_password PASSED           [ 91%]
tests/unit/test_utils.py::TestUtils::test_is_weekend PASSED              [ 91%]
tests/unit/test_utils.py::TestUtils::test_log_error PASSED               [ 92%]
tests/unit/test_utils.py::TestUtils::test_sanitize_input PASSED          [ 93%]
tests/unit/test_utils.py::TestUtils::test_send_notification PASSED       [ 93%]
tests/unit/test_utils.py::TestUtils::test_session_expiry PASSED          [ 94%]
tests/unit/test_utils.py::TestUtils::test_session_management PASSED      [ 95%]
tests/unit/test_utils.py::TestUtils::test_temp_data_cleanup PASSED       [ 95%]
tests/unit/test_utils.py::TestUtils::test_temp_data_operations PASSED    [ 96%]
tests/unit/test_utils.py::TestUtils::test_truncate_string PASSED         [ 97%]
tests/unit/test_utils.py::TestUtils::test_validate_email_invalid PASSED  [ 97%]
tests/unit/test_utils.py::TestUtils::test_validate_email_valid PASSED    [ 98%]
tests/unit/test_utils.py::TestUtils::test_validate_required_fields PASSED [ 99%]
tests/unit/test_utils.py::TestUtils::test_verify_password PASSED         [100%]

============================= 148 passed in 10.24s =============================
