Orchestrata Ultimate › Tests › Reference › agents › volks › qa
Tests reference — tests/agents/volks/qa
tests/agents/volks/qa — 10 test modules, 377 test functions. Source tree: tests/agents/volks/qa at commit 8a2cb42ad. Generated from the tests AST snapshot by scripts/gen-data-pages.py.
Prose pending.
Modules
| Module | Tests | Covers |
|---|---|---|
test_autofix_methods.py |
58 | 1 |
test_dep_install.py |
26 | 1 |
test_llm_review.py |
8 | 6 |
test_qa_handoff.py |
5 | 1 |
test_testgen.py |
49 | 5 |
test_volk.py |
44 | 4 |
test_volk_extended.py |
43 | 4 |
test_volk_extra.py |
22 | 1 |
test_volk_full.py |
122 | 2 |
Module details
tests/agents/volks/qa/test_autofix_methods.py
source · 58 tests · 613 lines
Tests for QaVolk autofix and utility methods.
Covers: agents.volks.qa.volk
| Kind | Name | Line | Description |
|---|---|---|---|
| function | test_autofix_aioredis_replaces_import_redis |
47 | |
| function | test_autofix_aioredis_replaces_from_redis_import |
56 | |
| function | test_autofix_aioredis_replaces_aioredis_barename |
64 | |
| function | test_autofix_aioredis_no_change_when_no_redis |
72 | |
| function | test_autofix_sync_redis_converts_sync_to_async |
85 | |
| function | test_autofix_sync_redis_skips_already_async |
95 | |
| function | test_autofix_sync_redis_skips_no_redis_usage |
103 | |
| function | test_autofix_datetime_adds_import_from_timezone |
117 | |
| function | test_autofix_datetime_adds_import_when_none_exists |
125 | |
| function | test_autofix_datetime_skips_when_already_imported |
133 | |
| function | test_autofix_datetime_skips_no_datetime_usage |
141 | |
| function | test_autofix_xadd_dict_fixes_to_dict_spread |
154 | |
| function | test_autofix_xadd_dict_fixes_dict_var_spread |
164 | |
| function | test_autofix_xadd_dict_no_xadd_no_change |
172 | |
| function | test_autofix_hset_dict_fixes_mapping_to_dict |
185 | |
| function | test_autofix_hset_dict_fixes_mapping_spread |
194 | |
| function | test_autofix_hset_dict_no_hset_no_change |
202 | |
| function | test_autofix_redis_decode_adds_decode_responses |
215 | |
| function | test_autofix_redis_decode_skips_when_already_present |
223 | |
| function | test_autofix_redis_decode_no_redis_no_change |
231 | |
| function | test_autofix_stdlib_adds_dataclasses_import |
244 | |
| function | test_autofix_stdlib_adds_json_import |
252 | |
| function | test_autofix_stdlib_skips_when_already_imported |
260 | |
| function | test_autofix_stdlib_no_usage_no_change |
268 | |
| function | test_autofix_barename_adds_timedelta |
281 | |
| function | test_autofix_barename_adds_optional |
289 | |
| function | test_autofix_barename_adds_list |
297 | |
| function | test_autofix_barename_adds_dict |
305 | |
| function | test_autofix_barename_extends_existing_import |
313 | |
| function | test_autofix_barename_skips_when_already_imported |
323 | |
| function | test_autofix_barename_no_usage_no_change |
333 | |
| function | test_autofix_redis_host_replaces_localhost_string |
346 | |
| function | test_autofix_redis_host_replaces_port_6379 |
356 | |
| function | test_autofix_redis_host_skips_non_test_files |
365 | |
| function | test_autofix_relative_imports_finds_pkg_from_src |
379 | |
| function | test_autofix_relative_imports_finds_pkg_flat |
391 | |
| function | test_autofix_relative_imports_no_pkg_found |
403 | |
| function | test_autofix_parse_args_adds_args_param |
418 | |
| function | test_autofix_parse_args_with_return_annotation |
427 | |
| function | test_autofix_parse_args_no_parse_args_no_change |
435 | |
| function | test_parse_review_verdict_finds_pass |
448 | |
| function | test_parse_review_verdict_finds_fail |
453 | |
| function | test_parse_review_verdict_defaults_to_fail |
458 | |
| function | test_parse_review_issues_extracts_lines |
470 | |
| function | test_parse_review_issues_no_issues |
482 | |
| function | test_validate_no_mocks_detects_mock_import |
492 | |
| function | test_validate_no_mocks_detects_magicmock |
500 | |
| function | test_validate_no_mocks_detects_custom_mock_class |
507 | |
| function | test_validate_no_mocks_allows_clean_code |
514 | |
| function | test_extract_test_failures_finds_failed_tests |
525 | |
| function | test_extract_test_failures_empty_on_success |
537 | |
| function | test_get_signature_hints_returns_empty_for_no_typeerror |
547 | |
| function | test_find_requirements_finds_requirements_txt |
557 | |
| function | test_find_requirements_finds_pyproject_toml |
563 | |
| function | test_find_requirements_returns_none_when_none_exist |
569 | |
| function | test_ensure_init_files_creates_missing_inits |
578 | |
| function | test_rewrite_relative_imports_converts_dots |
595 | |
| function | test_git_commit_returns_none_when_not_git_repo |
611 |
tests/agents/volks/qa/test_dep_install.py
source · 26 tests · 362 lines
Real tests for orchestrata_ultimate.agents.volks.qa._dep_install.
Covers: agents.volks.qa.volk
| Kind | Name | Line | Description |
|---|---|---|---|
| function | test_top_level_import_name_from_import_returns_module |
71 | |
| function | test_top_level_import_name_from_relative_dot_returns_none |
75 | |
| function | test_top_level_import_name_import_non_identifier_returns_none |
80 | |
| function | test_top_level_import_name_plain_statement_returns_none |
86 | |
| function | test_top_level_import_name_simple_import_still_works |
90 | |
| function | test_scan_source_imports_skips_unreadable_file |
99 | A dangling symlink named *.py raises on open(); the except continues. |
| function | test_scan_and_install_imports_swallows_missing_binary |
116 | A pip list pointing at a non-existent binary raises FileNotFoundError, |
| function | test_scan_and_install_imports_noop_when_no_third_party |
126 | |
| function | test_install_deps_pyproject_branch_nonzero_return_is_caught |
139 | Deps found in pyproject.toml; the fake venv_python makes uv's pip |
| function | test_install_deps_pyproject_branch_exception_is_caught |
156 | A dependency name containing an embedded NUL byte makes subprocess.run |
| function | test_install_deps_no_deps_still_writes_conftest |
172 | pyproject.toml with no [project] dependencies section at all — the |
| function | test_install_deps_requirements_branch_nonzero_return_is_caught |
190 | requirements.txt (not pyproject.toml) takes the else branch; the |
| function | test_install_deps_no_requirements_file |
208 | |
| function | test_workspace_imports_orchestrata_no_src_dir |
223 | |
| function | test_workspace_imports_orchestrata_no_match |
227 | |
| function | test_workspace_imports_orchestrata_from_orchestrata_match |
234 | |
| function | test_workspace_imports_orchestrata_import_form_match |
241 | |
| function | test_workspace_imports_orchestrata_skips_non_py_files |
248 | |
| function | test_workspace_imports_orchestrata_skips_unreadable_file |
255 | A file with its read permission revoked raises PermissionError on |
| function | test_collect_monorepo_deps_no_packages |
277 | |
| function | test_collect_monorepo_deps_pkg_without_pyproject |
281 | |
| function | test_collect_monorepo_deps_no_dependencies_section |
288 | |
| function | test_collect_monorepo_deps_extracts_and_filters |
295 | |
| function | test_collect_monorepo_deps_skips_unreadable_pyproject |
314 | A real pyproject.toml with its read permission revoked passes the |
| function | test_validate_imports_checks_package_directory |
335 | |
| function | test_get_import_hint_attribute_error_probes_real_module |
351 |
tests/agents/volks/qa/test_llm_review.py
source · 8 tests · 338 lines
SPEC-031 US-031-003: the LLM code-review step of the QA volk.
Covers: agents.volks.persona, agents.volks.qa.volk, core.base.traces, llm.client, core.packet/ (package), core.protocols/ (package)
| Kind | Name | Line | Description |
|---|---|---|---|
| function | test_llm_review_pass_returns_none |
95 | REQ-031-040: a PASS verdict lets the pipeline proceed (returns None). |
| function | test_llm_review_fail_bounces_to_cd |
110 | REQ-031-041 / REQ-031-042: FAIL parses issues and bounces to U:Cd. |
| function | test_llm_review_forwards_prompt_temperature_and_graph_context |
139 | REQ-031-039: the review call uses the 31-item checklist prompt (with |
| function | test_llm_review_fail_without_issues_still_bounces |
171 | REQ-031-041 edge: a bare FAIL (no ISSUES list) still bounces with a |
| function | test_llm_review_uses_registered_tool_allowlist |
186 | U:Qa's registered tool allowlist (tool_registry.AGENT_TOOLS["U:Qa"]) |
| function | test_llm_review_executes_real_tool_call_before_verdict |
228 | The tool-calling loop lets U:Qa actually inspect the codebase (a real |
| function | test_handle_review_runs_llm_review_before_test_fix_rerun |
288 | REQ-031-043: the LLM review runs on every cycle, including a |
| function | test_handle_review_fail_bounces_instead_of_test_gen |
315 | REQ-031-042: a FAIL verdict from the LLM review bounces to U:Cd and |
tests/agents/volks/qa/test_qa_handoff.py
source · 5 tests · 42 lines
VP-A7: QA_SYSTEM_PROMPT states the pass/fail handoff routing.
Covers: agents.volks.qa.volk
| Kind | Name | Line | Description |
|---|---|---|---|
| function | test_prompt_states_pass_routes_to_compliance |
6 | On PASS the QA result routes to U:Cp for compliance_check. |
| function | test_prompt_states_fail_routes_back_to_fixer |
12 | On FAIL the issues route back to U:Cd for fix_issues. |
| function | test_prompt_preserves_output_format_markers |
18 | The downstream parser's markers and identity stay intact. |
| function | test_prompt_keeps_existing_asserted_substrings |
30 | Substrings asserted by existing suites must survive the edit. |
| function | test_handoff_line_pairs_pass_and_fail_targets |
36 | A single HANDOFF line names both routing targets. |
tests/agents/volks/qa/test_testgen.py
source · 49 tests · 809 lines
Tests for TestGenMixin (src/orchestrata_ultimate/agents/volks/qa/_testgen.py).
Covers: agents.volks.qa._testgen, agents.volks.qa.volk, core.base.traces, core.infra_config, llm.client
| Kind | Name | Line | Description |
|---|---|---|---|
| function | test_extract_code_block_collects_single_fenced_block |
101 | |
| function | test_extract_code_block_no_fence_returns_empty_list |
106 | |
| function | test_extract_code_block_ignores_prose_outside_fences |
110 | |
| function | test_extract_code_block_unclosed_fence_collects_to_end |
121 | |
| function | test_extract_and_write_tests_writes_nested_and_flat_files |
134 | The full happy path: a nested-directory file and a flat file both get |
| function | test_extract_and_write_tests_skips_whitespace_only_filename_block |
161 | A TEST_FILE: block whose entire body is whitespace strips down to an |
| function | test_extract_and_write_tests_skips_block_with_no_code_fence |
177 | A TEST_FILE: block with a filename but no fenced code at all yields |
| function | test_extract_and_write_tests_no_marker_returns_empty_list |
189 | |
| function | test_extract_and_write_tests_skips_block_with_syntax_error |
194 | A block whose code fails to compile is rejected by _finalize_test_code |
| function | test_validate_no_mocks_detects_every_pattern_family |
223 | |
| function | test_validate_no_mocks_clean_code_has_no_violations |
253 | |
| function | test_finalize_test_code_syntax_error_returns_none_before_mock_check |
263 | A syntactically invalid block is rejected immediately — the mock gate |
| function | test_finalize_test_code_clean_code_returns_as_is |
272 | |
| function | test_finalize_test_code_mock_retry_fails_returns_none |
280 | When the mock-retry collaborator can't produce a clean rewrite, |
| function | test_finalize_test_code_mock_retry_syntax_error_after_rewrite |
298 | A rewrite that removes mocks but introduces a syntax error is still |
| function | test_finalize_test_code_mock_retry_success_returns_rewritten_code |
316 | A successful, syntactically valid rewrite is accepted as-is. |
| function | test_retry_without_mocks_extracts_python_fenced_code |
338 | |
| function | test_retry_without_mocks_extracts_bare_fenced_code |
355 | |
| function | test_retry_without_mocks_no_fence_uses_raw_response |
367 | |
| function | test_retry_without_mocks_rejects_when_violations_remain |
379 | |
| function | test_retry_without_mocks_llm_exception_returns_none |
396 | REQ-031-053: a provider failure during the rewrite is caught, not |
| function | test_retry_without_mocks_forwards_temperature_volk_and_graph_context |
412 | REQ-031-053: the rewrite call uses temperature=0.0, identifies as |
| function | test_mock_gate_rewrites_file_when_retry_succeeds |
439 | |
| function | test_mock_gate_leaves_clean_file_untouched |
454 | |
| function | test_mock_gate_deletes_file_when_retry_fails |
465 | G-193-03: when the LLM rewrite can't produce a clean file, the |
| function | test_rewrite_root_relative_imports_skips_directory_named_like_py_file |
486 | An entry that ends in .py but is actually a directory is skipped |
| function | test_rewrite_root_relative_imports_skips_unreadable_file |
501 | A .py file that can't be decoded as utf-8 is skipped, not crashed on. |
| function | test_rewrite_root_relative_imports_rewrites_dot_module_and_dot_import |
512 | |
| function | test_rewrite_package_relative_imports_skips_non_py_file |
532 | |
| function | test_rewrite_package_relative_imports_skips_unreadable_file |
544 | |
| function | test_rewrite_package_relative_imports_prefixes_with_package_name |
557 | |
| function | test_rewrite_package_relative_imports_skips_test_prefixed_dir |
570 | |
| function | test_rewrite_relative_imports_prints_total_count_when_files_changed |
588 | |
| function | test_rewrite_relative_imports_silent_when_nothing_changed |
599 | |
| function | test_ensure_init_files_creates_missing_inits_only_where_py_files_exist |
613 | |
| function | test_ensure_init_files_does_not_overwrite_existing_init |
630 | |
| function | test_run_tests_generic_exception_from_bad_pytest_binary |
648 | A pytest_args[0] that doesn't exist raises inside subprocess.run and |
| function | test_run_tests_real_subprocess_success_returns_passed_true |
661 | A real, fast subprocess (the running interpreter exiting 0) drives the |
| function | test_run_tests_real_subprocess_nonzero_exit_returns_passed_false |
679 | |
| function | test_import_gate_keeps_file_with_valid_import |
698 | |
| function | test_import_gate_deletes_file_with_bad_import |
707 | |
| function | test_import_gate_ignores_non_test_files |
716 | A .py file that isn't test_*.py is never even import-checked. |
| function | test_build_pytest_command_adds_cov_args_for_src_package |
731 | |
| function | test_build_pytest_command_no_src_dir_has_no_cov_args |
744 | |
| function | test_build_pytest_command_ignores_nested_tests_dir |
752 | |
| function | test_build_pytest_command_ignores_top_level_tests_dir |
765 | G126-3: a top-level workspace/tests/ dir is ignored separately from |
| function | test_build_test_env_adds_src_to_pythonpath |
784 | |
| function | test_build_test_env_adds_nested_src_to_pythonpath |
795 | |
| function | test_build_test_env_without_src_dirs_only_has_workspace |
804 |
tests/agents/volks/qa/test_volk.py
source · 44 tests · 816 lines
Covers: agents.volks.qa.volk, llm.client, core.packet/ (package), core.protocols/ (package)
| Kind | Name | Line | Description |
|---|---|---|---|
| function | test_process_review_subject |
18 | |
| function | test_init |
31 | |
| function | test_read_source_files_unreadable_marks_could_not_read |
108 | A path that raises on open() is recorded as '(could not read)'. |
| function | test_build_import_section_strips_leading_src |
122 | |
| function | test_build_import_section_no_src_prefix_uses_dotted_path |
127 | |
| function | test_build_import_section_strips_nested_src_marker |
132 | |
| function | test_build_import_section_skips_nested_init |
137 | |
| function | test_build_import_section_skips_bare_init |
142 | |
| function | test_build_import_section_skips_test_and_non_py_files |
147 | |
| function | test_build_import_section_mixed_files |
152 | |
| function | test_build_trace_section_empty_when_no_requirements |
166 | |
| function | test_build_trace_section_empty_when_no_ids_extracted |
171 | |
| function | test_build_trace_section_builds_traceability_block |
176 | |
| function | test_print_test_summary_prints_failed_when_no_summary_line |
195 | |
| function | test_print_test_summary_prints_passed_summary_line |
201 | |
| function | test_extract_fail_lines_uses_summary_line_fallback |
212 | |
| function | test_extract_fail_lines_unparseable_fallback |
218 | |
| function | test_git_commit_nonzero_returncode_prints_failure |
229 | Nothing staged -> git commit exits non-zero (line 1070 branch). |
| function | test_git_commit_exception_from_slow_hook_is_caught |
238 | A pre-commit hook that outlives the 10s timeout raises inside |
| function | test_handle_test_rerun_dedups_filename_seen_in_both_dirs |
260 | Same test filename in root and tests/ is only counted once. |
| function | test_handle_test_rerun_falls_back_to_test_gen_when_no_tests_on_disk |
298 | G100: no test files on disk -> falls back to _handle_test_gen (641-642). |
| function | test_handle_test_gen_failing_tests_builds_fix_packet |
346 | A generated suite that fails escalates to U:Cd (G226, lines 900-903). |
| function | test_handle_review_normal_flow_reaches_test_gen |
393 | All 3 gates + LLM review PASS + from_test_fix False falls through |
| function | test_handle_review_project_dir_override_bounces_on_import_error |
443 | project_dir payload override (314-315) + import-validation bounce |
| function | test_process_unknown_subject_returns_none |
485 | |
| function | test_handle_review_gate1_syntax_failure_bounces |
503 | A file with a SyntaxError fails Gate 1 and bounces via |
| function | test_handle_review_llm_review_fail_bounces_with_parsed_issues |
528 | |
| function | test_handle_review_from_test_fix_reaches_failing_rerun |
580 | |
| function | test_print_test_summary_prints_individual_failed_names |
618 | |
| function | test_git_commit_success_prints_commit_message |
633 | |
| function | test_parse_review_verdict_detects_fail |
647 | |
| function | test_parse_review_verdict_defaults_to_fail_without_a_verdict_line |
651 | |
| function | test_parse_review_issues_extracts_bullet_list |
656 | |
| function | test_multi_agent_review_edit_returns_verdict |
681 | The real dispatch path must return a real verdict, never None. |
| function | test_review_edit_approves_non_test_file |
693 | |
| function | test_review_edit_blocks_removed_assertions_in_test_file |
701 | |
| function | test_review_edit_blocks_added_skip_in_test_file |
712 | |
| function | test_review_edit_blocks_new_monkeypatch_in_test_file |
722 | |
| function | test_review_edit_approves_test_file_without_regression |
732 | |
| function | test_review_edit_blocks_assert_in_comment_bypass |
742 | F2 regression: a substring count on "assert " is bypassable by |
| function | test_review_edit_blocks_assert_true_swap |
757 | F2 regression: swapping a genuine assertion for a vacuous |
| function | test_review_edit_approves_genuine_assert_preserving_edit |
771 | A real edit that keeps a genuine assertion (and adds another real |
| function | test_review_edit_blocks_unparseable_new_code_in_test_file |
784 | Coverage: when new_code is genuinely unparseable even after the |
| function | test_review_edit_handles_explicit_none_field |
798 | F5 regression: a payload key present with an explicit None |
tests/agents/volks/qa/test_volk_extended.py
source · 43 tests · 716 lines
Extended tests for QaVolk to increase coverage of subprocess and integration paths.
Covers: agents.volks.qa.volk, llm.client, core.packet/ (package), core.protocols/ (package)
| Kind | Name | Line | Description |
|---|---|---|---|
| function | test_run_tests_passing |
119 | _run_tests discovers and runs a passing test file. |
| function | test_run_tests_failing |
129 | _run_tests discovers and runs a failing test file. |
| function | test_run_tests_no_test_files |
139 | _run_tests with no test files returns failure. |
| function | test_run_tests_import_gate_deletes_bad_file |
148 | _run_tests deletes test files that fail import validation. |
| function | test_run_tests_mock_gate_deletes_mock_file |
160 | _run_tests deletes test files that contain mock usage. |
| function | test_handle_test_rerun_passing |
177 | _handle_test_rerun runs existing tests and returns compliance on pass. |
| function | test_handle_test_rerun_failing |
201 | _handle_test_rerun escalates to U:Cd when tests fail. |
| function | test_handle_test_rerun_finds_tests_in_tests_subdir |
225 | _handle_test_rerun discovers test files in tests/ subdirectory. |
| function | test_handle_review_gate1_syntax_fail |
256 | _handle_review returns fix_issues when Gate 1 finds syntax errors. |
| function | test_handle_review_gate2_lint_fail |
274 | _handle_review returns fix_issues when Gate 2 finds lint errors. |
| function | test_handle_review_gate3_checklist_fail |
293 | _handle_review returns fix_issues when Gate 3 finds checklist violations. |
| function | test_handle_review_all_gates_pass_from_test_fix |
318 | _handle_review passes all gates + LLM review, routes to test rerun. |
| function | test_validate_imports_empty_workspace |
362 | _validate_imports returns empty list when no modules exist. |
| function | test_validate_imports_valid_module |
369 | _validate_imports passes for a clean importable module. |
| function | test_validate_imports_invalid_import |
377 | _validate_imports catches modules with bad imports. |
| function | test_validate_imports_skips_skip_files |
385 | _validate_imports skips known entry-point files. |
| function | test_validate_imports_checks_tests_dir |
393 | _validate_imports validates test files in tests/ subdirectory. |
| function | test_git_commit_success |
408 | _git_commit creates a commit when workspace is a git repo. |
| function | test_git_commit_no_workspace_is_noop |
428 | _git_commit returns early when workspace is empty. |
| function | test_git_commit_non_git_dir_is_noop |
434 | _git_commit returns early when .git is absent. |
| function | test_get_venv_python_returns_existing |
445 | _get_venv_python returns path when venv already exists. |
| function | test_get_venv_python_creates_venv |
452 | _get_venv_python creates a venv when none exists. |
| function | test_get_signature_hints_empty_when_no_typeerror |
465 | _get_signature_hints returns empty when no TypeError lines. |
| function | test_get_signature_hints_finds_real_class |
470 | _get_signature_hints resolves class signatures from workspace imports. |
| function | test_get_import_hint_no_match_returns_empty |
487 | _get_import_hint returns empty for non-import error messages. |
| function | test_get_import_hint_real_module |
497 | _get_import_hint probes available names for a real module. |
| function | test_install_deps_smoke |
512 | _install_deps runs without crashing on a minimal workspace. |
| function | test_scan_and_install_imports_no_third_party |
524 | _scan_and_install_imports returns early when no third-party imports. |
| function | test_scan_and_install_imports_finds_third_party |
532 | _scan_and_install_imports discovers third-party imports. |
| function | test_install_monorepo_deps_no_orchestrata_imports |
540 | _install_monorepo_deps skips when no orchestrata imports exist. |
| function | test_install_monorepo_deps_with_orchestrata_imports |
549 | _install_monorepo_deps scans src/ for orchestrata imports. |
| function | test_bounce_for_fix_records_history |
563 | _bounce_for_fix increments review_cycle and records history. |
| function | test_build_escalating_context_cycle3_has_history |
591 | Cycle 3 includes previous failed attempts. |
| function | test_build_escalating_context_cycle5_root_cause |
600 | Cycle 5+ triggers root cause analysis for persistent issues. |
| function | test_build_escalating_context_cycle8_file_contents |
609 | Cycle 8+ includes actual file contents. |
| function | test_extract_and_write_tests_skips_empty_filename |
627 | Blocks with empty filename after TEST_FILE: are skipped. |
| function | test_extract_and_write_tests_writes_to_subdir |
635 | Filenames with subdirectories create the dirs and write file. |
| function | test_autofix_aioredis_skips_unreadable_file |
650 | _autofix_aioredis skips files it cannot read. |
| function | test_autofix_sync_redis_skips_unreadable_file |
662 | _autofix_sync_redis skips files it cannot read. |
| function | test_autofix_f821_datetime_skips_unreadable_file |
673 | _autofix_f821_datetime skips files it cannot read. |
| function | test_rewrite_relative_imports_no_py_files |
689 | _rewrite_relative_imports is a noop when workspace has no .py files. |
| function | test_rewrite_relative_imports_preserves_non_relative |
696 | Absolute imports are left untouched. |
| function | test_qa_volk_module_exports |
709 | The volk module exports expected public names. |
tests/agents/volks/qa/test_volk_extra.py
source · 22 tests · 206 lines
Extra real tests for qa/volk.py — filesystem helpers without LLM.
Covers: agents.volks.qa.volk
| Kind | Name | Line | Description |
|---|---|---|---|
| function | test_rewrite_relative_imports_root_file |
38 | |
| function | test_rewrite_relative_imports_root_bare_dot |
45 | |
| function | test_rewrite_relative_imports_package_file |
52 | |
| function | test_rewrite_relative_imports_package_file_bare_dot |
61 | |
| function | test_rewrite_relative_imports_skips_test_dirs |
70 | |
| function | test_rewrite_relative_imports_skips_dirs_without_init |
81 | |
| function | test_ensure_init_files_adds_missing |
91 | |
| function | test_ensure_init_files_preserves_existing |
99 | |
| function | test_ensure_init_files_skips_root |
109 | |
| function | test_ensure_init_files_skips_dir_without_py |
116 | |
| function | test_find_requirements_pyproject_in_root |
124 | |
| function | test_find_requirements_txt_in_root |
129 | |
| function | test_find_requirements_in_subdir |
134 | |
| function | test_find_requirements_not_found |
141 | |
| function | test_find_requirements_skips_hidden_dirs |
145 | |
| function | test_pip_cmd_fallback_without_uv |
152 | |
| function | test_pip_cmd_uses_uv_when_available |
157 | |
| function | test_parse_pyproject_deps_parses_quoted |
163 | |
| function | test_parse_pyproject_deps_missing_file |
177 | |
| function | test_get_venv_python_exists |
182 | |
| function | test_ensure_conftest_syspath_creates |
192 | |
| function | test_ensure_conftest_syspath_skips_if_no_src_layout |
203 |
tests/agents/volks/qa/test_volk_full.py
source · 122 tests · 1132 lines
Extensive tests for orchestrata_ultimate.agents.volks.qa.volk.
Covers: agents.volks.qa.volk, core.packet/ (package)
| Kind | Name | Line | Description |
|---|---|---|---|
| function | test_qavolk_default_alias |
53 | |
| function | test_qavolk_default_role |
58 | |
| function | test_qavolk_init_clears_state |
63 | |
| function | test_qavolk_workspace_from_infra_config |
71 | |
| function | test_quality_assurance_agent_alias_inherits_qavolk |
78 | |
| function | test_process_routes_review_subject |
90 | |
| function | test_process_unknown_subject_returns_none |
96 | |
| function | test_handle_review_empty_files_short_circuits |
114 | |
| function | test_handle_review_empty_returns_from_agent |
124 | |
| function | test_validate_no_mocks_flags_unittest_mock_import |
136 | |
| function | test_validate_no_mocks_flags_mock_instantiation |
143 | |
| function | test_validate_no_mocks_flags_magic_mock |
149 | |
| function | test_validate_no_mocks_flags_async_mock |
156 | |
| function | test_validate_no_mocks_flags_patch_decorator |
161 | |
| function | test_validate_no_mocks_flags_custom_fake_class |
166 | |
| function | test_validate_no_mocks_flags_custom_stub_class |
172 | |
| function | test_validate_no_mocks_allows_real_code |
177 | |
| function | test_validate_no_mocks_reports_line_numbers |
184 | |
| function | test_validate_no_mocks_one_per_line |
190 | |
| function | test_parse_review_verdict_pass |
202 | |
| function | test_parse_review_verdict_fail |
206 | |
| function | test_parse_review_verdict_fail_lowercase_wrapped |
210 | |
| function | test_parse_review_verdict_missing_defaults_fail |
214 | |
| function | test_parse_review_issues_empty_on_missing_section |
221 | |
| function | test_parse_review_issues_collects_items |
225 | |
| function | test_parse_review_issues_stops_on_non_dash_line |
230 | |
| function | test_parse_review_issues_ignores_short_bullet |
235 | |
| function | test_extract_test_failures_captures_failed_prefix |
246 | |
| function | test_extract_test_failures_captures_error_lines |
252 | |
| function | test_extract_test_failures_empty_on_passing_output |
258 | |
| function | test_extract_and_write_tests_writes_files |
270 | |
| function | test_extract_and_write_tests_skips_syntax_errors |
290 | |
| function | test_extract_and_write_tests_dedents |
298 | |
| function | test_extract_and_write_tests_ignores_empty_response |
313 | |
| function | test_extract_and_write_tests_ignores_blocks_without_filename |
319 | |
| function | test_build_escalating_context_cycle1_has_current |
330 | |
| function | test_build_escalating_context_cycle3_includes_history |
338 | |
| function | test_build_escalating_context_records_history |
347 | |
| function | test_build_escalating_context_cycle5_includes_root_cause |
355 | |
| function | test_bounce_for_fix_targets_code_director |
369 | |
| function | test_bounce_for_fix_propagates_payload |
384 | |
| function | test_get_signature_hints_empty_when_no_type_error |
405 | |
| function | test_get_signature_hints_empty_when_no_import_map |
410 | |
| function | test_pip_cmd_uses_uv_when_available |
425 | |
| function | test_pip_cmd_returns_list |
433 | |
| function | test_find_requirements_none_in_empty |
443 | |
| function | test_find_requirements_pyproject_root |
447 | |
| function | test_find_requirements_requirements_txt |
452 | |
| function | test_find_requirements_pyproject_in_subdir |
457 | |
| function | test_parse_pyproject_deps_extracts_names |
464 | |
| function | test_parse_pyproject_deps_empty_when_no_section |
480 | |
| function | test_parse_pyproject_deps_missing_file |
486 | |
| function | test_ensure_init_files_creates_missing |
496 | |
| function | test_ensure_init_files_skips_root_workspace |
504 | |
| function | test_ensure_init_files_preserves_existing_init |
511 | |
| function | test_ensure_conftest_syspath_creates |
526 | |
| function | test_ensure_conftest_syspath_idempotent |
535 | |
| function | test_ensure_conftest_syspath_prepends_to_existing |
543 | |
| function | test_rewrite_relative_imports_strips_root_dot |
557 | |
| function | test_rewrite_relative_imports_uses_pkg_prefix_in_subdirs |
563 | |
| function | test_rewrite_relative_imports_handles_bare_dot_import |
572 | |
| function | test_rewrite_relative_imports_ignores_absolute |
581 | |
| function | test_autofix_aioredis_rewrites_bare_import |
593 | |
| function | test_autofix_aioredis_noop_on_other_files |
600 | |
| function | test_autofix_aioredis_replaces_aioredis_keyword |
607 | |
| function | test_autofix_sync_redis_replaces_bare_import |
615 | |
| function | test_autofix_sync_redis_skips_already_async |
624 | |
| function | test_autofix_f821_datetime_adds_import |
631 | |
| function | test_autofix_f821_datetime_skips_with_existing_import |
638 | |
| function | test_autofix_f821_datetime_fallback_prepend |
646 | |
| function | test_autofix_xadd_dict_wraps_kwargs |
654 | |
| function | test_autofix_hset_dict_wraps_mapping |
662 | |
| function | test_autofix_redis_decode_adds_decode_responses |
670 | |
| function | test_autofix_redis_decode_skips_if_already_present |
678 | |
| function | test_autofix_missing_stdlib_imports_adds_json |
686 | |
| function | test_autofix_missing_stdlib_imports_skips_already_imported |
694 | |
| function | test_autofix_missing_barename_imports_adds_timedelta |
702 | |
| function | test_autofix_missing_barename_imports_extends_existing |
711 | |
| function | test_autofix_redis_host_replaces_localhost |
719 | |
| function | test_autofix_redis_host_adds_os_import |
732 | |
| function | test_autofix_redis_host_only_test_files |
740 | |
| function | test_autofix_relative_imports_uses_src_layout |
748 | |
| function | test_autofix_relative_imports_noop_without_packages |
758 | |
| function | test_autofix_parse_args_adds_args_param |
765 | |
| function | test_autofix_line_length_runs_without_crash |
779 | |
| function | test_autofix_import_order_runs_without_crash |
787 | |
| function | test_autofix_unused_imports_runs_without_crash |
793 | |
| function | test_git_commit_no_workspace_is_noop |
805 | |
| function | test_git_commit_non_git_dir_is_noop |
811 | |
| function | test_scan_and_install_imports_no_third_party_noop |
821 | |
| function | test_scan_and_install_imports_skips_tests_dir |
828 | |
| function | test_validate_imports_empty_workspace |
841 | |
| function | test_install_monorepo_deps_missing_monorepo_is_noop |
852 | |
| function | test_install_monorepo_deps_no_orchestrata_imports |
858 | |
| function | test_get_import_hint_no_match_returns_empty |
871 | |
| function | test_get_import_hint_cannot_import_triggers_probe |
876 | |
| function | test_extract_test_failures_preserves_order |
888 | |
| function | test_extract_test_failures_ignores_plain_e |
894 | |
| function | test_validate_no_mocks_flags_autospec |
907 | |
| function | test_validate_no_mocks_flags_patch_object |
912 | |
| function | test_validate_no_mocks_flags_patch_dict |
917 | |
| function | test_validate_no_mocks_flags_mocker_fixture |
922 | |
| function | test_validate_no_mocks_flags_dummy_class |
927 | |
| function | test_validate_no_mocks_multiple_lines_multiple_violations |
932 | |
| function | test_build_escalating_context_cycle8_includes_file_contents |
943 | |
| function | test_build_escalating_context_cycle8_skips_missing_file |
954 | |
| function | test_parse_pyproject_deps_handles_unquoted_content |
969 | |
| function | test_autofix_redis_host_skips_clean_file |
981 | |
| function | test_autofix_xadd_dict_skips_non_xadd |
988 | |
| function | test_autofix_hset_dict_skips_non_hset |
995 | |
| function | test_autofix_redis_decode_skips_non_redis_file |
1002 | |
| function | test_autofix_missing_barename_imports_adds_typing_optional |
1009 | |
| function | test_autofix_aioredis_skips_file_without_redis |
1017 | |
| function | test_autofix_sync_redis_skips_without_redis_redis_call |
1024 | |
| function | test_autofix_f821_datetime_skips_when_no_usage |
1032 | |
| function | test_autofix_relative_imports_flat_layout |
1039 | |
| function | test_quality_assurance_agent_can_process |
1056 | |
| function | test_handle_review_resets_cycle_on_new_thread |
1067 | |
| function | test_extract_and_write_tests_multiple_code_blocks |
1087 | |
| function | test_volk_module_exports |
1112 | |
| function | test_qa_system_prompt_has_rules |
1121 | |
| function | test_code_review_prompt_has_checklist |
1128 |
Support files
Fixtures, package markers and helpers without test functions.