warning: Failed to uninstall package at .venv/lib/python3.13/site-packages/cryptography-45.0.5.dist-info due to missing `RECORD` file. Installation may result in an incomplete environment.
warning: Failed to uninstall package at .venv/lib/python3.13/site-packages/youtrack_cli-0.5.1.dist-info due to missing `RECORD` file. Installation may result in an incomplete environment.
warning: Failed to uninstall package at .venv/lib/python3.13/site-packages/youtrack_cli-0.6.1.dist-info due to missing `RECORD` file. Installation may result in an incomplete environment.
Uninstalled 5 packages in 15ms
Installed 2 packages in 6ms
============================= test session starts ==============================
platform darwin -- Python 3.13.0, pytest-8.4.1, pluggy-1.6.0 -- /Users/ryan/Documents/github/yt-cli/.venv/bin/python
cachedir: .pytest_cache
Using --randomly-seed=1532188853
rootdir: /Users/ryan/Documents/github/yt-cli
configfile: pyproject.toml
testpaths: tests
plugins: randomly-3.16.0, anyio-4.9.0, cov-6.2.1, asyncio-1.0.0
asyncio: mode=Mode.STRICT, asyncio_default_fixture_loop_scope=None, asyncio_default_test_loop_scope=function
collecting ... collected 999 items

tests/test_reports.py::TestReportManager::test_display_velocity_report PASSED [  0%]
tests/test_reports.py::TestReportManager::test_generate_velocity_report_no_auth PASSED [  0%]
tests/test_reports.py::TestReportManager::test_display_burndown_report PASSED [  0%]
tests/test_reports.py::TestReportManager::test_generate_burndown_report_success PASSED [  0%]
tests/test_reports.py::TestReportManager::test_display_velocity_report_empty PASSED [  0%]
tests/test_reports.py::TestReportManager::test_generate_burndown_report_http_error PASSED [  0%]
tests/test_reports.py::TestReportManager::test_generate_burndown_report_no_auth PASSED [  0%]
tests/test_reports.py::TestReportManager::test_generate_velocity_report_success PASSED [  0%]
tests/test_reports.py::TestReportsCommands::test_burndown_command_success PASSED [  0%]
tests/test_reports.py::TestReportsCommands::test_velocity_command_success PASSED [  1%]
tests/test_reports.py::TestReportsCommands::test_velocity_command_help PASSED [  1%]
tests/test_reports.py::TestReportsCommands::test_burndown_command_help PASSED [  1%]
tests/test_reports.py::TestReportsCommands::test_reports_group_help PASSED [  1%]
tests/test_console.py::TestThemeContent::test_dark_theme_styles PASSED   [  1%]
tests/test_console.py::TestThemeContent::test_default_theme_styles PASSED [  1%]
tests/test_console.py::TestThemeContent::test_all_themes_have_same_keys PASSED [  1%]
tests/test_console.py::TestThemeContent::test_light_theme_styles PASSED  [  1%]
tests/test_console.py::TestGlobalFunctions::test_set_console_theme PASSED [  1%]
tests/test_console.py::TestGlobalFunctions::test_set_theme_by_name_invalid PASSED [  1%]
tests/test_console.py::TestGlobalFunctions::test_get_console_consistency PASSED [  2%]
tests/test_console.py::TestGlobalFunctions::test_get_console PASSED      [  2%]
tests/test_console.py::TestGlobalFunctions::test_set_theme_by_name_valid PASSED [  2%]
tests/test_console.py::TestGlobalFunctions::test_reset_console_theme PASSED [  2%]
tests/test_console.py::TestConsoleManager::test_set_theme PASSED         [  2%]
tests/test_console.py::TestConsoleManager::test_singleton_pattern PASSED [  2%]
tests/test_console.py::TestConsoleManager::test_reset_theme PASSED       [  2%]
tests/test_console.py::TestConsoleManager::test_custom_theme_initialization PASSED [  2%]
tests/test_console.py::TestConsoleManager::test_default_theme_initialization PASSED [  2%]
tests/test_console.py::TestConsoleManager::test_console_property PASSED  [  2%]
tests/test_console.py::TestThemes::test_default_theme_exists PASSED      [  3%]
tests/test_console.py::TestThemes::test_get_theme_by_name_valid PASSED   [  3%]
tests/test_console.py::TestThemes::test_themes_structure PASSED          [  3%]
tests/test_console.py::TestThemes::test_get_theme_by_name_invalid PASSED [  3%]
tests/test_console.py::TestThemes::test_available_themes PASSED          [  3%]
tests/test_console.py::TestConfigIntegration::test_no_theme_config PASSED [  3%]
tests/test_console.py::TestConfigIntegration::test_config_theme_not_found PASSED [  3%]
tests/test_console.py::TestConfigIntegration::test_theme_from_config PASSED [  3%]
tests/test_trees.py::TestStatusColorFunction::test_get_status_color_done_states PASSED [  3%]
tests/test_trees.py::TestStatusColorFunction::test_get_status_color_open_states PASSED [  3%]
tests/test_trees.py::TestStatusColorFunction::test_get_status_color_in_progress_states PASSED [  4%]
tests/test_trees.py::TestStatusColorFunction::test_get_status_color_blocked_states PASSED [  4%]
tests/test_trees.py::TestStatusColorFunction::test_get_status_color_case_insensitive PASSED [  4%]
tests/test_trees.py::TestStatusColorFunction::test_get_status_color_unknown_state PASSED [  4%]
tests/test_trees.py::TestProjectHierarchyTree::test_create_project_hierarchy_tree_flat PASSED [  4%]
tests/test_trees.py::TestProjectHierarchyTree::test_create_project_hierarchy_tree_empty PASSED [  4%]
tests/test_trees.py::TestProjectHierarchyTree::test_create_project_hierarchy_tree_nested PASSED [  4%]
tests/test_trees.py::TestEnhancedTreeBuilder::test_add_node_with_none_values PASSED [  4%]
tests/test_trees.py::TestEnhancedTreeBuilder::test_add_node_with_metadata PASSED [  4%]
tests/test_trees.py::TestEnhancedTreeBuilder::test_add_node_with_empty_metadata PASSED [  4%]
tests/test_trees.py::TestEnhancedTreeBuilder::test_add_status_node_without_additional_info PASSED [  5%]
tests/test_trees.py::TestEnhancedTreeBuilder::test_builder_creation PASSED [  5%]
tests/test_trees.py::TestEnhancedTreeBuilder::test_display PASSED        [  5%]
tests/test_trees.py::TestEnhancedTreeBuilder::test_add_status_node PASSED [  5%]
tests/test_trees.py::TestEnhancedTreeBuilder::test_get_tree PASSED       [  5%]
tests/test_trees.py::TestIssueDependenciesTree::test_create_issue_dependencies_tree_without_status PASSED [  5%]
tests/test_trees.py::TestIssueDependenciesTree::test_create_issue_dependencies_tree_basic PASSED [  5%]
tests/test_trees.py::TestIssueDependenciesTree::test_create_issue_dependencies_tree_with_dependencies PASSED [  5%]
tests/test_trees.py::TestEnhancedArticlesTree::test_create_enhanced_articles_tree_invalid_date PASSED [  5%]
tests/test_trees.py::TestEnhancedArticlesTree::test_create_enhanced_articles_tree_basic PASSED [  5%]
tests/test_trees.py::TestEnhancedArticlesTree::test_create_enhanced_articles_tree_unknown_visibility PASSED [  6%]
tests/test_trees.py::TestEnhancedArticlesTree::test_create_enhanced_articles_tree_with_null_parent_article PASSED [  6%]
tests/test_trees.py::TestEnhancedArticlesTree::test_create_enhanced_articles_tree_without_metadata PASSED [  6%]
tests/test_trees.py::TestEnhancedArticlesTree::test_create_enhanced_articles_tree_nested PASSED [  6%]
tests/test_admin.py::TestAdminLocaleManager::test_display_locale_settings PASSED [  6%]
tests/test_admin.py::TestAdminLocaleManager::test_set_locale_settings_success PASSED [  6%]
tests/test_admin.py::TestAdminLocaleManager::test_set_locale_settings_invalid_locale PASSED [  6%]
tests/test_admin.py::TestAdminLocaleManager::test_get_locale_settings_no_auth PASSED [  6%]
tests/test_admin.py::TestAdminLocaleManager::test_get_available_locales_success PASSED [  6%]
tests/test_admin.py::TestAdminLocaleManager::test_display_available_locales PASSED [  6%]
tests/test_admin.py::TestAdminLocaleManager::test_get_locale_settings_success PASSED [  7%]
tests/test_admin.py::TestAdminManager::test_set_global_setting_success PASSED [  7%]
tests/test_admin.py::TestAdminManager::test_create_user_group_success PASSED [  7%]
tests/test_admin.py::TestAdminManager::test_display_user_groups_with_data PASSED [  7%]
tests/test_admin.py::TestAdminManager::test_get_system_health_success PASSED [  7%]
tests/test_admin.py::TestAdminManager::test_clear_caches_success PASSED  [  7%]
tests/test_admin.py::TestAdminManager::test_display_user_groups_empty PASSED [  7%]
tests/test_admin.py::TestAdminManager::test_get_license_info_success PASSED [  7%]
tests/test_admin.py::TestAdminManager::test_display_license_info PASSED  [  7%]
tests/test_admin.py::TestAdminManager::test_display_global_settings_list PASSED [  7%]
tests/test_admin.py::TestAdminManager::test_list_user_groups_success PASSED [  8%]
tests/test_admin.py::TestAdminManager::test_create_user_group_already_exists PASSED [  8%]
tests/test_admin.py::TestAdminManager::test_list_custom_fields_success PASSED [  8%]
tests/test_admin.py::TestAdminManager::test_get_system_health_404_error PASSED [  8%]
tests/test_admin.py::TestAdminManager::test_display_custom_fields_empty PASSED [  8%]
tests/test_admin.py::TestAdminManager::test_get_global_settings_success PASSED [  8%]
tests/test_admin.py::TestAdminManager::test_display_custom_fields_with_data PASSED [  8%]
tests/test_admin.py::TestAdminManager::test_display_system_health PASSED [  8%]
tests/test_admin.py::TestAdminManager::test_get_global_settings_insufficient_permissions PASSED [  8%]
tests/test_admin.py::TestAdminManager::test_display_global_settings_single PASSED [  8%]
tests/test_admin.py::TestAdminManager::test_get_license_usage_success PASSED [  9%]
tests/test_admin.py::TestAdminManager::test_get_system_health_403_error PASSED [  9%]
tests/test_admin.py::TestAdminManager::test_get_global_settings_no_auth PASSED [  9%]
tests/test_admin.py::TestAdminManager::test_set_global_setting_invalid_data PASSED [  9%]
tests/test_admin.py::TestAdminManager::test_display_global_settings_nested PASSED [  9%]
tests/test_admin.py::TestAdminCommands::test_admin_user_groups_create_success PASSED [  9%]
tests/test_admin.py::TestAdminCommands::test_admin_maintenance_clear_cache_with_confirm PASSED [  9%]
tests/test_admin.py::TestAdminCommands::test_admin_fields_list_success PASSED [  9%]
tests/test_admin.py::TestAdminCommands::test_admin_global_settings_help PASSED [  9%]
tests/test_admin.py::TestAdminCommands::test_admin_maintenance_help PASSED [  9%]
tests/test_admin.py::TestAdminCommands::test_admin_license_help PASSED   [ 10%]
tests/test_admin.py::TestAdminCommands::test_admin_global_settings_set_success PASSED [ 10%]
tests/test_admin.py::TestAdminCommands::test_admin_i18n_help PASSED      [ 10%]
tests/test_admin.py::TestAdminCommands::test_admin_user_groups_help PASSED [ 10%]
tests/test_admin.py::TestAdminCommands::test_admin_locale_help PASSED    [ 10%]
tests/test_admin.py::TestAdminCommands::test_admin_group_help PASSED     [ 10%]
tests/test_admin.py::TestAdminCommands::test_admin_health_help PASSED    [ 10%]
tests/test_admin.py::TestAdminCommands::test_admin_license_usage_success PASSED [ 10%]
tests/test_admin.py::TestAdminCommands::test_admin_user_groups_list_success PASSED [ 10%]
tests/test_admin.py::TestAdminCommands::test_admin_health_check_success PASSED [ 10%]
tests/test_admin.py::TestAdminCommands::test_admin_global_settings_get_success PASSED [ 11%]
tests/test_admin.py::TestAdminCommands::test_admin_license_show_success PASSED [ 11%]
tests/test_admin.py::TestAdminCommands::test_admin_fields_help PASSED    [ 11%]
tests/test_models.py::TestYouTrackIssueTag::test_issue_tag_creation PASSED [ 11%]
tests/test_models.py::TestApiResponse::test_api_response_error_status PASSED [ 11%]
tests/test_models.py::TestApiResponse::test_api_response_with_data PASSED [ 11%]
tests/test_models.py::TestApiResponse::test_api_response_default_values PASSED [ 11%]
tests/test_models.py::TestCredentialVerificationResult::test_verification_error PASSED [ 11%]
tests/test_models.py::TestCredentialVerificationResult::test_verification_success PASSED [ 11%]
tests/test_models.py::TestModelValidation::test_extra_fields_allowed PASSED [ 11%]
tests/test_models.py::TestModelValidation::test_datetime_field_validation PASSED [ 12%]
tests/test_models.py::TestModelValidation::test_optional_nested_models PASSED [ 12%]
tests/test_models.py::TestModelValidation::test_list_field_defaults PASSED [ 12%]
tests/test_models.py::TestYouTrackComment::test_comment_creation PASSED  [ 12%]
tests/test_models.py::TestCachedResponse::test_cached_response_extra_fields_allowed PASSED [ 12%]
tests/test_models.py::TestCachedResponse::test_cached_response_json_method PASSED [ 12%]
tests/test_models.py::TestCachedResponse::test_cached_response_creation PASSED [ 12%]
tests/test_models.py::TestCachedResponse::test_cached_response_default_status_code PASSED [ 12%]
tests/test_models.py::TestCachedResponse::test_cached_response_text_property PASSED [ 12%]
tests/test_models.py::TestYouTrackSearchResult::test_search_result_creation PASSED [ 12%]
tests/test_models.py::TestYouTrackUser::test_user_minimal_creation PASSED [ 13%]
tests/test_models.py::TestYouTrackUser::test_user_full_creation PASSED   [ 13%]
tests/test_models.py::TestYouTrackUser::test_user_field_aliases PASSED   [ 13%]
tests/test_models.py::TestYouTrackErrorResponse::test_error_response_minimal PASSED [ 13%]
tests/test_models.py::TestYouTrackErrorResponse::test_error_response_full PASSED [ 13%]
tests/test_models.py::TestYouTrackCustomField::test_custom_field_minimal_creation PASSED [ 13%]
tests/test_models.py::TestYouTrackCustomField::test_custom_field_with_value PASSED [ 13%]
tests/test_models.py::TestYouTrackProject::test_project_minimal_creation PASSED [ 13%]
tests/test_models.py::TestYouTrackProject::test_project_full_creation PASSED [ 13%]
tests/test_models.py::TestYouTrackProject::test_project_validation_error PASSED [ 13%]
tests/test_models.py::TestYouTrackIssue::test_issue_with_relationships PASSED [ 14%]
tests/test_models.py::TestYouTrackIssue::test_issue_minimal_creation PASSED [ 14%]
tests/test_panels.py::TestPanelGroup::test_display PASSED                [ 14%]
tests/test_panels.py::TestPanelGroup::test_add_info_panel PASSED         [ 14%]
tests/test_panels.py::TestPanelGroup::test_render_without_title PASSED   [ 14%]
tests/test_panels.py::TestPanelGroup::test_panel_group_creation PASSED   [ 14%]
tests/test_panels.py::TestPanelGroup::test_render_with_title PASSED      [ 14%]
tests/test_panels.py::TestPanelGroup::test_add_panel PASSED              [ 14%]
tests/test_panels.py::TestPanelGroup::test_add_details_panel PASSED      [ 14%]
tests/test_panels.py::TestIssuePanelFunctions::test_create_issue_details_panel_no_assignee PASSED [ 14%]
tests/test_panels.py::TestIssuePanelFunctions::test_create_issue_overview_panel_minimal_data PASSED [ 15%]
tests/test_panels.py::TestIssuePanelFunctions::test_create_custom_fields_panel_complex_values PASSED [ 15%]
tests/test_panels.py::TestIssuePanelFunctions::test_create_custom_fields_panel_empty PASSED [ 15%]
tests/test_panels.py::TestIssuePanelFunctions::test_create_custom_fields_panel_with_fields PASSED [ 15%]
tests/test_panels.py::TestIssuePanelFunctions::test_create_project_overview_panel PASSED [ 15%]
tests/test_panels.py::TestIssuePanelFunctions::test_create_issue_details_panel PASSED [ 15%]
tests/test_panels.py::TestIssuePanelFunctions::test_create_issue_overview_panel PASSED [ 15%]
tests/test_panels.py::TestIssuePanelFunctions::test_create_project_overview_panel_minimal PASSED [ 15%]
tests/test_panels.py::TestPanelFactory::test_create_error_panel PASSED   [ 15%]
tests/test_panels.py::TestPanelFactory::test_create_details_panel PASSED [ 15%]
tests/test_panels.py::TestPanelFactory::test_create_status_panel_with_details PASSED [ 16%]
tests/test_panels.py::TestPanelFactory::test_create_status_panel PASSED  [ 16%]
tests/test_panels.py::TestPanelFactory::test_create_details_panel_with_list_value PASSED [ 16%]
tests/test_panels.py::TestPanelFactory::test_create_info_panel_with_subtitle PASSED [ 16%]
tests/test_panels.py::TestPanelFactory::test_create_warning_panel PASSED [ 16%]
tests/test_panels.py::TestPanelFactory::test_create_details_panel_with_boolean_value PASSED [ 16%]
tests/test_panels.py::TestPanelFactory::test_create_info_panel PASSED    [ 16%]
tests/integration/test_issues_workflows.py::TestMultiStepIssueWorkflows::test_complete_issue_lifecycle_workflow SKIPPED [ 16%]
tests/integration/test_issues_workflows.py::TestMultiStepIssueWorkflows::test_attachment_lifecycle_workflow SKIPPED [ 16%]
tests/integration/test_issues_workflows.py::TestMultiStepIssueWorkflows::test_issue_search_and_bulk_operations SKIPPED [ 16%]
tests/integration/test_issues_workflows.py::TestMultiStepIssueWorkflows::test_issue_collaboration_workflow SKIPPED [ 17%]
tests/integration/test_issues_workflows.py::TestMultiStepIssueWorkflows::test_cross_issue_relationship_workflow SKIPPED [ 17%]
tests/integration/test_issues_workflows.py::TestMultiStepIssueWorkflows::test_batch_operations_workflow SKIPPED [ 17%]
tests/integration/test_projects_e2e.py::TestComplexProjectOperations::test_custom_fields_end_to_end_workflow SKIPPED [ 17%]
tests/integration/test_projects_e2e.py::TestComplexProjectOperations::test_project_fields_error_handling SKIPPED [ 17%]
tests/integration/test_projects_e2e.py::TestComplexProjectOperations::test_project_lifecycle_workflow SKIPPED [ 17%]
tests/integration/test_projects_e2e.py::TestComplexProjectOperations::test_project_template_workflows SKIPPED [ 17%]
tests/integration/test_projects_e2e.py::TestComplexProjectOperations::test_bulk_project_operations_workflow SKIPPED [ 17%]
tests/integration/test_projects_e2e.py::TestComplexProjectOperations::test_cross_project_operations_workflow SKIPPED [ 17%]
tests/integration/test_projects_e2e.py::TestComplexProjectOperations::test_project_configuration_edge_cases SKIPPED [ 17%]
tests/integration/test_projects_e2e.py::TestComplexProjectOperations::test_project_search_and_filtering_workflow SKIPPED [ 18%]
tests/test_performance.py::TestBenchmarkRequests::test_benchmark_with_warmup PASSED [ 18%]
tests/test_performance.py::TestBenchmarkRequests::test_benchmark_with_failures PASSED [ 18%]
tests/test_performance.py::TestBenchmarkRequests::test_benchmark_statistics_calculation PASSED [ 18%]
tests/test_performance.py::TestBenchmarkRequests::test_benchmark_simple_function PASSED [ 18%]
tests/test_performance.py::TestBenchmarkRequests::test_benchmark_concurrent_requests PASSED [ 18%]
tests/test_performance.py::TestGlobalPerformanceMonitor::test_global_monitor_state_persistence PASSED [ 18%]
tests/test_performance.py::TestGlobalPerformanceMonitor::test_get_performance_monitor_singleton PASSED [ 18%]
tests/test_performance.py::TestPerformanceTimer::test_performance_timer_with_metadata PASSED [ 18%]
tests/test_performance.py::TestPerformanceTimer::test_performance_timer_with_exception PASSED [ 18%]
tests/test_performance.py::TestPerformanceTimer::test_performance_timer_success PASSED [ 19%]
tests/test_performance.py::TestPerformanceTimer::test_performance_timer_global_monitor PASSED [ 19%]
tests/test_performance.py::TestPerformanceMonitor::test_summary_with_metrics PASSED [ 19%]
tests/test_performance.py::TestPerformanceMonitor::test_get_metrics_all PASSED [ 19%]
tests/test_performance.py::TestPerformanceMonitor::test_get_metrics_operation_and_success PASSED [ 19%]
tests/test_performance.py::TestPerformanceMonitor::test_monitor_initialization PASSED [ 19%]
tests/test_performance.py::TestPerformanceMonitor::test_summary_empty_monitor PASSED [ 19%]
tests/test_performance.py::TestPerformanceMonitor::test_get_metrics_success_only PASSED [ 19%]
tests/test_performance.py::TestPerformanceMonitor::test_clear_metrics PASSED [ 19%]
tests/test_performance.py::TestPerformanceMonitor::test_record_metric PASSED [ 19%]
tests/test_performance.py::TestPerformanceMonitor::test_record_multiple_metrics PASSED [ 20%]
tests/test_performance.py::TestPerformanceMonitor::test_summary_with_failed_operations PASSED [ 20%]
tests/test_performance.py::TestPerformanceMonitor::test_get_metrics_by_operation PASSED [ 20%]
tests/test_performance.py::TestPerformanceIntegration::test_timer_with_custom_monitor PASSED [ 20%]
tests/test_performance.py::TestPerformanceIntegration::test_monitor_summary_with_mixed_operations PASSED [ 20%]
tests/test_performance.py::TestPerformanceIntegration::test_benchmark_with_timer_monitored_function PASSED [ 20%]
tests/test_performance.py::TestBenchmarkResult::test_benchmark_result_creation PASSED [ 20%]
tests/test_performance.py::TestPerformanceMetrics::test_performance_metrics_creation PASSED [ 20%]
tests/test_performance.py::TestPerformanceMetrics::test_performance_metrics_with_failure PASSED [ 20%]
tests/test_boards.py::TestBoardManager::test_list_boards_general_error PASSED [ 20%]
tests/test_boards.py::TestBoardManager::test_update_board_not_authenticated PASSED [ 21%]
tests/test_boards.py::TestBoardManager::test_view_board_success PASSED   [ 21%]
tests/test_boards.py::TestBoardManager::test_list_boards_success PASSED  [ 21%]
tests/test_boards.py::TestBoardManager::test_view_board_not_authenticated PASSED [ 21%]
tests/test_boards.py::TestBoardManager::test_view_board_general_error PASSED [ 21%]
tests/test_boards.py::TestBoardManager::test_update_board_success PASSED [ 21%]
tests/test_boards.py::TestBoardManager::test_list_boards_with_project_filter PASSED [ 21%]
tests/test_boards.py::TestBoardManager::test_list_boards_not_authenticated PASSED [ 21%]
tests/test_boards.py::TestBoardManager::test_update_board_no_fields PASSED [ 21%]
tests/test_boards.py::TestBoardManager::test_update_board_general_error PASSED [ 21%]
tests/test_users.py::TestUserManager::test_list_users_active_only PASSED [ 22%]
tests/test_users.py::TestUserManager::test_manage_user_permissions_remove_from_group PASSED [ 22%]
tests/test_users.py::TestUserManager::test_get_user_groups_not_authenticated PASSED [ 22%]
tests/test_users.py::TestUserManager::test_manage_user_permissions_not_found PASSED [ 22%]
tests/test_users.py::TestUserManager::test_list_users_success PASSED     [ 22%]
tests/test_users.py::TestUserManager::test_create_user_invalid_data PASSED [ 22%]
tests/test_users.py::TestUserManager::test_create_user_already_exists PASSED [ 22%]
tests/test_users.py::TestUserManager::test_get_user_success PASSED       [ 22%]
tests/test_users.py::TestUserManager::test_list_users_active_only_with_query PASSED [ 22%]
tests/test_users.py::TestUserManager::test_get_user_roles_success PASSED [ 22%]
tests/test_users.py::TestUserManager::test_list_users_with_query PASSED  [ 23%]
tests/test_users.py::TestUserManager::test_manage_user_permissions_missing_group_id PASSED [ 23%]
tests/test_users.py::TestUserManager::test_manage_user_permissions_unsupported_action PASSED [ 23%]
tests/test_users.py::TestUserManager::test_get_user_groups_error PASSED  [ 23%]
tests/test_users.py::TestUserManager::test_update_user_success PASSED    [ 23%]
tests/test_users.py::TestUserManager::test_list_users_insufficient_permissions PASSED [ 23%]
tests/test_users.py::TestUserManager::test_manage_user_permissions_add_to_group PASSED [ 23%]
tests/test_users.py::TestUserManager::test_create_user_insufficient_permissions PASSED [ 23%]
tests/test_users.py::TestUserManager::test_list_users_http_error PASSED  [ 23%]
tests/test_users.py::TestUserManager::test_update_user_not_found PASSED  [ 23%]
tests/test_users.py::TestUserManager::test_get_user_teams_success PASSED [ 24%]
tests/test_users.py::TestUserManager::test_list_users_not_authenticated PASSED [ 24%]
tests/test_users.py::TestUserManager::test_get_user_not_found PASSED     [ 24%]
tests/test_users.py::TestUserManager::test_get_user_groups_success PASSED [ 24%]
tests/test_users.py::TestUserManager::test_create_user_success PASSED    [ 24%]
tests/test_users.py::TestUserManager::test_update_user_no_changes PASSED [ 24%]
tests/test_users.py::TestUsersCLI::test_users_list_help PASSED           [ 24%]
tests/test_users.py::TestUsersCLI::test_users_update_show_details PASSED [ 24%]
tests/test_users.py::TestUsersCLI::test_users_permissions_help PASSED    [ 24%]
tests/test_users.py::TestUsersCLI::test_users_help PASSED                [ 24%]
tests/test_users.py::TestUsersCLI::test_users_update_help PASSED         [ 25%]
tests/test_users.py::TestUsersCLI::test_users_list_command PASSED        [ 25%]
tests/test_users.py::TestUsersCLI::test_users_permissions_command PASSED [ 25%]
tests/test_users.py::TestUsersCLI::test_users_create_command PASSED      [ 25%]
tests/test_users.py::TestUsersCLI::test_users_create_non_interactive_automation PASSED [ 25%]
tests/test_users.py::TestUsersCLI::test_users_create_help PASSED         [ 25%]
tests/test_users.py::TestUsersDisplayMethods::test_display_user_details_minimal_data PASSED [ 25%]
tests/test_users.py::TestUsersDisplayMethods::test_display_users_table_empty PASSED [ 25%]
tests/test_users.py::TestUsersDisplayMethods::test_display_user_details PASSED [ 25%]
tests/test_users.py::TestUsersDisplayMethods::test_display_users_table_with_data PASSED [ 25%]
tests/test_users.py::TestUsersDisplayMethods::test_display_user_details_guest_user PASSED [ 26%]
tests/test_users.py::TestUsersDisplayMethods::test_display_user_details_banned_user PASSED [ 26%]
tests/test_main.py::test_command_groups_exist[users] PASSED              [ 26%]
tests/test_main.py::test_command_groups_exist[articles] PASSED           [ 26%]
tests/test_main.py::test_command_groups_exist[config] PASSED             [ 26%]
tests/test_main.py::test_command_groups_exist[admin] PASSED              [ 26%]
tests/test_main.py::test_command_groups_exist[projects] PASSED           [ 26%]
tests/test_main.py::test_main_version PASSED                             [ 26%]
tests/test_main.py::test_command_groups_exist[reports] PASSED            [ 26%]
tests/test_main.py::test_command_groups_exist[issues] PASSED             [ 26%]
tests/test_main.py::test_command_groups_exist[auth] PASSED               [ 27%]
tests/test_main.py::test_command_groups_exist[completion] PASSED         [ 27%]
tests/test_main.py::test_command_groups_exist[boards] PASSED             [ 27%]
tests/test_main.py::test_main_help PASSED                                [ 27%]
tests/test_main.py::test_command_groups_exist[setup] PASSED              [ 27%]
tests/test_main.py::test_command_groups_exist[time] PASSED               [ 27%]
tests/test_main.py::TestCompletionCommands::test_completion_script_content_fish PASSED [ 27%]
tests/test_main.py::TestCompletionCommands::test_completion_script_content_zsh PASSED [ 27%]
tests/test_main.py::TestCompletionCommands::test_completion_script_content_bash PASSED [ 27%]
tests/test_main.py::TestCompletionCommands::test_completion_generation[zsh] PASSED [ 27%]
tests/test_main.py::TestCompletionCommands::test_completion_generation[bash] PASSED [ 28%]
tests/test_main.py::TestCompletionCommands::test_completion_install_flag[zsh] PASSED [ 28%]
tests/test_main.py::TestCompletionCommands::test_completion_invalid_shell PASSED [ 28%]
tests/test_main.py::TestCompletionCommands::test_completion_help PASSED  [ 28%]
tests/test_main.py::TestCompletionCommands::test_completion_install_flag[fish] PASSED [ 28%]
tests/test_main.py::TestCompletionCommands::test_completion_generation[powershell] PASSED [ 28%]
tests/test_main.py::TestCompletionCommands::test_completion_generation[fish] PASSED [ 28%]
tests/test_main.py::TestCompletionCommands::test_completion_install_flag[bash] PASSED [ 28%]
tests/test_main.py::TestCompletionCommands::test_completion_install_flag[powershell] PASSED [ 28%]
tests/test_main.py::TestCompletionCommands::test_completion_script_content_powershell PASSED [ 28%]
tests/test_main.py::TestCommandAliases::test_alias_completion_listing PASSED [ 29%]
tests/test_main.py::TestCommandAliases::test_main_command_aliases[p-projects] PASSED [ 29%]
tests/test_main.py::TestCommandAliases::test_main_command_aliases[a-articles] PASSED [ 29%]
tests/test_main.py::TestCommandAliases::test_main_command_aliases[i-issues] PASSED [ 29%]
tests/test_main.py::TestCommandAliases::test_alias_resolution_still_works PASSED [ 29%]
tests/test_main.py::TestCommandAliases::test_main_command_aliases[b-boards] PASSED [ 29%]
tests/test_main.py::TestCommandAliases::test_subcommand_aliases[i-c] PASSED [ 29%]
tests/test_main.py::TestCommandAliases::test_main_command_aliases[u-users] PASSED [ 29%]
tests/test_main.py::TestCommandAliases::test_main_command_aliases[cfg-config] PASSED [ 29%]
tests/test_main.py::TestCommandAliases::test_main_command_aliases[login-auth] PASSED [ 29%]
tests/test_main.py::TestCommandAliases::test_alias_list_in_help PASSED   [ 30%]
tests/test_main.py::TestCommandAliases::test_subcommand_aliases[i-u] PASSED [ 30%]
tests/test_main.py::TestCommandAliases::test_subcommand_aliases[i-l] PASSED [ 30%]
tests/test_main.py::TestCommandAliases::test_subcommand_aliases[i-s] PASSED [ 30%]
tests/test_main.py::TestCommandAliases::test_main_command_aliases[t-time] PASSED [ 30%]
tests/test_main.py::TestCommandAliases::test_main_command_aliases[c-config] PASSED [ 30%]
tests/test_main.py::TestConfigCommands::test_config_set_help PASSED      [ 30%]
tests/test_main.py::TestConfigCommands::test_config_list_masks_api_key PASSED [ 30%]
tests/test_main.py::TestConfigCommands::test_config_list_empty PASSED    [ 30%]
tests/test_main.py::TestConfigCommands::test_config_get_help PASSED      [ 30%]
tests/test_main.py::TestConfigCommands::test_config_list_help PASSED     [ 31%]
tests/test_main.py::TestConfigCommands::test_config_get_nonexistent PASSED [ 31%]
tests/test_main.py::TestConfigCommands::test_config_list_masks_sensitive_values PASSED [ 31%]
tests/test_main.py::TestConfigCommands::test_config_set_and_get PASSED   [ 31%]
tests/test_main.py::TestConfigCommands::test_config_help PASSED          [ 31%]
tests/test_main.py::TestConfigCommands::test_config_list_with_values PASSED [ 31%]
tests/integration/test_projects_integration.py::TestProjectsIntegration::test_project_workflow_states SKIPPED [ 31%]
tests/integration/test_projects_integration.py::TestProjectsIntegration::test_project_error_handling SKIPPED [ 31%]
tests/integration/test_projects_integration.py::TestProjectsIntegration::test_multiple_projects_handling SKIPPED [ 31%]
tests/integration/test_projects_integration.py::TestProjectsIntegration::test_project_permissions_check SKIPPED [ 31%]
tests/integration/test_projects_integration.py::TestProjectsIntegration::test_project_custom_fields SKIPPED [ 32%]
tests/integration/test_projects_integration.py::TestProjectsIntegration::test_get_specific_project SKIPPED [ 32%]
tests/integration/test_projects_integration.py::TestProjectsIntegration::test_list_projects SKIPPED [ 32%]
tests/integration/test_projects_integration.py::TestProjectsIntegration::test_project_metadata_retrieval SKIPPED [ 32%]
tests/integration/test_projects_integration.py::TestProjectsIntegration::test_project_search_and_filtering SKIPPED [ 32%]
tests/integration/test_projects_integration.py::TestProjectsIntegration::test_project_exists_check SKIPPED [ 32%]
tests/integration/test_projects_integration.py::TestProjectCustomFieldsIntegration::test_display_custom_fields_table_edge_cases SKIPPED [ 32%]
tests/integration/test_projects_integration.py::TestProjectCustomFieldsIntegration::test_display_custom_fields_table_real_data SKIPPED [ 32%]
tests/integration/test_projects_integration.py::TestProjectCustomFieldsIntegration::test_list_custom_fields_json_format SKIPPED [ 32%]
tests/integration/test_projects_integration.py::TestProjectCustomFieldsIntegration::test_list_custom_fields_real_project SKIPPED [ 32%]
tests/integration/test_projects_integration.py::TestProjectCustomFieldsIntegration::test_update_custom_field_permission_handling SKIPPED [ 33%]
tests/integration/test_projects_integration.py::TestProjectCustomFieldsIntegration::test_attach_custom_field_permission_handling SKIPPED [ 33%]
tests/integration/test_projects_integration.py::TestProjectCustomFieldsIntegration::test_list_custom_fields_with_options SKIPPED [ 33%]
tests/integration/test_projects_integration.py::TestProjectCustomFieldsIntegration::test_detach_custom_field_permission_handling SKIPPED [ 33%]
tests/integration/test_projects_integration.py::TestProjectCustomFieldsIntegration::test_custom_field_operations_error_handling SKIPPED [ 33%]
tests/test_issues.py::TestIssueManager::test_delete_link_success PASSED  [ 33%]
tests/test_issues.py::TestIssueManager::test_get_custom_field_value_text_field PASSED [ 33%]
tests/test_issues.py::TestIssueManager::test_get_or_create_tag_existing PASSED [ 33%]
tests/test_issues.py::TestIssueManager::test_create_issue_api_error PASSED [ 33%]
tests/test_issues.py::TestIssueManager::test_create_tag_success PASSED   [ 33%]
tests/test_issues.py::TestIssueManager::test_move_issue_project_not_found PASSED [ 34%]
tests/test_issues.py::TestIssueManager::test_get_custom_field_value_color_id PASSED [ 34%]
tests/test_issues.py::TestIssueManager::test_move_issue_no_params PASSED [ 34%]
tests/test_issues.py::TestIssueManager::test_remove_tag_success PASSED   [ 34%]
tests/test_issues.py::TestIssueManager::test_create_link_success PASSED  [ 34%]
tests/test_issues.py::TestIssueManager::test_get_custom_field_value_empty_dict PASSED [ 34%]
tests/test_issues.py::TestIssueManager::test_get_issue_success PASSED    [ 34%]
tests/test_issues.py::TestIssueManager::test_assign_issue_success PASSED [ 34%]
tests/test_issues.py::TestIssueManager::test_create_issue_project_not_found PASSED [ 34%]
tests/test_issues.py::TestIssueManager::test_get_custom_field_value_user_field PASSED [ 34%]
tests/test_issues.py::TestIssueManager::test_find_tag_by_name_success PASSED [ 35%]
tests/test_issues.py::TestIssueManager::test_display_issues_table_empty PASSED [ 35%]
tests/test_issues.py::TestIssueManager::test_get_custom_field_value_invalid_custom_fields PASSED [ 35%]
tests/test_issues.py::TestIssueManager::test_update_comment_success PASSED [ 35%]
tests/test_issues.py::TestIssueManager::test_display_link_types_table PASSED [ 35%]
tests/test_issues.py::TestIssueManager::test_list_issues_success PASSED  [ 35%]
tests/test_issues.py::TestIssueManager::test_list_link_types_success PASSED [ 35%]
tests/test_issues.py::TestIssueManager::test_get_custom_field_value_minutes PASSED [ 35%]
tests/test_issues.py::TestIssueManager::test_get_custom_field_value_avatar_url PASSED [ 35%]
tests/test_issues.py::TestIssueManager::test_display_attachments_table PASSED [ 35%]
tests/test_issues.py::TestIssueManager::test_delete_comment_success PASSED [ 36%]
tests/test_issues.py::TestIssueManager::test_display_issues_table PASSED [ 36%]
tests/test_issues.py::TestIssueManager::test_get_custom_field_value_build_link PASSED [ 36%]
tests/test_issues.py::TestIssueManager::test_update_issue_no_fields PASSED [ 36%]
tests/test_issues.py::TestIssueManager::test_get_custom_field_value_enum_field PASSED [ 36%]
tests/test_issues.py::TestIssueManager::test_upload_attachment_success PASSED [ 36%]
tests/test_issues.py::TestIssueManager::test_get_custom_field_value_no_custom_fields PASSED [ 36%]
tests/test_issues.py::TestIssueManager::test_download_attachment_success PASSED [ 36%]
tests/test_issues.py::TestIssueManager::test_add_tag_success PASSED      [ 36%]
tests/test_issues.py::TestIssueManager::test_get_custom_field_value_fallback_to_id PASSED [ 36%]
tests/test_issues.py::TestIssueManager::test_get_custom_field_value_null_field PASSED [ 37%]
tests/test_issues.py::TestIssueManager::test_get_custom_field_value_string_value PASSED [ 37%]
tests/test_issues.py::TestIssueManager::test_get_or_create_tag_new PASSED [ 37%]
tests/test_issues.py::TestIssueManager::test_display_issue_details PASSED [ 37%]
tests/test_issues.py::TestIssueManager::test_get_custom_field_value_complex_multi_value PASSED [ 37%]
tests/test_issues.py::TestIssueManager::test_move_issue_project_success PASSED [ 37%]
tests/test_issues.py::TestIssueManager::test_create_issue_success PASSED [ 37%]
tests/test_issues.py::TestIssueManager::test_create_issue_auth_error PASSED [ 37%]
tests/test_issues.py::TestIssueManager::test_find_tag_by_name_not_found PASSED [ 37%]
tests/test_issues.py::TestIssueManager::test_update_issue_state_custom_field_format PASSED [ 37%]
tests/test_issues.py::TestIssueManager::test_create_issue_success_friendly_id_fetch_fails PASSED [ 38%]
tests/test_issues.py::TestIssueManager::test_delete_issue_success PASSED [ 38%]
tests/test_issues.py::TestIssueManager::test_add_tag_with_creation PASSED [ 38%]
tests/test_issues.py::TestIssueManager::test_list_tags_success PASSED    [ 38%]
tests/test_issues.py::TestIssueManager::test_get_custom_field_value_localized_name PASSED [ 38%]
tests/test_issues.py::TestIssueManager::test_delete_attachment_success PASSED [ 38%]
tests/test_issues.py::TestIssueManager::test_display_comments_table PASSED [ 38%]
tests/test_issues.py::TestIssueManager::test_list_links_success PASSED   [ 38%]
tests/test_issues.py::TestIssueManager::test_update_issue_success PASSED [ 38%]
tests/test_issues.py::TestIssueManager::test_move_issue_state_success PASSED [ 38%]
tests/test_issues.py::TestIssueManager::test_list_attachments_success PASSED [ 39%]
tests/test_issues.py::TestIssueManager::test_get_custom_field_value_nonexistent_field PASSED [ 39%]
tests/test_issues.py::TestIssueManager::test_get_custom_field_value_is_resolved PASSED [ 39%]
tests/test_issues.py::TestIssueManager::test_search_issues_success PASSED [ 39%]
tests/test_issues.py::TestIssueManager::test_get_custom_field_value_presentation PASSED [ 39%]
tests/test_issues.py::TestIssueManager::test_get_custom_field_value_multi_value_field PASSED [ 39%]
tests/test_issues.py::TestIssueManager::test_remove_tag_not_found PASSED [ 39%]
tests/test_issues.py::TestIssueManager::test_get_custom_field_value_full_name_priority PASSED [ 39%]
tests/test_issues.py::TestIssueManager::test_display_links_table PASSED  [ 39%]
tests/test_issues.py::TestIssueManager::test_list_comments_success PASSED [ 39%]
tests/test_issues.py::TestIssueManager::test_list_issues_with_filters PASSED [ 40%]
tests/test_issues.py::TestIssueManager::test_add_comment_success PASSED  [ 40%]
tests/test_issues.py::TestIssuesCLI::test_issues_delete_command_with_confirm PASSED [ 40%]
tests/test_issues.py::TestIssuesCLI::test_issues_search_command PASSED   [ 40%]
tests/test_issues.py::TestIssuesCLI::test_issues_delete_non_interactive_automation PASSED [ 40%]
tests/test_issues.py::TestIssuesCLI::test_issues_attach_upload_command PASSED [ 40%]
tests/test_issues.py::TestIssuesCLI::test_command_api_error PASSED       [ 40%]
tests/test_issues.py::TestIssuesCLI::test_issues_assign_command PASSED   [ 40%]
tests/test_issues.py::TestIssuesCLI::test_issues_update_command PASSED   [ 40%]
tests/test_issues.py::TestIssuesCLI::test_issues_comments_add_command PASSED [ 40%]
tests/test_issues.py::TestIssuesCLI::test_issues_links_create_command PASSED [ 41%]
tests/test_issues.py::TestIssuesCLI::test_command_authentication_error PASSED [ 41%]
tests/test_issues.py::TestIssuesCLI::test_issues_tag_add_command PASSED  [ 41%]
tests/test_issues.py::TestIssuesCLI::test_issues_create_command PASSED   [ 41%]
tests/test_issues.py::TestIssuesCLI::test_issues_list_command PASSED     [ 41%]
tests/test_issues.py::TestIssueTablePagination::test_display_issues_table_paginated_basic PASSED [ 41%]
tests/test_issues.py::TestIssueTablePagination::test_display_issues_table_paginated_show_all PASSED [ 41%]
tests/test_issues.py::TestIssueTablePagination::test_paginated_table_truncates_long_summary PASSED [ 41%]
tests/test_issues.py::TestIssueTablePagination::test_get_field_with_fallback_built_in_string PASSED [ 41%]
tests/test_issues.py::TestIssueTablePagination::test_get_field_with_fallback_no_match PASSED [ 41%]
tests/test_issues.py::TestIssueTablePagination::test_get_field_with_fallback_built_in_dict PASSED [ 42%]
tests/test_issues.py::TestIssueTablePagination::test_display_issues_table_paginated_start_page PASSED [ 42%]
tests/test_issues.py::TestIssueTablePagination::test_paginated_table_user_friendly_ids PASSED [ 42%]
tests/test_issues.py::TestIssueTablePagination::test_display_issues_table_paginated_small_dataset PASSED [ 42%]
tests/test_issues.py::TestIssueTablePagination::test_display_issues_table_paginated_empty PASSED [ 42%]
tests/test_issues.py::TestIssueTablePagination::test_get_field_with_fallback_empty_built_in PASSED [ 42%]
tests/test_issues.py::TestIssueTablePagination::test_paginated_table_handles_custom_fields PASSED [ 42%]
tests/test_issues.py::TestIssueTablePagination::test_get_field_with_fallback_custom_field PASSED [ 42%]
tests/test_issues.py::TestIssueTablePagination::test_get_field_with_fallback_multiple_custom_names PASSED [ 42%]
tests/test_issues.py::TestIssueTablePagination::test_build_issues_table_format PASSED [ 42%]
tests/test_issues.py::TestIssueTablePagination::test_display_issues_table_paginated_navigation PASSED [ 43%]
tests/test_logging.py::TestLoggingIntegration::test_sensitive_data_filter_integration PASSED [ 43%]
tests/test_logging.py::TestLoggingIntegration::test_structlog_configuration PASSED [ 43%]
tests/test_logging.py::TestLogFilePath::test_get_log_file_path_without_xdg PASSED [ 43%]
tests/test_logging.py::TestLogFilePath::test_get_log_file_path_with_xdg PASSED [ 43%]
tests/test_logging.py::TestLogFilePath::test_get_log_file_path_creates_directory PASSED [ 43%]
tests/test_logging.py::TestSensitiveDataFilter::test_filter_password_in_message PASSED [ 43%]
tests/test_logging.py::TestSensitiveDataFilter::test_filter_bearer_token_in_message PASSED [ 43%]
tests/test_logging.py::TestSensitiveDataFilter::test_filter_sensitive_data_in_args PASSED [ 43%]
tests/test_logging.py::TestSensitiveDataFilter::test_filter_non_string_args PASSED [ 43%]
tests/test_logging.py::TestSensitiveDataFilter::test_filter_token_in_message PASSED [ 44%]
tests/test_logging.py::TestSensitiveDataFilter::test_filter_api_key_in_message PASSED [ 44%]
tests/test_logging.py::TestLoggerRetrieval::test_get_logger_with_name PASSED [ 44%]
tests/test_logging.py::TestLoggerRetrieval::test_get_logger_without_name PASSED [ 44%]
tests/test_logging.py::TestLoggingSetup::test_setup_logging_debug PASSED [ 44%]
tests/test_logging.py::TestLoggingSetup::test_setup_logging_specific_level PASSED [ 44%]
tests/test_logging.py::TestLoggingSetup::test_setup_logging_with_file PASSED [ 44%]
tests/test_logging.py::TestLoggingSetup::test_setup_logging_verbose PASSED [ 44%]
tests/test_logging.py::TestLoggingSetup::test_setup_logging_no_file PASSED [ 44%]
tests/test_logging.py::TestLoggingSetup::test_setup_logging_default PASSED [ 44%]
tests/test_logging.py::TestStructuredLogging::test_log_api_call_success PASSED [ 45%]
tests/test_logging.py::TestStructuredLogging::test_log_api_call_masks_token_in_url PASSED [ 45%]
tests/test_logging.py::TestStructuredLogging::test_log_operation PASSED  [ 45%]
tests/test_logging.py::TestStructuredLogging::test_log_api_call_error PASSED [ 45%]
tests/test_tutorial.py::TestTutorialProgress::test_tutorial_progress_creation PASSED [ 45%]
tests/test_tutorial.py::TestTutorialCommandExecution::test_step_with_command_example PASSED [ 45%]
tests/test_tutorial.py::TestTutorialCommandExecution::test_command_execution_success PASSED [ 45%]
tests/test_tutorial.py::TestTutorialCommandExecution::test_command_execution_failure PASSED [ 45%]
tests/test_tutorial.py::TestTutorialEngine::test_register_modules PASSED [ 45%]
tests/test_tutorial.py::TestTutorialEngine::test_tutorial_engine_creation PASSED [ 45%]
tests/test_tutorial.py::TestTutorialEngine::test_nonexistent_module PASSED [ 46%]
tests/test_tutorial.py::TestTutorialStep::test_tutorial_step_creation PASSED [ 46%]
tests/test_tutorial.py::TestProgressTracker::test_progress_tracker_creation PASSED [ 46%]
tests/test_tutorial.py::TestProgressTracker::test_save_and_load_progress PASSED [ 46%]
tests/test_tutorial.py::TestProgressTracker::test_reset_progress PASSED  [ 46%]
tests/test_tutorial.py::TestProgressTracker::test_completion_stats PASSED [ 46%]
tests/test_tutorial.py::TestTutorialModule::test_issues_tutorial_creation PASSED [ 46%]
tests/test_tutorial.py::TestTutorialModule::test_setup_tutorial_creation PASSED [ 46%]
tests/test_tutorial.py::TestTutorialModule::test_get_default_modules PASSED [ 46%]
tests/test_tutorial.py::TestTutorialShortcuts::test_action_mapping PASSED [ 46%]
tests/test_tutorial.py::TestTutorialShortcuts::test_choices_generation PASSED [ 47%]
tests/test_tutorial.py::TestTutorialShortcuts::test_prompt_text_generation PASSED [ 47%]
tests/test_tutorial.py::TestTutorialIntegration::test_full_tutorial_workflow PASSED [ 47%]
tests/test_articles.py::TestArticleSortFunctions::test_sort_articles_by_id_numeric PASSED [ 47%]
tests/test_articles.py::TestArticleSortFunctions::test_sort_articles_by_friendly_id PASSED [ 47%]
tests/test_articles.py::TestArticleSortFunctions::test_sort_articles_missing_fields PASSED [ 47%]
tests/test_articles.py::TestArticleSortFunctions::test_sort_articles_by_title_reverse PASSED [ 47%]
tests/test_articles.py::TestArticleSortFunctions::test_sort_articles_by_title_case_sensitive PASSED [ 47%]
tests/test_articles.py::TestArticleSortFunctions::test_sort_articles_empty_list PASSED [ 47%]
tests/test_articles.py::TestArticleSortFunctions::test_sort_articles_by_title PASSED [ 47%]
tests/test_articles.py::TestArticlesCLI::test_articles_attach_list_command PASSED [ 48%]
tests/test_articles.py::TestArticlesCLI::test_articles_comments_add_command PASSED [ 48%]
tests/test_articles.py::TestArticlesCLI::test_articles_create_command_both_content_and_file PASSED [ 48%]
tests/test_articles.py::TestArticlesCLI::test_articles_tree_command PASSED [ 48%]
tests/test_articles.py::TestArticlesCLI::test_articles_search_command PASSED [ 48%]
tests/test_articles.py::TestArticlesCLI::test_articles_create_command_no_content_or_file PASSED [ 48%]
tests/test_articles.py::TestArticlesCLI::test_articles_create_command_file_not_found PASSED [ 48%]
tests/test_articles.py::TestArticlesCLI::test_articles_create_command PASSED [ 48%]
tests/test_articles.py::TestArticlesCLI::test_articles_create_command_missing_project_id PASSED [ 48%]
tests/test_articles.py::TestArticlesCLI::test_articles_create_command_with_file PASSED [ 48%]
tests/test_articles.py::TestArticlesCLI::test_articles_comments_list_command PASSED [ 49%]
tests/test_articles.py::TestArticlesCLI::test_articles_list_command PASSED [ 49%]
tests/test_articles.py::TestArticlesCLI::test_articles_create_command_empty_file PASSED [ 49%]
tests/test_articles.py::TestArticleManager::test_display_article_details PASSED [ 49%]
tests/test_articles.py::TestArticleManager::test_search_articles_success PASSED [ 49%]
tests/test_articles.py::TestArticleManager::test_display_articles_table_empty PASSED [ 49%]
tests/test_articles.py::TestArticleManager::test_list_articles_empty_json_response PASSED [ 49%]
tests/test_articles.py::TestArticleManager::test_publish_article_success PASSED [ 49%]
tests/test_articles.py::TestArticleManager::test_not_authenticated_error PASSED [ 49%]
tests/test_articles.py::TestArticleManager::test_display_articles_tree_with_data PASSED [ 49%]
tests/test_articles.py::TestArticleManager::test_remove_tags_from_article_success PASSED [ 50%]
tests/test_articles.py::TestArticleManager::test_display_articles_tree_with_null_parent_article PASSED [ 50%]
tests/test_articles.py::TestArticleManager::test_get_article_comments_success PASSED [ 50%]
tests/test_articles.py::TestArticleManager::test_create_article_success PASSED [ 50%]
tests/test_articles.py::TestArticleManager::test_update_article_success PASSED [ 50%]
tests/test_articles.py::TestArticleManager::test_get_available_tags_auth_error PASSED [ 50%]
tests/test_articles.py::TestArticleManager::test_get_article_success PASSED [ 50%]
tests/test_articles.py::TestArticleManager::test_list_articles_with_parent_id_filtering PASSED [ 50%]
tests/test_articles.py::TestArticleManager::test_create_article_failure PASSED [ 50%]
tests/test_articles.py::TestArticleManager::test_list_articles_success PASSED [ 50%]
tests/test_articles.py::TestArticleManager::test_display_articles_table_with_data PASSED [ 51%]
tests/test_articles.py::TestArticleManager::test_get_article_tags_success PASSED [ 51%]
tests/test_articles.py::TestArticleManager::test_list_articles_invalid_json_response PASSED [ 51%]
tests/test_articles.py::TestArticleManager::test_add_tags_to_article_partial_success PASSED [ 51%]
tests/test_articles.py::TestArticleManager::test_display_articles_tree_empty PASSED [ 51%]
tests/test_articles.py::TestArticleManager::test_list_articles_with_parent_id_no_children PASSED [ 51%]
tests/test_articles.py::TestArticleManager::test_add_comment_success PASSED [ 51%]
tests/test_articles.py::TestArticleManager::test_get_available_tags_success PASSED [ 51%]
tests/test_articles.py::TestArticleManager::test_add_tags_to_article_success PASSED [ 51%]
tests/test_articles.py::TestArticleManager::test_list_articles_html_login_page PASSED [ 51%]
tests/test_articles.py::TestArticleManager::test_update_article_no_data PASSED [ 52%]
tests/test_articles.py::TestArticleManager::test_get_article_attachments_success PASSED [ 52%]
tests/test_articles.py::TestArticleManager::test_delete_article_success PASSED [ 52%]
tests/test_custom_field_manager.py::TestCustomFieldTypes::test_custom_field_value_types PASSED [ 52%]
tests/test_custom_field_manager.py::TestCustomFieldTypes::test_get_display_name PASSED [ 52%]
tests/test_custom_field_manager.py::TestCustomFieldTypes::test_issue_custom_field_types PASSED [ 52%]
tests/test_custom_field_manager.py::TestCustomFieldTypes::test_field_type_display_map_completeness PASSED [ 52%]
tests/test_custom_field_manager.py::TestCustomFieldTypes::test_project_custom_field_types PASSED [ 52%]
tests/test_custom_field_manager.py::TestCustomFieldManager::test_extract_field_value_user PASSED [ 52%]
tests/test_custom_field_manager.py::TestCustomFieldManager::test_create_project_enum_field_config PASSED [ 52%]
tests/test_custom_field_manager.py::TestCustomFieldManager::test_get_field_with_fallback_none PASSED [ 53%]
tests/test_custom_field_manager.py::TestCustomFieldManager::test_create_multi_enum_field PASSED [ 53%]
tests/test_custom_field_manager.py::TestCustomFieldManager::test_extract_dict_value_boolean_field PASSED [ 53%]
tests/test_custom_field_manager.py::TestCustomFieldManager::test_get_field_with_fallback_custom_field PASSED [ 53%]
tests/test_custom_field_manager.py::TestCustomFieldManager::test_get_field_with_fallback_primary_field PASSED [ 53%]
tests/test_custom_field_manager.py::TestCustomFieldManager::test_extract_user_field_info PASSED [ 53%]
tests/test_custom_field_manager.py::TestCustomFieldManager::test_create_single_enum_field PASSED [ 53%]
tests/test_custom_field_manager.py::TestCustomFieldManager::test_extract_dict_value_color_field PASSED [ 53%]
tests/test_custom_field_manager.py::TestCustomFieldManager::test_format_field_type_for_display PASSED [ 53%]
tests/test_custom_field_manager.py::TestCustomFieldManager::test_create_multi_user_field PASSED [ 53%]
tests/test_custom_field_manager.py::TestCustomFieldManager::test_create_single_user_field PASSED [ 54%]
tests/test_custom_field_manager.py::TestCustomFieldManager::test_extract_field_value_none_input PASSED [ 54%]
tests/test_custom_field_manager.py::TestCustomFieldManager::test_extract_field_value_multi_value PASSED [ 54%]
tests/test_custom_field_manager.py::TestCustomFieldManager::test_extract_dict_value_list_input PASSED [ 54%]
tests/test_custom_field_manager.py::TestCustomFieldManager::test_create_text_field PASSED [ 54%]
tests/test_custom_field_manager.py::TestCustomFieldManager::test_extract_field_value_not_found PASSED [ 54%]
tests/test_custom_field_manager.py::TestCustomFieldManager::test_extract_user_field_info_non_dict PASSED [ 54%]
tests/test_custom_field_manager.py::TestCustomFieldManager::test_extract_field_value_empty_list PASSED [ 54%]
tests/test_custom_field_manager.py::TestCustomFieldManager::test_extract_user_field_info_empty PASSED [ 54%]
tests/test_custom_field_manager.py::TestCustomFieldManager::test_extract_field_value_simple PASSED [ 54%]
tests/test_custom_field_manager.py::TestCustomFieldManager::test_extract_dict_value_primitive_input PASSED [ 55%]
tests/test_custom_field_manager.py::TestCustomFieldManager::test_create_project_enum_field_config_defaults PASSED [ 55%]
tests/test_custom_field_manager.py::TestCustomFieldManager::test_create_state_field PASSED [ 55%]
tests/test_custom_field_manager.py::TestCustomFieldManager::test_extract_dict_value_priority_order PASSED [ 55%]
tests/test_custom_field_manager.py::TestCustomFieldManager::test_get_field_id PASSED [ 55%]
tests/test_custom_field_manager.py::TestCustomFieldManager::test_is_multi_value_field PASSED [ 55%]
tests/integration/test_issues_integration.py::TestIssuesIntegration::test_create_read_update_delete_workflow SKIPPED [ 55%]
tests/integration/test_issues_integration.py::TestIssuesIntegration::test_issue_search_and_filtering SKIPPED [ 55%]
tests/integration/test_issues_integration.py::TestIssuesIntegration::test_create_and_delete_issue_workflow SKIPPED [ 55%]
tests/integration/test_issues_integration.py::TestIssuesIntegration::test_issue_custom_fields SKIPPED [ 55%]
tests/integration/test_issues_integration.py::TestIssuesIntegration::test_issue_state_transitions SKIPPED [ 56%]
tests/integration/test_issues_integration.py::TestIssuesIntegration::test_issue_comments SKIPPED [ 56%]
tests/integration/test_issues_integration.py::TestIssuesIntegration::test_issue_assignment SKIPPED [ 56%]
tests/test_client.py::TestExceptionHandling::test_client_error_no_retry PASSED [ 56%]
tests/test_client.py::TestExceptionHandling::test_os_error_retry_and_failure PASSED [ 56%]
tests/test_client.py::TestExceptionHandling::test_unexpected_error_handling PASSED [ 56%]
tests/test_client.py::TestExceptionHandling::test_logging_for_network_errors PASSED [ 56%]
tests/test_client.py::TestExceptionHandling::test_network_error_successful_retry PASSED [ 56%]
tests/test_client.py::TestExceptionHandling::test_network_error_retry_and_failure PASSED [ 56%]
tests/test_client.py::TestExceptionHandling::test_timeout_error_retry_and_failure PASSED [ 56%]
tests/test_client.py::TestExceptionHandling::test_logging_for_unexpected_errors PASSED [ 57%]
tests/test_client.py::TestExceptionHandling::test_server_error_retry_and_failure PASSED [ 57%]
tests/test_client.py::TestSSLVerificationWarnings::test_ssl_verification_case_insensitive PASSED [ 57%]
tests/test_client.py::TestSSLVerificationWarnings::test_ssl_verification_enabled_env_var_true PASSED [ 57%]
tests/test_client.py::TestSSLVerificationWarnings::test_ssl_verification_disabled_env_var_no PASSED [ 57%]
tests/test_client.py::TestSSLVerificationWarnings::test_ssl_verification_enabled_env_var_yes PASSED [ 57%]
tests/test_client.py::TestSSLVerificationWarnings::test_warning_stacklevel_correct PASSED [ 57%]
tests/test_client.py::TestSSLVerificationWarnings::test_ssl_verification_enabled_env_var_one PASSED [ 57%]
tests/test_client.py::TestSSLVerificationWarnings::test_client_manager_logging_info PASSED [ 57%]
tests/test_client.py::TestSSLVerificationWarnings::test_multiple_environment_values PASSED [ 57%]
tests/test_client.py::TestSSLVerificationWarnings::test_ssl_verification_enabled_by_default PASSED [ 58%]
tests/test_client.py::TestSSLVerificationWarnings::test_audit_logging_ssl_verification_disabled PASSED [ 58%]
tests/test_client.py::TestSSLVerificationWarnings::test_audit_logging_ssl_verification_default PASSED [ 58%]
tests/test_client.py::TestSSLVerificationWarnings::test_client_manager_singleton_behavior PASSED [ 58%]
tests/test_client.py::TestSSLVerificationWarnings::test_ssl_verification_disabled_env_var_off PASSED [ 58%]
tests/test_client.py::TestSSLVerificationWarnings::test_ssl_verification_disabled_env_var_false PASSED [ 58%]
tests/test_client.py::TestSSLVerificationWarnings::test_ssl_verification_disabled_env_var_zero PASSED [ 58%]
tests/test_client.py::TestSSLVerificationWarnings::test_audit_logging_ssl_verification_enabled PASSED [ 58%]
tests/test_client.py::TestHTTPClientManager::test_init_with_ssl_verification_enabled PASSED [ 58%]
tests/test_client.py::TestHTTPClientManager::test_ensure_client_ssl_verification_enabled PASSED [ 58%]
tests/test_client.py::TestHTTPClientManager::test_ensure_client_with_ssl_verification PASSED [ 59%]
tests/test_client.py::TestHTTPClientManager::test_init_with_ssl_verification_disabled PASSED [ 59%]
tests/test_client.py::TestHTTPClientManager::test_init_default_ssl_verification PASSED [ 59%]
tests/test_client.py::TestSecurityIntegration::test_audit_logger_import PASSED [ 59%]
tests/test_client.py::TestSecurityIntegration::test_reset_client_manager_async_cleanup PASSED [ 59%]
tests/test_client.py::TestSecurityIntegration::test_client_manager_reset_functionality PASSED [ 59%]
tests/test_client.py::TestSecurityIntegration::test_reset_client_manager_cleanup_error_handling PASSED [ 59%]
tests/test_client.py::TestSecurityIntegration::test_reset_client_manager_sync_compatibility PASSED [ 59%]
tests/test_client.py::TestSecurityIntegration::test_reset_client_manager_sync_without_event_loop PASSED [ 59%]
tests/integration/test_auth_integration.py::TestAuthIntegration::test_auth_config_with_real_credentials SKIPPED [ 59%]
tests/integration/test_auth_integration.py::TestAuthIntegration::test_auth_manager_load_credentials SKIPPED [ 60%]
tests/integration/test_auth_integration.py::TestAuthIntegration::test_invalid_token_handling SKIPPED [ 60%]
tests/integration/test_auth_integration.py::TestAuthIntegration::test_client_authentication SKIPPED [ 60%]
tests/integration/test_auth_integration.py::TestAuthIntegration::test_auth_manager_save_and_load_credentials SKIPPED [ 60%]
tests/integration/test_auth_integration.py::TestAuthIntegration::test_environment_variable_integration SKIPPED [ 60%]
tests/integration/test_auth_integration.py::TestAuthFlowIntegration::test_complete_auth_login_workflow SKIPPED [ 60%]
tests/integration/test_auth_integration.py::TestAuthFlowIntegration::test_authentication_error_recovery SKIPPED [ 60%]
tests/integration/test_auth_integration.py::TestAuthFlowIntegration::test_auth_logout_workflow SKIPPED [ 60%]
tests/integration/test_auth_integration.py::TestAuthFlowIntegration::test_auth_status_workflow SKIPPED [ 60%]
tests/integration/test_auth_integration.py::TestAuthFlowIntegration::test_session_persistence_workflow SKIPPED [ 60%]
tests/integration/test_auth_integration.py::TestAuthFlowIntegration::test_multi_instance_authentication SKIPPED [ 61%]
tests/integration/test_auth_integration.py::TestAuthFlowIntegration::test_missing_credentials_handling SKIPPED [ 61%]
tests/integration/test_auth_integration.py::TestAuthFlowIntegration::test_token_refresh_simulation SKIPPED [ 61%]
tests/integration/test_auth_integration.py::TestAuthFlowIntegration::test_environment_vs_config_file_precedence SKIPPED [ 61%]
tests/integration/test_auth_integration.py::TestAuthFlowIntegration::test_concurrent_authentication_sessions SKIPPED [ 61%]
tests/integration/test_auth_integration.py::TestAuthFlowIntegration::test_invalid_credentials_handling SKIPPED [ 61%]
tests/test_docker_tutorial.py::TestDockerUtils::test_pull_youtrack_image_failure PASSED [ 61%]
tests/test_docker_tutorial.py::TestDockerUtils::test_get_youtrack_url PASSED [ 61%]
tests/test_docker_tutorial.py::TestDockerUtils::test_get_wizard_url_with_token PASSED [ 61%]
tests/test_docker_tutorial.py::TestDockerUtils::test_start_youtrack_container_success PASSED [ 61%]
tests/test_docker_tutorial.py::TestDockerUtils::test_get_container_logs_not_found PASSED [ 62%]
tests/test_docker_tutorial.py::TestDockerUtils::test_check_docker_available_failure PASSED [ 62%]
tests/test_docker_tutorial.py::TestDockerUtils::test_remove_youtrack_container_success PASSED [ 62%]
tests/test_docker_tutorial.py::TestDockerUtils::test_start_youtrack_container_failure PASSED [ 62%]
tests/test_docker_tutorial.py::TestDockerUtils::test_get_setup_instructions PASSED [ 62%]
tests/test_docker_tutorial.py::TestDockerUtils::test_cleanup_youtrack_resources PASSED [ 62%]
tests/test_docker_tutorial.py::TestDockerUtils::test_get_setup_instructions_with_wizard_url PASSED [ 62%]
tests/test_docker_tutorial.py::TestDockerUtils::test_wait_for_youtrack_ready_success PASSED [ 62%]
tests/test_docker_tutorial.py::TestDockerUtils::test_check_docker_available_success PASSED [ 62%]
tests/test_docker_tutorial.py::TestDockerUtils::test_cleanup_youtrack_resources_no_data_removal PASSED [ 62%]
tests/test_docker_tutorial.py::TestDockerUtils::test_extract_wizard_token PASSED [ 63%]
tests/test_docker_tutorial.py::TestDockerUtils::test_stop_youtrack_container_not_found PASSED [ 63%]
tests/test_docker_tutorial.py::TestDockerUtils::test_check_port_available_failure PASSED [ 63%]
tests/test_docker_tutorial.py::TestDockerUtils::test_check_port_available_success PASSED [ 63%]
tests/test_docker_tutorial.py::TestDockerUtils::test_remove_youtrack_volume_success PASSED [ 63%]
tests/test_docker_tutorial.py::TestDockerUtils::test_stop_youtrack_container_success PASSED [ 63%]
tests/test_docker_tutorial.py::TestDockerUtils::test_pull_youtrack_image_success PASSED [ 63%]
tests/test_docker_tutorial.py::TestDockerUtils::test_get_wizard_url_no_token PASSED [ 63%]
tests/test_docker_tutorial.py::TestDockerUtils::test_get_container_logs_success PASSED [ 63%]
tests/test_docker_tutorial.py::TestDockerUtils::test_wait_for_youtrack_ready_timeout PASSED [ 63%]
tests/test_docker_tutorial.py::TestDockerTutorial::test_docker_tutorial_init PASSED [ 64%]
tests/test_docker_tutorial.py::TestDockerTutorial::test_image_pull_instructions_failure PASSED [ 64%]
tests/test_docker_tutorial.py::TestDockerTutorial::test_docker_check_instructions_failure PASSED [ 64%]
tests/test_docker_tutorial.py::TestDockerTutorial::test_port_check_instructions_failure PASSED [ 64%]
tests/test_docker_tutorial.py::TestDockerTutorial::test_cleanup_resources PASSED [ 64%]
tests/test_docker_tutorial.py::TestDockerTutorial::test_port_check_instructions_success PASSED [ 64%]
tests/test_docker_tutorial.py::TestDockerTutorial::test_cli_config_instructions PASSED [ 64%]
tests/test_docker_tutorial.py::TestDockerTutorial::test_docker_tutorial_create_steps PASSED [ 64%]
tests/test_docker_tutorial.py::TestDockerTutorial::test_image_pull_instructions_success PASSED [ 64%]
tests/test_docker_tutorial.py::TestDockerTutorial::test_container_start_instructions_success PASSED [ 64%]
tests/test_docker_tutorial.py::TestDockerTutorial::test_cleanup_instructions PASSED [ 65%]
tests/test_docker_tutorial.py::TestDockerTutorial::test_container_start_instructions_failure PASSED [ 65%]
tests/test_docker_tutorial.py::TestDockerTutorial::test_docker_check_instructions_success PASSED [ 65%]
tests/test_docker_tutorial.py::TestDockerTutorial::test_web_setup_instructions PASSED [ 65%]
tests/test_tutorial_executor.py::TestClickCommandExecutor::test_execute_command_destructive_with_confirmation PASSED [ 65%]
tests/test_tutorial_executor.py::TestClickCommandExecutor::test_parse_command_without_yt_prefix PASSED [ 65%]
tests/test_tutorial_executor.py::TestClickCommandExecutor::test_remove_allowed_command PASSED [ 65%]
tests/test_tutorial_executor.py::TestClickCommandExecutor::test_add_allowed_command PASSED [ 65%]
tests/test_tutorial_executor.py::TestClickCommandExecutor::test_execute_via_subprocess_exception PASSED [ 65%]
tests/test_tutorial_executor.py::TestClickCommandExecutor::test_is_destructive_command PASSED [ 65%]
tests/test_tutorial_executor.py::TestClickCommandExecutor::test_parse_command_basic PASSED [ 66%]
tests/test_tutorial_executor.py::TestClickCommandExecutor::test_parse_command_with_arguments PASSED [ 66%]
tests/test_tutorial_executor.py::TestClickCommandExecutor::test_is_command_allowed_basic_commands PASSED [ 66%]
tests/test_tutorial_executor.py::TestClickCommandExecutor::test_execute_command_blocked PASSED [ 66%]
tests/test_tutorial_executor.py::TestClickCommandExecutor::test_execute_via_subprocess_failure PASSED [ 66%]
tests/test_tutorial_executor.py::TestClickCommandExecutor::test_init PASSED [ 66%]
tests/test_tutorial_executor.py::TestClickCommandExecutor::test_execute_via_subprocess_success PASSED [ 66%]
tests/test_tutorial_executor.py::TestClickCommandExecutor::test_execute_command_allowed PASSED [ 66%]
tests/test_tutorial_executor.py::TestClickCommandExecutor::test_execute_command_failed PASSED [ 66%]
tests/test_tutorial_executor.py::TestClickCommandExecutor::test_is_command_allowed_blocked_commands PASSED [ 66%]
tests/test_tutorial_executor.py::TestClickCommandExecutor::test_parse_command_with_environment_setup PASSED [ 67%]
tests/test_tutorial_executor.py::TestClickCommandExecutorIntegration::test_real_command_parsing PASSED [ 67%]
tests/test_tutorial_executor.py::TestClickCommandExecutorIntegration::test_security_whitelist_coverage PASSED [ 67%]
tests/test_batch.py::TestBatchOperationManager::test_batch_create_issues_with_failures PASSED [ 67%]
tests/test_batch.py::TestBatchOperationManager::test_validate_json_file_invalid_format PASSED [ 67%]
tests/test_batch.py::TestBatchOperationManager::test_validate_json_file_create_valid PASSED [ 67%]
tests/test_batch.py::TestBatchOperationManager::test_display_validation_errors PASSED [ 67%]
tests/test_batch.py::TestBatchOperationManager::test_save_failed_operations_csv PASSED [ 67%]
tests/test_batch.py::TestBatchOperationManager::test_rollback_created_issues PASSED [ 67%]
tests/test_batch.py::TestBatchOperationManager::test_batch_create_issues_success PASSED [ 67%]
tests/test_batch.py::TestBatchOperationManager::test_validate_csv_file_create_missing_required PASSED [ 68%]
tests/test_batch.py::TestBatchOperationManager::test_batch_update_issues_success PASSED [ 68%]
tests/test_batch.py::TestBatchOperationManager::test_validate_csv_file_create_valid PASSED [ 68%]
tests/test_batch.py::TestBatchOperationManager::test_save_failed_operations_json PASSED [ 68%]
tests/test_batch.py::TestBatchOperationManager::test_validate_csv_file_update_valid PASSED [ 68%]
tests/test_batch.py::TestBatchOperationManager::test_batch_create_issues_dry_run PASSED [ 68%]
tests/test_batch.py::TestBatchOperationManager::test_validate_file_unsupported_format PASSED [ 68%]
tests/test_batch.py::TestBatchOperationManager::test_init PASSED         [ 68%]
tests/test_batch.py::TestBatchOperationManager::test_display_operation_summary PASSED [ 68%]
tests/test_batch.py::TestTemplateGeneration::test_generate_json_templates PASSED [ 68%]
tests/test_batch.py::TestTemplateGeneration::test_generate_templates_invalid_format PASSED [ 69%]
tests/test_batch.py::TestTemplateGeneration::test_generate_csv_templates PASSED [ 69%]
tests/test_batch.py::TestBatchModels::test_batch_issue_update_valid PASSED [ 69%]
tests/test_batch.py::TestBatchModels::test_batch_issue_create_minimal PASSED [ 69%]
tests/test_batch.py::TestBatchModels::test_batch_issue_create_missing_required PASSED [ 69%]
tests/test_batch.py::TestBatchModels::test_batch_operation_result PASSED [ 69%]
tests/test_batch.py::TestBatchModels::test_batch_issue_create_valid PASSED [ 69%]
tests/test_batch.py::TestBatchModels::test_batch_issue_update_missing_required PASSED [ 69%]
tests/test_batch.py::TestBatchValidationError::test_batch_validation_error_creation PASSED [ 69%]
tests/test_batch.py::TestBatchValidationError::test_batch_validation_error_empty_errors PASSED [ 69%]
tests/test_security.py::TestCredentialManager::test_init PASSED          [ 70%]
tests/test_security.py::TestCredentialManager::test_store_retrieve_credential PASSED [ 70%]
tests/test_security.py::TestCredentialManager::test_encrypt_decrypt_credential PASSED [ 70%]
tests/test_security.py::TestCredentialManager::test_get_encryption_key_existing PASSED [ 70%]
tests/test_security.py::TestCredentialManager::test_encrypt_disabled PASSED [ 70%]
tests/test_security.py::TestCredentialManager::test_delete_credential PASSED [ 70%]
tests/test_security.py::TestCredentialManager::test_get_encryption_key_new PASSED [ 70%]
tests/test_security.py::TestAuditLogger::test_init PASSED                [ 70%]
tests/test_security.py::TestAuditLogger::test_mask_sensitive_args PASSED [ 70%]
tests/test_security.py::TestAuditLogger::test_log_command PASSED         [ 70%]
tests/test_security.py::TestAuditLogger::test_audit_log_rotation PASSED  [ 71%]
tests/test_security.py::TestAuditLogger::test_log_command_disabled PASSED [ 71%]
tests/test_security.py::TestTokenManager::test_estimate_token_expiry PASSED [ 71%]
tests/test_security.py::TestTokenManager::test_check_token_expiration_none PASSED [ 71%]
tests/test_security.py::TestTokenManager::test_check_token_expiration_expiring PASSED [ 71%]
tests/test_security.py::TestTokenManager::test_check_token_expiration_valid PASSED [ 71%]
tests/test_security.py::TestTokenManager::test_check_token_expiration_expired PASSED [ 71%]
tests/test_security.py::TestTokenManager::test_init PASSED               [ 71%]
tests/test_security.py::TestTokenManager::test_check_token_expiration_disabled PASSED [ 71%]
tests/test_security.py::TestSensitiveDataMasking::test_mask_multiple_patterns PASSED [ 71%]
tests/test_security.py::TestSensitiveDataMasking::test_mask_passwords PASSED [ 72%]
tests/test_security.py::TestSensitiveDataMasking::test_mask_authorization PASSED [ 72%]
tests/test_security.py::TestSensitiveDataMasking::test_preserve_non_sensitive PASSED [ 72%]
tests/test_security.py::TestSensitiveDataMasking::test_mask_tokens PASSED [ 72%]
tests/test_security.py::TestSensitiveDataMasking::test_case_insensitive_masking PASSED [ 72%]
tests/test_security.py::TestSecurityPerformance::test_masking_performance PASSED [ 72%]
tests/test_security.py::TestSecurityPerformance::test_encryption_performance PASSED [ 72%]
tests/test_security.py::TestSecurityPerformance::test_audit_log_performance PASSED [ 72%]
tests/test_security.py::TestClientManagerSecurity::test_client_manager_ssl_verification PASSED [ 72%]
tests/test_security.py::TestClientManagerSecurity::test_get_client_manager_assertion PASSED [ 72%]
tests/test_security.py::TestSecurityConfig::test_custom_config PASSED    [ 73%]
tests/test_security.py::TestSecurityConfig::test_default_config PASSED   [ 73%]
tests/test_security.py::TestSecurityIntegration::test_audit_logger_masks_sensitive_data PASSED [ 73%]
tests/test_security.py::TestSecurityIntegration::test_auth_manager_integration PASSED [ 73%]
tests/integration/test_time_tracking_integration.py::TestTimeTrackingWorkflows::test_time_tracking_error_handling_workflow SKIPPED [ 73%]
tests/integration/test_time_tracking_integration.py::TestTimeTrackingWorkflows::test_multi_issue_time_tracking_workflow SKIPPED [ 73%]
tests/integration/test_time_tracking_integration.py::TestTimeTrackingWorkflows::test_historical_time_entry_workflow SKIPPED [ 73%]
tests/integration/test_time_tracking_integration.py::TestTimeTrackingWorkflows::test_time_summary_and_aggregation_workflow SKIPPED [ 73%]
tests/integration/test_time_tracking_integration.py::TestTimeTrackingWorkflows::test_time_tracking_export_workflow SKIPPED [ 73%]
tests/integration/test_time_tracking_integration.py::TestTimeTrackingWorkflows::test_time_tracking_date_range_analysis SKIPPED [ 73%]
tests/integration/test_time_tracking_integration.py::TestTimeTrackingWorkflows::test_time_listing_and_filtering_workflow SKIPPED [ 74%]
tests/integration/test_time_tracking_integration.py::TestTimeTrackingWorkflows::test_basic_time_logging_workflow SKIPPED [ 74%]
tests/integration/test_time_tracking_integration.py::TestTimeTrackingWorkflows::test_time_reporting_workflow SKIPPED [ 74%]
tests/integration/test_time_tracking_integration.py::TestTimeTrackingWorkflows::test_time_tracking_bulk_operations_workflow SKIPPED [ 74%]
tests/test_config.py::TestConfigManager::test_validate_config_valid_file PASSED [ 74%]
tests/test_config.py::TestConfigManager::test_get_config_path PASSED     [ 74%]
tests/test_config.py::TestConfigManager::test_unset_nonexistent_config PASSED [ 74%]
tests/test_config.py::TestConfigManager::test_get_config_with_env_override PASSED [ 74%]
tests/test_config.py::TestConfigManager::test_backwards_compatibility PASSED [ 74%]
tests/test_config.py::TestConfigManager::test_list_config_ignores_comments PASSED [ 74%]
tests/test_config.py::TestConfigManager::test_config_directory_creation PASSED [ 75%]
tests/test_config.py::TestConfigManager::test_list_config_empty PASSED   [ 75%]
tests/test_config.py::TestConfigManager::test_validate_config_partial_file PASSED [ 75%]
tests/test_config.py::TestConfigManager::test_list_config_with_values PASSED [ 75%]
tests/test_config.py::TestConfigManager::test_set_and_get_config PASSED  [ 75%]
tests/test_config.py::TestConfigManager::test_init_with_default_path PASSED [ 75%]
tests/test_config.py::TestConfigManager::test_unset_existing_config PASSED [ 75%]
tests/test_config.py::TestConfigManager::test_init_with_custom_path PASSED [ 75%]
tests/test_config.py::TestConfigManager::test_overwrite_existing_config PASSED [ 75%]
tests/test_config.py::TestConfigManager::test_validate_config_nonexistent_file PASSED [ 75%]
tests/test_config.py::TestConfigManager::test_set_config_with_special_characters PASSED [ 76%]
tests/test_config.py::TestConfigManager::test_ensure_config_file_exists PASSED [ 76%]
tests/test_config.py::TestConfigManager::test_validate_config_empty_file PASSED [ 76%]
tests/test_config.py::TestConfigManager::test_get_nonexistent_config PASSED [ 76%]
tests/test_config.py::TestConfigManager::test_list_config_with_malformed_file PASSED [ 76%]
tests/test_config.py::TestConfigManager::test_get_config_with_default PASSED [ 76%]
tests/test_config.py::TestConfigManager::test_list_config_with_complex_values PASSED [ 76%]
tests/test_pagination.py::TestCreatePaginatedDisplay::test_create_paginated_display_default PASSED [ 76%]
tests/test_pagination.py::TestCreatePaginatedDisplay::test_create_paginated_display PASSED [ 76%]
tests/test_pagination.py::TestPaginatedTableDisplay::test_init_default_page_size PASSED [ 76%]
tests/test_pagination.py::TestPaginatedTableDisplay::test_display_paginated_table_start_page PASSED [ 77%]
tests/test_pagination.py::TestPaginatedTableDisplay::test_display_paginated_table_navigation PASSED [ 77%]
tests/test_pagination.py::TestPaginatedTableDisplay::test_display_paginated_table_show_all PASSED [ 77%]
tests/test_pagination.py::TestPaginatedTableDisplay::test_get_user_action_edge_pages PASSED [ 77%]
tests/test_pagination.py::TestPaginatedTableDisplay::test_init PASSED    [ 77%]
tests/test_pagination.py::TestPaginatedTableDisplay::test_display_paginated_table_jump_to_page PASSED [ 77%]
tests/test_pagination.py::TestPaginatedTableDisplay::test_display_paginated_table_invalid_input PASSED [ 77%]
tests/test_pagination.py::TestPaginatedTableDisplay::test_display_paginated_table_single_page PASSED [ 77%]
tests/test_pagination.py::TestPaginatedTableDisplay::test_display_paginated_table_show_all_navigation PASSED [ 77%]
tests/test_pagination.py::TestPaginatedTableDisplay::test_display_paginated_table_empty_data PASSED [ 77%]
tests/test_pagination.py::TestPaginatedTableDisplay::test_eof_error_handling PASSED [ 78%]
tests/test_pagination.py::TestPaginatedTableDisplay::test_display_pagination_info PASSED [ 78%]
tests/test_pagination.py::TestPaginatedTableDisplay::test_get_user_action_navigation_options PASSED [ 78%]
tests/test_pagination.py::TestPaginatedTableDisplay::test_display_paginated_table_small_dataset PASSED [ 78%]
tests/test_pagination.py::TestPaginatedTableDisplay::test_keyboard_interrupt_handling PASSED [ 78%]
tests/integration/test_users_integration.py::TestUserManagementWorkflows::test_user_creation_and_update_workflow SKIPPED [ 78%]
tests/integration/test_users_integration.py::TestUserManagementWorkflows::test_user_permissions_workflow SKIPPED [ 78%]
tests/integration/test_users_integration.py::TestUserManagementWorkflows::test_user_search_and_filter_workflow SKIPPED [ 78%]
tests/integration/test_users_integration.py::TestUserManagementWorkflows::test_user_lifecycle_workflow SKIPPED [ 78%]
tests/integration/test_users_integration.py::TestUserManagementWorkflows::test_user_list_workflow SKIPPED [ 78%]
tests/integration/test_users_integration.py::TestUserManagementWorkflows::test_bulk_user_operations_workflow SKIPPED [ 79%]
tests/integration/test_users_integration.py::TestUserManagementWorkflows::test_user_group_management_workflow SKIPPED [ 79%]
tests/test_field_selection.py::TestFieldProfiles::test_full_profiles_include_standard PASSED [ 79%]
tests/test_field_selection.py::TestFieldProfiles::test_minimal_profiles_have_id PASSED [ 79%]
tests/test_field_selection.py::TestFieldProfiles::test_all_entities_have_profiles PASSED [ 79%]
tests/test_field_selection.py::TestFieldProfiles::test_standard_profiles_include_minimal PASSED [ 79%]
tests/test_field_selection.py::TestGlobalFieldSelector::test_get_field_selector_with_config PASSED [ 79%]
tests/test_field_selection.py::TestGlobalFieldSelector::test_get_field_selector_singleton PASSED [ 79%]
tests/test_field_selection.py::TestFieldSelectorWithConfig::test_save_default_to_config_success PASSED [ 79%]
tests/test_field_selection.py::TestFieldSelectorWithConfig::test_no_config_manager PASSED [ 79%]
tests/test_field_selection.py::TestFieldSelectorWithConfig::test_load_config_invalid_profile PASSED [ 80%]
tests/test_field_selection.py::TestFieldSelectorWithConfig::test_save_default_to_config_error PASSED [ 80%]
tests/test_field_selection.py::TestFieldSelectorWithConfig::test_load_config_defaults PASSED [ 80%]
tests/test_field_selection.py::TestFieldSelectorWithConfig::test_save_default_to_config_invalid_profile PASSED [ 80%]
tests/test_field_selection.py::TestFieldSelection::test_issues_standard_profile PASSED [ 80%]
tests/test_field_selection.py::TestFieldSelection::test_field_exclusion PASSED [ 80%]
tests/test_field_selection.py::TestFieldSelection::test_projects_minimal_vs_full PASSED [ 80%]
tests/test_field_selection.py::TestFieldSelection::test_issues_minimal_profile PASSED [ 80%]
tests/test_field_selection.py::TestFieldSelection::test_custom_fields_addition PASSED [ 80%]
tests/test_field_selection.py::TestFieldProfile::test_get_fields_string PASSED [ 80%]
tests/test_field_selection.py::TestFieldProfile::test_string_representation PASSED [ 81%]
tests/test_field_selection.py::TestFieldProfile::test_field_profile_creation PASSED [ 81%]
tests/test_field_selection.py::TestFieldProfile::test_get_fields_list PASSED [ 81%]
tests/test_field_selection.py::TestFieldSelector::test_validate_fields_unbalanced_parentheses PASSED [ 81%]
tests/test_field_selection.py::TestFieldSelector::test_initialization PASSED [ 81%]
tests/test_field_selection.py::TestFieldSelector::test_get_fields_full_profile PASSED [ 81%]
tests/test_field_selection.py::TestFieldSelector::test_set_default_profile_invalid_entity PASSED [ 81%]
tests/test_field_selection.py::TestFieldSelector::test_set_default_profile_invalid_profile PASSED [ 81%]
tests/test_field_selection.py::TestFieldSelector::test_set_default_profile_valid PASSED [ 81%]
tests/test_field_selection.py::TestFieldSelector::test_get_profile_valid PASSED [ 81%]
tests/test_field_selection.py::TestFieldSelector::test_get_fields_default_profile PASSED [ 82%]
tests/test_field_selection.py::TestFieldSelector::test_get_profile_invalid_entity PASSED [ 82%]
tests/test_field_selection.py::TestFieldSelector::test_get_fields_custom_fields PASSED [ 82%]
tests/test_field_selection.py::TestFieldSelector::test_get_fields_unknown_entity_fallback PASSED [ 82%]
tests/test_field_selection.py::TestFieldSelector::test_get_fields_exclude_fields PASSED [ 82%]
tests/test_field_selection.py::TestFieldSelector::test_get_profile_invalid_profile PASSED [ 82%]
tests/test_field_selection.py::TestFieldSelector::test_validate_fields_invalid_characters PASSED [ 82%]
tests/test_field_selection.py::TestFieldSelector::test_validate_fields_valid PASSED [ 82%]
tests/test_field_selection.py::TestFieldSelector::test_get_supported_entities PASSED [ 82%]
tests/test_field_selection.py::TestFieldSelector::test_get_available_profiles PASSED [ 82%]
tests/test_field_selection.py::TestFieldSelector::test_get_fields_minimal_profile PASSED [ 83%]
tests/test_field_selection.py::TestFieldSelector::test_validate_fields_empty PASSED [ 83%]
tests/test_auth.py::TestAuthManager::test_save_credentials PASSED        [ 83%]
tests/test_auth.py::TestAuthManager::test_clear_credentials_removes_config_keys PASSED [ 83%]
tests/test_auth.py::TestAuthManager::test_save_credentials_without_username PASSED [ 83%]
tests/test_auth.py::TestAuthManager::test_verify_credentials_success PASSED [ 83%]
tests/test_auth.py::TestAuthManager::test_clear_credentials PASSED       [ 83%]
tests/test_auth.py::TestAuthManager::test_save_credentials_with_keyring_persists_config PASSED [ 83%]
tests/test_auth.py::TestAuthManager::test_default_config_path PASSED     [ 83%]
tests/test_auth.py::TestAuthManager::test_load_credentials_incomplete PASSED [ 83%]
tests/test_auth.py::TestAuthManager::test_load_credentials PASSED        [ 84%]
tests/test_auth.py::TestAuthManager::test_clear_credentials_no_file PASSED [ 84%]
tests/test_auth.py::TestAuthManager::test_save_credentials_ssl_verification_persisted PASSED [ 84%]
tests/test_auth.py::TestAuthManager::test_verify_credentials_failure PASSED [ 84%]
tests/test_auth.py::TestAuthManager::test_load_credentials_without_username PASSED [ 84%]
tests/test_auth.py::TestAuthManager::test_load_credentials_missing PASSED [ 84%]
tests/test_auth.py::TestAuthConfig::test_valid_config PASSED             [ 84%]
tests/test_auth.py::TestAuthConfig::test_config_without_username PASSED  [ 84%]
tests/test_auth.py::TestAuthConfig::test_invalid_config PASSED           [ 84%]
tests/test_projects.py::TestProjectsDisplayMethods::test_display_projects_table_empty PASSED [ 84%]
tests/test_projects.py::TestProjectsDisplayMethods::test_display_project_details_minimal_data PASSED [ 85%]
tests/test_projects.py::TestProjectsDisplayMethods::test_display_project_details PASSED [ 85%]
tests/test_projects.py::TestProjectsDisplayMethods::test_display_projects_table_with_data PASSED [ 85%]
tests/test_projects.py::TestProjectManager::test_get_project_not_found PASSED [ 85%]
tests/test_projects.py::TestProjectManager::test_create_project_success PASSED [ 85%]
tests/test_projects.py::TestProjectManager::test_list_projects_http_error PASSED [ 85%]
tests/test_projects.py::TestProjectManager::test_list_projects_not_authenticated PASSED [ 85%]
tests/test_projects.py::TestProjectManager::test_create_project_insufficient_permissions PASSED [ 85%]
tests/test_projects.py::TestProjectManager::test_get_project_success PASSED [ 85%]
tests/test_projects.py::TestProjectManager::test_create_project_with_user_id_passthrough PASSED [ 85%]
tests/test_projects.py::TestProjectManager::test_archive_project_success PASSED [ 86%]
tests/test_projects.py::TestProjectManager::test_update_project_success PASSED [ 86%]
tests/test_projects.py::TestProjectManager::test_create_project_invalid_data PASSED [ 86%]
tests/test_projects.py::TestProjectManager::test_create_project_invalid_username PASSED [ 86%]
tests/test_projects.py::TestProjectManager::test_list_projects_with_archived PASSED [ 86%]
tests/test_projects.py::TestProjectManager::test_update_project_no_changes PASSED [ 86%]
tests/test_projects.py::TestProjectManager::test_update_project_with_username_resolution PASSED [ 86%]
tests/test_projects.py::TestProjectManager::test_list_projects_success PASSED [ 86%]
tests/test_projects.py::TestProjectManager::test_update_project_invalid_username PASSED [ 86%]
tests/test_projects.py::TestProjectManager::test_create_project_with_username_resolution PASSED [ 86%]
tests/test_projects.py::TestProjectCustomFields::test_list_custom_fields_not_authenticated PASSED [ 87%]
tests/test_projects.py::TestProjectCustomFields::test_list_custom_fields_success PASSED [ 87%]
tests/test_projects.py::TestProjectCustomFields::test_display_custom_fields_table_with_data PASSED [ 87%]
tests/test_projects.py::TestProjectCustomFields::test_detach_custom_field_not_found PASSED [ 87%]
tests/test_projects.py::TestProjectCustomFields::test_attach_custom_field_success PASSED [ 87%]
tests/test_projects.py::TestProjectCustomFields::test_attach_custom_field_already_exists PASSED [ 87%]
tests/test_projects.py::TestProjectCustomFields::test_display_custom_fields_table_empty PASSED [ 87%]
tests/test_projects.py::TestProjectCustomFields::test_detach_custom_field_success PASSED [ 87%]
tests/test_projects.py::TestProjectCustomFields::test_display_custom_fields_table_shows_correct_field_types PASSED [ 87%]
tests/test_projects.py::TestProjectCustomFields::test_update_custom_field_no_changes PASSED [ 87%]
tests/test_projects.py::TestProjectCustomFields::test_update_custom_field_success PASSED [ 88%]
tests/test_projects.py::TestProjectCustomFieldsCLI::test_projects_fields_help PASSED [ 88%]
tests/test_projects.py::TestProjectCustomFieldsCLI::test_projects_fields_update_help PASSED [ 88%]
tests/test_projects.py::TestProjectCustomFieldsCLI::test_projects_fields_detach_help PASSED [ 88%]
tests/test_projects.py::TestProjectCustomFieldsCLI::test_projects_fields_list_help PASSED [ 88%]
tests/test_projects.py::TestProjectCustomFieldsCLI::test_projects_fields_attach_command PASSED [ 88%]
tests/test_projects.py::TestProjectCustomFieldsCLI::test_projects_fields_attach_help PASSED [ 88%]
tests/test_projects.py::TestProjectCustomFieldsCLI::test_projects_fields_list_command PASSED [ 88%]
tests/test_projects.py::TestProjectsCLI::test_projects_create_non_interactive_automation PASSED [ 88%]
tests/test_projects.py::TestProjectsCLI::test_projects_archive_command PASSED [ 88%]
tests/test_projects.py::TestProjectsCLI::test_projects_configure_show_details PASSED [ 89%]
tests/test_projects.py::TestProjectsCLI::test_projects_list_help PASSED  [ 89%]
tests/test_projects.py::TestProjectsCLI::test_projects_create_command PASSED [ 89%]
tests/test_projects.py::TestProjectsCLI::test_projects_help PASSED       [ 89%]
tests/test_projects.py::TestProjectsCLI::test_projects_list_command PASSED [ 89%]
tests/test_projects.py::TestProjectsCLI::test_projects_configure_help PASSED [ 89%]
tests/test_projects.py::TestProjectsCLI::test_projects_create_help PASSED [ 89%]
tests/test_projects.py::TestProjectsCLI::test_projects_archive_help PASSED [ 89%]
tests/test_cache.py::TestPredefinedCacheDecorators::test_cache_boards_decorator PASSED [ 89%]
tests/test_cache.py::TestPredefinedCacheDecorators::test_cache_fields_decorator PASSED [ 89%]
tests/test_cache.py::TestPredefinedCacheDecorators::test_cache_projects_decorator PASSED [ 90%]
tests/test_cache.py::TestPredefinedCacheDecorators::test_cache_users_decorator PASSED [ 90%]
tests/test_cache.py::TestCache::test_cache_delete_nonexistent_key PASSED [ 90%]
tests/test_cache.py::TestCache::test_cache_stats_with_expired_entries PASSED [ 90%]
tests/test_cache.py::TestCache::test_cache_cleanup_expired PASSED        [ 90%]
tests/test_cache.py::TestCache::test_cache_cleanup_no_expired_entries PASSED [ 90%]
tests/test_cache.py::TestCache::test_cache_get_nonexistent_key PASSED    [ 90%]
tests/test_cache.py::TestCache::test_cache_delete_existing_key PASSED    [ 90%]
tests/test_cache.py::TestCache::test_cache_set_and_get PASSED            [ 90%]
tests/test_cache.py::TestCache::test_cache_set_with_custom_ttl PASSED    [ 90%]
tests/test_cache.py::TestCache::test_cache_clear PASSED                  [ 91%]
tests/test_cache.py::TestCache::test_cache_get_expired_entry PASSED      [ 91%]
tests/test_cache.py::TestCache::test_cache_initialization PASSED         [ 91%]
tests/test_cache.py::TestCache::test_cache_concurrent_access PASSED      [ 91%]
tests/test_cache.py::TestCache::test_cache_stats_empty_cache PASSED      [ 91%]
tests/test_cache.py::TestCache::test_cache_stats_with_entries PASSED     [ 91%]
tests/test_cache.py::TestCache::test_cache_set_with_default_ttl PASSED   [ 91%]
tests/test_cache.py::TestCacheEntry::test_cache_entry_not_expired PASSED [ 91%]
tests/test_cache.py::TestCacheEntry::test_cache_entry_creation PASSED    [ 91%]
tests/test_cache.py::TestCacheEntry::test_cache_entry_just_expired PASSED [ 91%]
tests/test_cache.py::TestCacheEntry::test_cache_entry_expired PASSED     [ 92%]
tests/test_cache.py::TestCachedDecorator::test_cached_decorator_different_args PASSED [ 92%]
tests/test_cache.py::TestCachedDecorator::test_cached_decorator_ttl_expiration PASSED [ 92%]
tests/test_cache.py::TestCachedDecorator::test_cached_decorator_with_kwargs PASSED [ 92%]
tests/test_cache.py::TestCachedDecorator::test_cached_decorator_basic PASSED [ 92%]
tests/test_cache.py::TestCachedDecorator::test_cached_decorator_with_key_prefix PASSED [ 92%]
tests/test_cache.py::TestGlobalCacheFunctions::test_clear_cache_function PASSED [ 92%]
tests/test_cache.py::TestGlobalCacheFunctions::test_get_cache_singleton PASSED [ 92%]
tests/test_error_improvements.py::TestParameterValidation::test_issue_id_validation PASSED [ 92%]
tests/test_error_improvements.py::TestParameterValidation::test_project_id_validation PASSED [ 92%]
tests/test_error_improvements.py::TestCommandValidation::test_command_validator_suggestions PASSED [ 93%]
tests/test_error_improvements.py::TestCommandValidation::test_main_cli_version_suggestion PASSED [ 93%]
tests/test_error_improvements.py::TestErrorHandling::test_handle_error_with_parameter_error PASSED [ 93%]
tests/test_error_improvements.py::TestErrorHandling::test_handle_error_with_command_validation_error PASSED [ 93%]
tests/test_error_improvements.py::TestErrorHandling::test_handle_error_with_usage_error PASSED [ 93%]
tests/test_error_improvements.py::TestCliIntegration::test_comments_create_suggestion PASSED [ 93%]
tests/test_error_improvements.py::TestCliIntegration::test_issues_create_with_invalid_project_id PASSED [ 93%]
tests/test_error_improvements.py::TestRealWorldScenarios::test_typo_in_command_name PASSED [ 93%]
tests/test_error_improvements.py::TestRealWorldScenarios::test_missing_required_arguments PASSED [ 93%]
tests/test_error_improvements.py::TestRealWorldScenarios::test_invalid_option_values PASSED [ 93%]
tests/test_exceptions.py::TestValidationError::test_validation_error_with_field PASSED [ 94%]
tests/test_exceptions.py::TestValidationError::test_validation_error_without_field PASSED [ 94%]
tests/test_exceptions.py::TestValidationError::test_validation_error_inheritance PASSED [ 94%]
tests/test_exceptions.py::TestYouTrackError::test_base_exception_inheritance PASSED [ 94%]
tests/test_exceptions.py::TestYouTrackError::test_base_exception_creation PASSED [ 94%]
tests/test_exceptions.py::TestYouTrackError::test_base_exception_with_suggestion PASSED [ 94%]
tests/test_exceptions.py::TestRateLimitError::test_rate_limit_error_inheritance PASSED [ 94%]
tests/test_exceptions.py::TestRateLimitError::test_rate_limit_error_without_retry_after PASSED [ 94%]
tests/test_exceptions.py::TestRateLimitError::test_rate_limit_error_with_retry_after PASSED [ 94%]
tests/test_exceptions.py::TestPermissionError::test_permission_error_inheritance PASSED [ 94%]
tests/test_exceptions.py::TestPermissionError::test_permission_error_with_resource PASSED [ 95%]
tests/test_exceptions.py::TestPermissionError::test_permission_error_without_resource PASSED [ 95%]
tests/test_exceptions.py::TestExceptionUsagePatterns::test_re_raising_with_additional_context PASSED [ 95%]
tests/test_exceptions.py::TestExceptionUsagePatterns::test_raising_and_catching_specific_exceptions PASSED [ 95%]
tests/test_exceptions.py::TestExceptionUsagePatterns::test_exception_chaining PASSED [ 95%]
tests/test_exceptions.py::TestYouTrackServerError::test_server_error_custom_message PASSED [ 95%]
tests/test_exceptions.py::TestYouTrackServerError::test_server_error_inheritance PASSED [ 95%]
tests/test_exceptions.py::TestYouTrackServerError::test_server_error_with_status_code PASSED [ 95%]
tests/test_exceptions.py::TestYouTrackServerError::test_server_error_default PASSED [ 95%]
tests/test_exceptions.py::TestYouTrackNetworkError::test_network_error_custom_message PASSED [ 95%]
tests/test_exceptions.py::TestYouTrackNetworkError::test_network_error_inheritance PASSED [ 96%]
tests/test_exceptions.py::TestYouTrackNetworkError::test_network_error_default PASSED [ 96%]
tests/test_exceptions.py::TestExceptionHierarchy::test_exception_types_are_distinct PASSED [ 96%]
tests/test_exceptions.py::TestExceptionHierarchy::test_exception_catching_by_base_class PASSED [ 96%]
tests/test_exceptions.py::TestExceptionHierarchy::test_exception_catching_by_specific_type PASSED [ 96%]
tests/test_exceptions.py::TestExceptionHierarchy::test_all_exceptions_inherit_from_youtrack_error PASSED [ 96%]
tests/test_exceptions.py::TestConnectionError::test_connection_error_default PASSED [ 96%]
tests/test_exceptions.py::TestConnectionError::test_connection_error_custom_message PASSED [ 96%]
tests/test_exceptions.py::TestConnectionError::test_connection_error_inheritance PASSED [ 96%]
tests/test_exceptions.py::TestExceptionMessages::test_all_exceptions_have_messages PASSED [ 96%]
tests/test_exceptions.py::TestExceptionMessages::test_exception_string_representations PASSED [ 97%]
tests/test_exceptions.py::TestExceptionMessages::test_all_exceptions_have_suggestions PASSED [ 97%]
tests/test_exceptions.py::TestAuthenticationError::test_authentication_error_default PASSED [ 97%]
tests/test_exceptions.py::TestAuthenticationError::test_authentication_error_inheritance PASSED [ 97%]
tests/test_exceptions.py::TestAuthenticationError::test_authentication_error_custom_message PASSED [ 97%]
tests/test_exceptions.py::TestNotFoundError::test_not_found_error_creation PASSED [ 97%]
tests/test_exceptions.py::TestNotFoundError::test_not_found_error_different_resource PASSED [ 97%]
tests/test_exceptions.py::TestNotFoundError::test_not_found_error_inheritance PASSED [ 97%]
tests/test_time.py::TestTimeManager::test_log_time_api_error PASSED      [ 97%]
tests/test_time.py::TestTimeManager::test_get_time_entries_empty_response PASSED [ 97%]
tests/test_time.py::TestTimeManager::test_log_time_success PASSED        [ 98%]
tests/test_time.py::TestTimeManager::test_display_time_entries_none_input PASSED [ 98%]
tests/test_time.py::TestTimeManager::test_aggregate_time_data_by_issue PASSED [ 98%]
tests/test_time.py::TestTimeManager::test_parse_date_formats PASSED      [ 98%]
tests/test_time.py::TestTimeManager::test_parse_date_returns_timestamp PASSED [ 98%]
tests/test_time.py::TestTimeManager::test_get_time_entries_success PASSED [ 98%]
tests/test_time.py::TestTimeManager::test_log_time_no_credentials PASSED [ 98%]
tests/test_time.py::TestTimeManager::test_display_time_entries_empty_list PASSED [ 98%]
tests/test_time.py::TestTimeManager::test_aggregate_time_data_by_type PASSED [ 98%]
tests/test_time.py::TestTimeManager::test_parse_duration_invalid_formats PASSED [ 98%]
tests/test_time.py::TestTimeManager::test_get_time_summary_success PASSED [ 99%]
tests/test_time.py::TestTimeManager::test_log_time_invalid_duration PASSED [ 99%]
tests/test_time.py::TestTimeManager::test_parse_duration_valid_formats PASSED [ 99%]
tests/test_time.py::TestTimeManager::test_get_time_entries_none_response PASSED [ 99%]
tests/test_time.py::TestTimeManager::test_aggregate_time_data_by_user PASSED [ 99%]
tests/test_time.py::TestTimeManager::test_display_time_entries_non_list_input PASSED [ 99%]
tests/test_time.py::TestTimeCommands::test_list_command_success PASSED   [ 99%]
tests/test_time.py::TestTimeCommands::test_list_command_error PASSED     [ 99%]
tests/test_time.py::TestTimeCommands::test_list_command_no_issue_filter PASSED [ 99%]
tests/test_time.py::TestTimeCommands::test_list_command_with_json_format PASSED [100%]/Users/ryan/Documents/github/yt-cli/.venv/lib/python3.13/site-packages/coverage/inorout.py:509: CoverageWarning: Module yt_cli was never imported. (module-not-imported)
  self.warn(f"Module {pkg} was never imported.", slug="module-not-imported")
/Users/ryan/Documents/github/yt-cli/.venv/lib/python3.13/site-packages/coverage/control.py:915: CoverageWarning: No data was collected. (no-data-collected)
  self._warn("No data was collected.", slug="no-data-collected")
/Users/ryan/Documents/github/yt-cli/.venv/lib/python3.13/site-packages/pytest_cov/plugin.py:358: CovReportWarning: Failed to generate report: No data to report.

  warnings.warn(CovReportWarning(message), stacklevel=1)

WARNING: Failed to generate report: No data to report.



=============================== warnings summary ===============================
tests/test_reports.py::TestReportsCommands::test_velocity_command_help
  /Users/ryan/.local/share/uv/python/cpython-3.13.0-macos-aarch64-none/lib/python3.13/json/encoder.py:263: RuntimeWarning: coroutine 'reports_burndown.<locals>.run_burndown' was never awaited
    def _make_iterencode(markers, _default, _encoder, _indent, _floatstr,
  Enable tracemalloc to get traceback where the object was allocated.
  See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info.

tests/test_reports.py::TestReportsCommands::test_velocity_command_help
  /Users/ryan/.local/share/uv/python/cpython-3.13.0-macos-aarch64-none/lib/python3.13/json/encoder.py:263: RuntimeWarning: coroutine 'reports_velocity.<locals>.run_velocity' was never awaited
    def _make_iterencode(markers, _default, _encoder, _indent, _floatstr,
  Enable tracemalloc to get traceback where the object was allocated.
  See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info.

tests/test_admin.py::TestAdminCommands::test_admin_global_settings_set_success
  /Users/ryan/.local/share/uv/python/cpython-3.13.0-macos-aarch64-none/lib/python3.13/json/encoder.py:414: RuntimeWarning: coroutine 'create.<locals>.run_create_group' was never awaited
    def _iterencode(o, _current_indent_level):
  Enable tracemalloc to get traceback where the object was allocated.
  See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info.

tests/test_admin.py::TestAdminCommands::test_admin_global_settings_set_success
  /Users/ryan/.local/share/uv/python/cpython-3.13.0-macos-aarch64-none/lib/python3.13/json/encoder.py:414: RuntimeWarning: coroutine 'clear_cache.<locals>.run_clear_cache' was never awaited
    def _iterencode(o, _current_indent_level):
  Enable tracemalloc to get traceback where the object was allocated.
  See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info.

tests/test_admin.py::TestAdminCommands::test_admin_global_settings_set_success
  /Users/ryan/.local/share/uv/python/cpython-3.13.0-macos-aarch64-none/lib/python3.13/json/encoder.py:414: RuntimeWarning: coroutine 'list_fields.<locals>.run_list_fields' was never awaited
    def _iterencode(o, _current_indent_level):
  Enable tracemalloc to get traceback where the object was allocated.
  See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info.

tests/test_admin.py::TestAdminCommands::test_admin_license_show_success
  /Users/ryan/.local/share/uv/python/cpython-3.13.0-macos-aarch64-none/lib/python3.13/json/encoder.py:414: RuntimeWarning: coroutine 'set_setting.<locals>.run_set_setting' was never awaited
    def _iterencode(o, _current_indent_level):
  Enable tracemalloc to get traceback where the object was allocated.
  See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info.

tests/test_admin.py::TestAdminCommands::test_admin_license_show_success
  /Users/ryan/.local/share/uv/python/cpython-3.13.0-macos-aarch64-none/lib/python3.13/json/encoder.py:414: RuntimeWarning: coroutine 'usage.<locals>.run_license_usage' was never awaited
    def _iterencode(o, _current_indent_level):
  Enable tracemalloc to get traceback where the object was allocated.
  See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info.

tests/test_admin.py::TestAdminCommands::test_admin_license_show_success
  /Users/ryan/.local/share/uv/python/cpython-3.13.0-macos-aarch64-none/lib/python3.13/json/encoder.py:414: RuntimeWarning: coroutine 'list_groups.<locals>.run_list_groups' was never awaited
    def _iterencode(o, _current_indent_level):
  Enable tracemalloc to get traceback where the object was allocated.
  See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info.

tests/test_admin.py::TestAdminCommands::test_admin_license_show_success
  /Users/ryan/.local/share/uv/python/cpython-3.13.0-macos-aarch64-none/lib/python3.13/json/encoder.py:414: RuntimeWarning: coroutine 'check.<locals>.run_health_check' was never awaited
    def _iterencode(o, _current_indent_level):
  Enable tracemalloc to get traceback where the object was allocated.
  See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info.

tests/test_admin.py::TestAdminCommands::test_admin_license_show_success
  /Users/ryan/.local/share/uv/python/cpython-3.13.0-macos-aarch64-none/lib/python3.13/json/encoder.py:414: RuntimeWarning: coroutine 'get_settings.<locals>.run_get_settings' was never awaited
    def _iterencode(o, _current_indent_level):
  Enable tracemalloc to get traceback where the object was allocated.
  See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info.

tests/test_users.py::TestUsersCLI::test_users_permissions_command
  /Users/ryan/.local/share/uv/python/cpython-3.13.0-macos-aarch64-none/lib/python3.13/json/encoder.py:414: RuntimeWarning: coroutine 'show.<locals>.run_license_info' was never awaited
    def _iterencode(o, _current_indent_level):
  Enable tracemalloc to get traceback where the object was allocated.
  See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info.

tests/test_issues.py::TestIssuesCLI::test_issues_update_command
  /Users/ryan/.local/share/uv/python/cpython-3.13.0-macos-aarch64-none/lib/python3.13/json/encoder.py:414: RuntimeWarning: coroutine 'IssueManager.delete_issue' was never awaited
    def _iterencode(o, _current_indent_level):
  Enable tracemalloc to get traceback where the object was allocated.
  See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info.

tests/test_issues.py::TestIssuesCLI::test_issues_update_command
  /Users/ryan/.local/share/uv/python/cpython-3.13.0-macos-aarch64-none/lib/python3.13/json/encoder.py:414: RuntimeWarning: coroutine 'IssueManager.search_issues' was never awaited
    def _iterencode(o, _current_indent_level):
  Enable tracemalloc to get traceback where the object was allocated.
  See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info.

tests/test_issues.py::TestIssuesCLI::test_issues_update_command
  /Users/ryan/.local/share/uv/python/cpython-3.13.0-macos-aarch64-none/lib/python3.13/json/encoder.py:414: RuntimeWarning: coroutine 'IssueManager.upload_attachment' was never awaited
    def _iterencode(o, _current_indent_level):
  Enable tracemalloc to get traceback where the object was allocated.
  See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info.

tests/test_issues.py::TestIssuesCLI::test_issues_update_command
tests/test_articles.py::TestArticlesCLI::test_articles_tree_command
  /Users/ryan/.local/share/uv/python/cpython-3.13.0-macos-aarch64-none/lib/python3.13/json/encoder.py:414: RuntimeWarning: coroutine 'IssueManager.list_issues' was never awaited
    def _iterencode(o, _current_indent_level):
  Enable tracemalloc to get traceback where the object was allocated.
  See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info.

tests/test_issues.py::TestIssuesCLI::test_issues_update_command
  /Users/ryan/.local/share/uv/python/cpython-3.13.0-macos-aarch64-none/lib/python3.13/json/encoder.py:414: RuntimeWarning: coroutine 'IssueManager.assign_issue' was never awaited
    def _iterencode(o, _current_indent_level):
  Enable tracemalloc to get traceback where the object was allocated.
  See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info.

tests/test_articles.py::TestArticlesCLI::test_articles_tree_command
  /Users/ryan/.local/share/uv/python/cpython-3.13.0-macos-aarch64-none/lib/python3.13/json/encoder.py:414: RuntimeWarning: coroutine 'IssueManager.update_issue' was never awaited
    def _iterencode(o, _current_indent_level):
  Enable tracemalloc to get traceback where the object was allocated.
  See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info./Users/ryan/Documents/github/yt-cli/.venv/lib/python3.13/site-packages/_pytest/unraisableexception.py:33: RuntimeWarning: coroutine 'TimeManager.get_time_entries' was never awaited
  gc.collect()
RuntimeWarning: Enable tracemalloc to get the object allocation traceback


tests/test_articles.py::TestArticlesCLI::test_articles_tree_command
  /Users/ryan/.local/share/uv/python/cpython-3.13.0-macos-aarch64-none/lib/python3.13/json/encoder.py:414: RuntimeWarning: coroutine 'IssueManager.add_comment' was never awaited
    def _iterencode(o, _current_indent_level):
  Enable tracemalloc to get traceback where the object was allocated.
  See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info.

tests/test_articles.py::TestArticlesCLI::test_articles_tree_command
  /Users/ryan/.local/share/uv/python/cpython-3.13.0-macos-aarch64-none/lib/python3.13/json/encoder.py:414: RuntimeWarning: coroutine 'IssueManager.create_link' was never awaited
    def _iterencode(o, _current_indent_level):
  Enable tracemalloc to get traceback where the object was allocated.
  See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info.

tests/test_articles.py::TestArticlesCLI::test_articles_tree_command
  /Users/ryan/.local/share/uv/python/cpython-3.13.0-macos-aarch64-none/lib/python3.13/json/encoder.py:414: RuntimeWarning: coroutine 'IssueManager.create_issue' was never awaited
    def _iterencode(o, _current_indent_level):
  Enable tracemalloc to get traceback where the object was allocated.
  See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info.

tests/test_articles.py::TestArticlesCLI::test_articles_tree_command
  /Users/ryan/.local/share/uv/python/cpython-3.13.0-macos-aarch64-none/lib/python3.13/json/encoder.py:414: RuntimeWarning: coroutine 'IssueManager.add_tag' was never awaited
    def _iterencode(o, _current_indent_level):
  Enable tracemalloc to get traceback where the object was allocated.
  See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info.

tests/test_client.py::TestSecurityIntegration::test_reset_client_manager_async_cleanup
tests/test_client.py::TestSecurityIntegration::test_reset_client_manager_cleanup_error_handling
  /Users/ryan/Documents/github/yt-cli/youtrack_cli/client.py:555: RuntimeWarning: coroutine 'reset_client_manager' was never awaited
    pass
  Enable tracemalloc to get traceback where the object was allocated.
  See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info.

tests/test_security.py::TestClientManagerSecurity::test_client_manager_ssl_verification
  /Users/ryan/Documents/github/yt-cli/tests/test_security.py:558: UserWarning: ⚠️  SSL verification is DISABLED. This is insecure and should only be used in development.
    manager = get_client_manager()

tests/test_time.py::TestTimeCommands::test_list_command_no_issue_filter
  /Users/ryan/.local/share/uv/python/cpython-3.13.0-macos-aarch64-none/lib/python3.13/selectors.py:541: RuntimeWarning: coroutine 'TimeManager.get_time_entries' was never awaited
    timeout = None if timeout is None else max(timeout, 0)
  Enable tracemalloc to get traceback where the object was allocated.
  See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info.

-- Docs: https://docs.pytest.org/en/stable/how-to/capture-warnings.html
================================ tests coverage ================================
_______________ coverage: platform darwin, python 3.13.0-final-0 _______________

================ 925 passed, 74 skipped, 26 warnings in 10.24s =================
