Skip to content

Pre-commit/CI gaps: asap-summary-ingest tests unrun, asap-planner-rs CI path filter, dead correctness.yml job #439

Description

@milindsrivastava1997

Surveyed all Python and Rust tests in the repo against .pre-commit-config.yaml and .github/workflows/*.yml (found while working on #398). Three gaps, none fixed yet — tracked here for a separate PR.

1. asap-summary-ingest/tests/ is not run anywhere

36 pytest tests (test_integration.py, test_sql_schema.py) — the only real pytest suite in the repo. Not referenced in .pre-commit-config.yaml or any workflow under .github/workflows/.

  • Currently 4 of these fail locally because the live promql_utilities install (editable, pointing at the separate asap-internal/CommonDependencies repo) hasn't picked up the windowSizewindowSizeMs rename from feat(asap-planner-rs): add millisecond precision support for sub-second scrape intervals #398.
  • Verified separately: against this worktree's vendored asap-common/dependencies/py/promql_utilities/ (already fixed), all 36 pass. So wiring this into CI should install the vendored copy the same way correctness.yml already does (pip install -e asap-common/dependencies/py/promql_utilities/), not rely on a local editable install of an external sibling repo.
  • To add: a pre-commit hook (pytest, language: system) and a CI job/path-filter entry (in python.yml or a new workflow) for asap-summary-ingest/.

2. asap-planner-rs unit tests don't trigger CI

asap-planner-rs is a cargo test --workspace member with 11 source files containing #[cfg(test)] unit tests.

  • Pre-commit: covered — any .rs file change triggers the cargo-test hook (cargo test --workspace).
  • CI (rust.yml): not covered — its push/pull_request path filters list asap-query-engine/**, asap-common/dependencies/rs/**, asap-common/tests/**, asap-common/sketch-core/**, Cargo.toml, Cargo.lock — but not asap-planner-rs/**. A PR touching only planner files never triggers the GitHub Actions Rust job (only workflow_dispatch would).
  • To add: asap-planner-rs/** to both path-filter lists in .github/workflows/rust.yml.

3. correctness.yml's rust-pattern-matching job is a dead stub

Job 3 in .github/workflows/correctness.yml ("Rust pattern matching unit tests") installs Rust/protoc/sccache/cache but has no run step — it does nothing every time it runs.

  • History: it used to run cargo test --release in asap-common/tests/rust_pattern_matching (a directory that no longer exists). The run step was deleted in commit 2bad8c5 ("remove rust_pattern_matching from CI") when that directory was removed/consolidated, but the rest of the job (checkout, toolchain, protoc, sccache, cache) was left behind as a no-op.
  • The actual pattern-matching unit tests now live in asap-common/dependencies/rs/promql_utilities/src/ast_matching/promql_pattern.rs and are already exercised by cargo test --workspace in rust.yml's test job (path filter includes asap-common/dependencies/rs/**).
  • To fix: delete the dead job from correctness.yml (it's redundant with rust.yml), or give it a real run step if there's a reason to keep it separate.

Not gaps (checked and ruled out)

  • The other asap-common/tests/* Python files (compare_matched_tokens/python_tests/*, compare_patterns/*.py) aren't pytest — they're driven by master_test_runner.py / compare_serialized_patterns.py, which correctness.yml already runs directly.
  • The 10 standalone (non-workspace) Rust crates under asap-tools/** (kafka producers/consumer, otlp-exporters, cluster_data_exporter ×2, fake_kafka_exporter, fake_exporter ×2, clickhouse data_exporter) have zero #[test]/#[cfg(test)] code — nothing to wire up.
  • asap-common/tests/compare_matched_tokens/rust_tests and asap-common/tests/compare_patterns are workspace members but are plain binaries (fn main), not test crates — their actual test logic runs via the Python comparison scripts above, already in CI.

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions