Orchestrata Ultimate › Tests › Reference › scripts › test_e2e_run
Tests reference — tests/scripts/test_e2e_run.py
Module of tests/scripts, split out because the directory page would be too large.
Prose pending.
tests/scripts/test_e2e_run.py
source · 29 tests · 877 lines
Tests for scripts/e2e_run.py — the dogfood E2E runner with full observability.
| Kind | Name | Line | Description |
|---|---|---|---|
| function | test_setup_env_applies_defaults_only_when_absent |
143 | |
| function | test_setup_env_prepends_pythonpath_to_existing |
184 | |
| function | test_setup_env_pythonpath_with_no_existing_value |
195 | |
| function | test_setup_env_raises_when_redis_host_unset |
204 | RUL-003: REDIS_HOST has no default — this used to setdefault the |
| function | test_tee_mirrors_writes_to_both_streams_and_returns_length |
217 | |
| function | test_tee_flush_flushes_both_streams |
232 | |
| function | test_resolve_answer_pattern_beats_positional |
257 | |
| function | test_resolve_answer_first_matching_pattern_wins |
268 | |
| function | test_resolve_answer_no_pattern_match_falls_through_to_llm |
279 | |
| function | test_resolve_answer_llm_exception_falls_through_to_positional |
293 | |
| function | test_resolve_answer_llm_empty_result_falls_through_to_positional |
303 | |
| function | test_resolve_answer_llm_none_result_falls_through_to_positional |
314 | |
| function | test_resolve_answer_clamps_rounds_beyond_positional_length |
328 | |
| function | test_resolve_answer_no_llm_fn_uses_positional_directly |
333 | |
| function | test_parse_answer_specs_splits_pattern_pairs_and_keeps_plain_positional |
343 | |
| function | test_parse_answer_specs_invalid_regex_calls_on_error |
356 | |
| function | test_parse_answer_specs_plain_entries_stay_positional |
367 | |
| function | test_parse_answer_specs_splits_only_on_first_arrow |
375 | |
| function | test_run_coro_blocking_from_sync_context |
387 | |
| function | test_run_coro_blocking_from_inside_running_event_loop |
394 | Regression: the routed relay resolves answers inside a running loop, |
| function | test_module_prepends_repo_root_when_absent_from_sys_path |
408 | Line 39 (sys.path.insert(0, str(_REPO_ROOT))) only fires when the |
| function | test_main_routed_invalid_work_type_raises_fast |
436 | work_type="nonexistent" drives the orchestrator.PipelineRunner routed |
| function | test_main_routed_documentation_work_type_completes_or_errors |
462 | A real routed multi-stage run ("documentation" — the cheapest work |
| function | test_main_feature_path_zero_max_rounds |
546 | --max-rounds 0 skips the human-round loop body entirely after the one |
| function | test_main_round_loop_clarification_then_terminal |
723 | Round 0: clarification -> the canned answer is sent via respond(); |
| function | test_main_round_loop_exhausts_max_rounds |
757 | Every round asks for clarification: the loop terminates on the |
| function | test_main_round_loop_pattern_answer_beats_positional |
785 | backlog #223: a --answer 'regex=>text' pattern answers a matching |
| function | test_main_pipeline_error_branch_writes_errors_log |
830 | A mid-loop failure takes the outer except: rc 1, status 'error', |
| function | test_main_cxp_log_dump_failure_warns_not_fatal |
856 | postman.get_log() raising must not sink the run: the finally block |