Orchestrata Ultimate › Tests › Reference › scripts › test_validate_ci

Tests reference — tests/scripts/test_validate_ci.py

Module of tests/scripts, split out because the directory page would be too large.

Prose pending.

tests/scripts/test_validate_ci.py

source · 43 tests · 811 lines

Tests for scripts/validate_ci.py — the deterministic CI-config validator

Kind Name Line Description
function test_main_passes_all_gates_on_valid_repo 124
function test_main_defaults_repo_root_and_env_when_omitted 134 Covers the repo_root is None / env is None default-assignment
function test_missing_gitlab_ci_file_fails 146
function test_invalid_yaml_fails 153
function test_empty_yaml_file_treated_as_missing_stages_not_a_crash 162 Regression: yaml.safe_load() of an empty-but-valid file returns None,
function test_missing_stages_fails 175
function test_stale_cov_path_fails 184
function test_xdist_flag_in_test_job_fails 193 Gate 4 now FORBIDS pytest-xdist (it deadlocks the suite ~78%). A test
function test_gate4_concatenated_short_form_fails 210 The concatenated -nauto short-option form is real, working xdist and
function test_gate4_non_xdist_dash_n_not_flagged 226 Gate 4 must NOT false-positive on ordinary shell -n flags
function test_missing_timeout_flag_fails 247
function test_missing_redis_reference_fails 258
function test_missing_neo4j_reference_fails 272
function test_missing_architecture_checker_or_mypy_fails 286
function test_test_job_calling_raw_pytest_fails 297 Gate 9 (Phase R6): a job that runs the suite via raw pytest instead
function test_test_job_calling_run_tests_threadpool_directly_fails 322 Gate 9 (Phase R6): calling scripts/run_tests_threadpool.py directly
function test_lint_job_referencing_tests_dir_is_not_flagged 349 Regression: a lint job that merely points ruff/black/mypy at the
function test_missing_docker_compose_file_fails 372
function test_compose_stale_ip_10_222_9_fails 381
function test_compose_hardcoded_incus_ip_fails 394
function test_compose_missing_redis_host_var_fails 407
function test_compose_missing_neo4j_uri_var_fails 420
function test_missing_ast_output_fails 433
function test_stale_ast_output_against_ultimate_source_fails 444
function test_stale_ast_output_against_monorepo_source_fails 457
function test_ast_source_dir_absent_skips_staleness_check 469 If the external monorepo checkout doesn't exist at all (common on a
function test_gate13_passes_when_both_loaders_call_the_marker 529
function test_gate13_flags_a_loader_that_stops_calling_the_marker 534 The case the first draft of this gate MISSED.
function test_gate13_flags_the_other_loader_too 554
function test_gate13_flags_a_reintroduced_private_key_list 567 A second list is exactly how the two override policies diverged.
function test_gate13_flags_a_missing_loader_without_raising 581
function test_gate13_flags_a_drifted_fallback_marker_name 592 start_test_services carries a fallback copy of the marker NAME.
function test_gate13_flags_an_unparseable_loader 612
function test_gate13_runs_clean_against_the_REAL_checkout 622 Not a synthetic layout — the live loaders must satisfy their own gate.
function test_gate14_fails_when_nothing_declares_ownership_anywhere 643 The exact broken state this gate exists to catch: declare_owned()
function test_gate14_passes_when_a_real_module_declares_ownership 664 The aliased spelling — tests/conftest.py's own form — must resolve.
function test_gate14_unaliased_import_form_also_resolves 680 The direct (non-aliased) import spelling must resolve too.
function test_gate14_excludes_the_declare_owned_self_test_from_evidence 696 A call site living ONLY at tests/core/test_env_bootstrap.py -- the
function test_gate14_flags_a_docstring_claim_with_no_declare_owned_call 719 A module that says it owns a key, but never calls declare_owned() for
function test_gate14_passes_when_the_claim_is_backed_by_a_real_call_in_the_same_module 749
function test_gate14_unparseable_module_does_not_crash 768
function test_gate14_undecodable_claim_file_does_not_crash 784 The claim-scan's own text read, not just the AST parse, must survive
function test_gate14_runs_clean_against_the_REAL_checkout 803 Not a synthetic layout — the live codebase must satisfy its own gate.