Repository navigation
test: remove redundant checks covered by behavioral regressions - #248
Merged
Merged
Conversation
Keep independent provider, recovery, workspace, and platform regressions. Merge equivalent setup and assertions, remove repeated execution inputs, and drop unused test helpers.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Remove 40 redundant test functions and 12 repeated parameter cases after a repository-wide test-value review. Equivalent executions now share their assertions, including runner defaults, team configuration, scheduler serialization, structured-output settings, and patch relocation messages. Unused local test helpers and two redundant subassertions are also removed.
The review read all 551 Python test, support, and example-fixture files and checked the Blueprint DOM, browser, installation, and platform CI entry points. Every file has a recorded behavioral review. The final diff changes 35 test files, with 20 added lines and 492 deleted lines, a net reduction of 472 lines.
Independent review restored the default-estimator/tool-history compaction regression and retained the standalone native-HTTP run-identity controls because their execution paths differ from the proposed substitutes. Cancellation, restoration, workspace ownership, protocol, permission, installation, platform, and browser regressions with distinct coverage remain in the suite.
Collection changes from 10,056 to 10,004 cases, exactly matching 52 approved removals. Fourteen retained TTFT cases are renamed; an independent capture confirms that they contain every distinct execution input from the previous 26-case matrix. The collection comparison found no unexpected additions or removals.
Final targeted execution across every changed test module passed 882 tests. A fresh-context reviewer accepted the final diff and independently ran 67 retained tests, plus normal and injected-fault controls. Blueprint DOM passed 59 tests. Whole-repository Ruff, all four architecture contracts, dependency checks, and whitespace checks passed. The preceding head passed all 13 remote checks, including the complete Python 3.10–3.14 matrix. Three fresh-context reviewers then rechecked every deletion before merge. Their two findings are addressed by retaining non-divisible budget rounding and the JSON boolean type of the streaming flag in the existing stronger tests. Both fault controls reject the changed behavior, and both affected modules pass all 12 tests. All 13 final check runs passed at head 2a1912a. Python 3.12 completed with 9,951 passed and 53 skipped, and all 59 Blueprint DOM tests passed. The PR was merged with merge commit 6da4a92, whose tree matches the reviewed and CI-tested head.
Retained coverage for every removed test or parameter case
tests/agents/test_session_construction.py::test_session_builds_runtime_collaborators_eagerly
Covered by
tests/agents/test_session_characterization.py::test_no_tool_calls_marks_done_and_emits_text_delta,tests/agents/test_session_characterization.py::test_tool_calls_execute_append_tool_result_and_continue,tests/agents/test_session_characterization_runtime.py::test_save_and_load_round_trip_restores_runtime_state.tests/agents/test_session_construction.py::test_session_wires_a_default_shaper_pipeline
Covered by
tests/runtime/test_default_shaper_pipeline.py::test_the_default_pipeline_leaves_a_small_history_byte_identical,tests/runtime/test_deepseek_context_window_http.py::test_public_agent_retains_files_with_published_window[64000-deepseek-flash].tests/agents/test_session_construction.py::test_session_event_bus_reaches_injected_sink
Covered by
tests/agents/test_session_characterization.py::test_session_event_sink_wires_through_to_runtime,tests/agents/test_session_tool_cancellation_recovery.py::test_cancellation_keeps_deferred_result_with_a_live_producer[True].tests/agents/test_session_construction.py::test_session_with_auto_save_path_subscribes_autosave_subscriber
Covered by
tests/agents/test_session_construction.py::test_session_user_message_appended_triggers_autosave.tests/agents/test_session_characterization.py::test_session_accepts_explicit_llm_client
Covered by
tests/agents/test_session_characterization.py::test_no_tool_calls_marks_done_and_emits_text_delta.tests/agents/test_session_run_loop.py::test_run_loop_budget_exceeded_emits_error_and_sets_phase
Covered by
tests/agents/test_session_characterization.py::test_budget_exceeded_stops_before_llm_call_and_emits_error,tests/agents/test_session_wind_down.py::test_t1_off_budget_exhausted_is_byte_for_byte_today.tests/agents/test_team_role_profile.py::test_default_means_opencollabs_own_agent
Covered by
tests/agents/test_team_default_profile_aliases.py::test_default_profile_alias_keeps_the_custom_role_prompt[default],tests/agents/test_single2_profile.py::test_public_profile_name_resolves_to_the_base_implementation[None],tests/agents/test_single2_profile.py::test_programmatic_standalone_omitted_profile_uses_base.tests/runtime/test_model_capability_table_iclr.py::test_qwen_flash_refuses_forced_tool_choice
Covered by
tests/runtime/test_model_capability_table.py::test_qwen_thinking_request_uses_supported_tool_choice[required],tests/runtime/test_model_capability_table.py::test_qwen_thinking_request_uses_supported_tool_choice[choice1].tests/runtime/test_llm_chat_streaming.py::test_stream_off_sends_no_stream_keys_to_create
Covered by
tests/runtime/test_llm_chat_streaming_http.py::test_switch_off_puts_no_stream_key_on_the_wire.tests/runtime/test_llm_chat_streaming.py::test_stream_on_adds_stream_and_include_usage
Covered by
tests/runtime/test_llm_chat_streaming_http.py::test_switch_on_streams_and_records_reasoning_over_real_sse.tests/tools/test_tool_registry.py::test_use_skill_is_a_known_tool_name
Covered by
tests/tools/test_tool_registry.py::test_build_wires_use_skill_when_store_provided,tests/tools/test_tool_registry.py::test_unknown_tool_error_lists_known_tools_including_skill.tests/workflows/test_workflow_registry.py::test_discover_workflows_missing_dir_returns_empty_registry
Covered by
tests/workflows/test_builtin_workflow_discovery.py::test_directory_discovery_keeps_caller_only_default_and_can_include_builtins.tests/tools/test_tool_call_processor_interceptor.py::test_tool_execution_accepts_explicit_safety_policy
Covered by
tests/tools/test_tool_call_processor_interceptor.py::test_tool_execution_prefers_execute_with_runtime.tests/tools/test_tool_call_processor_interceptor.py::test_tool_execution_builds_application_tool_runtime
Covered by
tests/tools/test_tool_call_processor_interceptor.py::test_tool_execution_prefers_execute_with_runtime.tests/workflows/test_workflow_runtime.py::test_build_workflow_context_returns_context
Covered by
tests/workflows/test_workflow_runtime.py::test_run_workflow_invokes_fn_with_context_and_args,tests/workflows/test_workflow_runtime.py::test_built_context_agent_runs_session_with_resolved_llm.tests/tools/test_tool_runtime_contract.py::test_bash_tool_respects_custom_timeout
Covered by
tests/tools/test_native_bash_evidence.py::test_native_bash_schema_output_command_and_timeout_are_unchanged.tests/workflows/test_workflow_context_parallel.py::test_concurrency_cap_honored
Covered by
tests/workflows/test_workflow_context_parallel.py::test_task_and_agent_concurrency_caps_are_independent.tests/interfaces/test_tui_brand_motion.py::test_dot_color_changes_as_time_advances
Covered by
tests/interfaces/test_tui_brand_motion.py::test_frame_changes_between_elapsed_values.tests/interfaces/test_public_teams_module.py::test_a_pool_of_n_seats_gives_each_seat_one_solo_agent_s_budget
Covered by
tests/tools/test_declared_budget_rule.py::test_the_cap_is_the_share_constant_times_an_equal_split,tests/tools/test_declared_budget_rule.py::test_every_seat_gets_the_same_cap_agent_zero_included,tests/interfaces/test_public_teams_module.py::test_the_declared_roles_are_the_file_s_roles_in_order.tests/runtime/test_responses_request_contracts.py::test_responses_restored_assistant_parts_remain_easy_input_content
Covered by
tests/runtime/test_responses_request_contracts.py::test_responses_normalizes_restored_text_block_variants[text],tests/runtime/test_responses_request_contracts.py::test_responses_normalizes_restored_text_block_variants[input_text],tests/runtime/test_responses_request_contracts.py::test_responses_normalizes_restored_text_block_variants[output_text].tests/agents/test_session_submit_ends_the_turn.py::test_submit_is_a_success_terminal_not_a_stop
Covered by
tests/agents/test_session_submit_ends_the_turn.py::test_a_submitted_step_ends_the_turn_at_done_with_its_summary.tests/runtime/test_eager_tool_clear_shaper.py::test_monotonic_never_unstubs
Covered by
tests/runtime/test_eager_tool_clear_shaper.py::test_idempotent_shape_of_shape_equals_shape,tests/runtime/test_eager_tool_clear_shaper.py::test_keeps_recent_k_verbatim_stubs_older.tests/runtime/test_trace_worktree_changes.py::test_the_row_names_the_revision_its_files_were_measured_against
Covered by
tests/runtime/test_trace_worktree_changes.py::test_an_agent_that_only_took_a_handoff_claims_no_commits.tests/runtime/test_llm_first_token_latency.py::test_every_arm_seat_records_transport_timing_on_its_llm_call[best-of-n:swe_agent-streamed]
Covered by
tests/runtime/test_llm_first_token_latency.py::test_seat_execution_inputs_record_transport_timing_on_llm_call[single:swe_agent-streamed].tests/runtime/test_llm_first_token_latency.py::test_every_arm_seat_records_transport_timing_on_its_llm_call[best-of-n:swe_agent-unstreamed]
Covered by
tests/runtime/test_llm_first_token_latency.py::test_seat_execution_inputs_record_transport_timing_on_llm_call[single:swe_agent-unstreamed].tests/runtime/test_llm_first_token_latency.py::test_every_arm_seat_records_transport_timing_on_its_llm_call[self-collaboration:coder:r1-streamed]
Covered by
tests/runtime/test_llm_first_token_latency.py::test_seat_execution_inputs_record_transport_timing_on_llm_call[self-collaboration:analyst-streamed].tests/runtime/test_llm_first_token_latency.py::test_every_arm_seat_records_transport_timing_on_its_llm_call[self-collaboration:coder:r1-unstreamed]
Covered by
tests/runtime/test_llm_first_token_latency.py::test_seat_execution_inputs_record_transport_timing_on_llm_call[self-collaboration:analyst-unstreamed].tests/runtime/test_llm_first_token_latency.py::test_every_arm_seat_records_transport_timing_on_its_llm_call[self-collaboration:analyst:adjudicate:r1-streamed]
Covered by
tests/runtime/test_llm_first_token_latency.py::test_seat_execution_inputs_record_transport_timing_on_llm_call[self-collaboration:analyst-streamed].tests/runtime/test_llm_first_token_latency.py::test_every_arm_seat_records_transport_timing_on_its_llm_call[self-collaboration:analyst:adjudicate:r1-unstreamed]
Covered by
tests/runtime/test_llm_first_token_latency.py::test_seat_execution_inputs_record_transport_timing_on_llm_call[self-collaboration:analyst-unstreamed].tests/runtime/test_llm_first_token_latency.py::test_every_arm_seat_records_transport_timing_on_its_llm_call[self-collaboration-reading-analyst:coder:r1-streamed]
Covered by
tests/runtime/test_llm_first_token_latency.py::test_seat_execution_inputs_record_transport_timing_on_llm_call[self-collaboration:analyst-streamed].tests/runtime/test_llm_first_token_latency.py::test_every_arm_seat_records_transport_timing_on_its_llm_call[self-collaboration-reading-analyst:coder:r1-unstreamed]
Covered by
tests/runtime/test_llm_first_token_latency.py::test_seat_execution_inputs_record_transport_timing_on_llm_call[self-collaboration:analyst-unstreamed].tests/runtime/test_llm_first_token_latency.py::test_every_arm_seat_records_transport_timing_on_its_llm_call[self-collaboration-reading-analyst:tester:r1-streamed]
Covered by
tests/runtime/test_llm_first_token_latency.py::test_seat_execution_inputs_record_transport_timing_on_llm_call[self-collaboration:tester:r1-streamed].tests/runtime/test_llm_first_token_latency.py::test_every_arm_seat_records_transport_timing_on_its_llm_call[self-collaboration-reading-analyst:tester:r1-unstreamed]
Covered by
tests/runtime/test_llm_first_token_latency.py::test_seat_execution_inputs_record_transport_timing_on_llm_call[self-collaboration:tester:r1-unstreamed].tests/runtime/test_llm_first_token_latency.py::test_every_arm_seat_records_transport_timing_on_its_llm_call[self-collaboration-reading-analyst:analyst:adjudicate:r1-streamed]
Covered by
tests/runtime/test_llm_first_token_latency.py::test_seat_execution_inputs_record_transport_timing_on_llm_call[self-collaboration:analyst-streamed].tests/runtime/test_llm_first_token_latency.py::test_every_arm_seat_records_transport_timing_on_its_llm_call[self-collaboration-reading-analyst:analyst:adjudicate:r1-unstreamed]
Covered by
tests/runtime/test_llm_first_token_latency.py::test_seat_execution_inputs_record_transport_timing_on_llm_call[self-collaboration:analyst-unstreamed].tests/runtime/test_local_env_processes.py::test_local_temp_cleanup_removes_registered_path
Covered by
tests/runtime/test_local_env_processes.py::test_local_temp_files_have_owned_cleanup.tests/runtime/test_skill_store.py::test_file_store_does_not_cap_small_body
Covered by
tests/runtime/test_skill_store.py::test_file_store_get_body_hit.tests/workflows/test_workflow_context_parallel.py::test_budget_exceeded_raises_before_next_call
Covered by
tests/workflows/test_workflow_context_parallel.py::test_over_budget_ok_bypasses_the_pre_call_raise.tests/workflows/test_collab_team_config.py::test_the_runner_defaults_to_the_reusable_team_file
Covered by
tests/workflows/test_collab_team_config.py::test_the_runner_seats_the_roster_before_the_first_model_call.tests/workflows/test_team_config.py::test_default_team_entry_is_analyst
Covered by
tests/workflows/test_team_config.py::test_default_team_is_self_collaboration_over_a_closed_topology.tests/workflows/test_team_config.py::test_role_temperature_defaults_to_none_when_unset
Covered by
tests/workflows/test_team_config.py::test_load_team_roundtrip_roles_and_topology.tests/workflows/test_team_config.py::test_entry_prefers_lead_role_when_unset
Covered by
tests/workflows/test_team_config.py::test_load_team_roundtrip_roles_and_topology.tests/workflows/test_scheduler_turn_serialization.py::test_a_suspended_parent_does_not_hold_the_gate_against_its_child
Covered by
tests/workflows/test_scheduler_turn_serialization.py::test_the_gate_is_the_only_thing_the_flag_changes[True].tests/workflows/test_workflow_structured_output.py::test_structured_agent_inherits_the_run_wide_reasoning_setting
Covered by
tests/workflows/test_workflow_structured_output.py::test_agent_schema_free_text_stop_triggers_forced_retry.tests/workflows/test_workflow_structured_output.py::test_non_structured_agent_leaves_thinking_default
Covered by
tests/workflows/test_workflow_structured_output.py::test_schema_and_plain_agents_agree_on_the_reasoning_setting.tests/tools/test_file_tool_contract.py::test_file_write_create_and_str_replace
Covered by
tests/tools/test_file_tool_contract.py::test_file_tools_edit_legal_basenames[create-16],tests/tools/test_file_tool_contract.py::test_file_tools_edit_legal_basenames[str-replace-16].tests/tools/test_file_write_allow_create.py::test_allow_create_true_default_creates_file
Covered by
tests/tools/test_file_tool_contract.py::test_file_tools_edit_legal_basenames[create-16].tests/tools/test_tool_registry.py::test_a_registry_denied_an_unisolated_shell_restricts_command_tools
Covered by
tests/tools/test_tool_registry.py::test_the_shell_decision_is_independent_of_the_ask_user_decision.tests/tools/test_tool_registry.py::test_an_allowed_unisolated_shell_keeps_user_command_controls
Covered by
tests/tools/test_tool_registry.py::test_the_shell_decision_is_independent_of_the_ask_user_decision.tests/tools/test_repo_map.py::test_build_repo_map_via_env_reports_nothing_when_find_itself_failed
Covered by
tests/tools/test_repo_map.py::test_build_repo_map_via_env_rejects_find_diagnostics.tests/tools/test_apply_patch_compatibility.py::test_a_relocated_line_replace_says_where_it_actually_landed
Covered by
tests/tools/test_apply_patch_compatibility.py::test_line_replace_lands_on_a_uniquely_matching_expected_str.tests/interfaces/test_cli_turn_queue.py::test_piped_input_finishes_all_turns_before_eof
Covered by
tests/interfaces/test_cli_turn_queue.py::test_real_redirected_prompt_runs_serially.