Repository navigation
Simulate test-only pipeline updates in the test server - #7425
Draft
tharunbhuk-db wants to merge 17 commits into
Draft
tharunbhuk-db wants to merge 17 commits into
tharunbhuk-db wants to merge 17 commits into
Conversation
Submits a test-only pipeline update with optional test selections and pytest arguments. Relative selections resolve to deployed workspace paths through the bundle sync root, or against the pipeline's root_path when the pipeline is identified with --pipeline-id. Only -k and -m are accepted in --pytest-arg. Co-authored-by: Isaac <no-reply@databricks.com>
Cover each rejected pytest option with a unit test, and add an acceptance case for `--pytest-arg VALUE`, which keeps commas and spaces. Co-authored-by: Isaac <no-reply@databricks.com>
The service names a test case relative to pytest's rootdir: the deepest folder that holds the pipeline's root_path and every test source, or, without a root_path, the folder of every test source. A test ID copied from the results now runs that test again in any project layout. A relative selection that exists locally still maps to its deployed path. Any other relative selection resolves against that folder, which the command reads from the deployed pipeline. With --pipeline-id, all relative selections resolve against it. Co-authored-by: Isaac <no-reply@databricks.com>
…nd preview A local test path mapped to workspace.file_path in every sync mode. A source-linked deployment runs the source files, so a local path now maps under the sync root, as TranslatePaths maps resource paths. An immutable deployment runs a snapshot whose path the command does not know, so a local path is an error there that points to test IDs and workspace paths, which still work. The folder of test IDs is read once, and only when a selection is a relative path. Paths in errors use forward slashes. The Short text starts with *Preview*, like other preview commands. Tests: the option list covers each rejected form once, and a folder test source without root_path has its parent as the folder of test IDs, as the service computes it. Co-authored-by: Isaac <no-reply@databricks.com>
Co-authored-by: Isaac <no-reply@databricks.com>
Error messages and edge cases stay in unit tests; wiring, request bodies and command output stay in acceptance tests. Examples avoid /Workspace/Shared.
…hile it is experimental
…orkspace paths Setting MSYS_NO_PATHCONV for the whole folder also stopped Git Bash from converting the paths of the Python helpers, so print_requests.py failed to start on Windows. Co-authored-by: Isaac <no-reply@databricks.com>
The test server now runs a test-only update like the service: it collects the tests under the selection, moves the update through its states as it is polled, emits test_case_progress and test_run_summary events, pages List Pipeline Events, rejects a new update while one is active, and stops an update on request. The pipelines test scripts stop the active update between runs, because the command does not wait for results yet.
This was referenced Nov 10, 2026
Contributor
|
Commit: Regression test reportSelected 6 changed tests (limit=20, 0 not selected) 6 tests: regression=6 unreleased=0 coverage=0 failing=0
TestAccept/pipelines/databricks-cli-help: branch ✅ | main (b694c4c) ❌ | latest (v1.25.0) ❌main (b694c4c): latest (v1.25.0): same output as main (b694c4c) TestAccept/pipelines/test/arguments: branch ✅ | main (b694c4c) ❌ | latest (v1.25.0) ❌main (b694c4c): latest (v1.25.0): TestAccept/pipelines/test/immutable: branch ✅ | main (b694c4c) ❌ | latest (v1.25.0) ❌main (b694c4c): latest (v1.25.0): same output as main (b694c4c) TestAccept/pipelines/test/pipeline-id: branch ✅ | main (b694c4c) ❌ | latest (v1.25.0) ❌main (b694c4c): latest (v1.25.0): same output as main (b694c4c) TestAccept/pipelines/test/selection: branch ✅ | main (b694c4c) ❌ | latest (v1.25.0) ❌main (b694c4c): latest (v1.25.0): same output as main (b694c4c) TestAccept/pipelines/test/submit-error: branch ✅ | main (b694c4c) ❌ | latest (v1.25.0) ❌main (b694c4c): latest (v1.25.0): |
Collaborator
✅ Integration test reportCommit: fe3e7b4
Top 3 slowest tests (at least 2 minutes):
|
tharunbhuk-db
added a commit
that referenced
this pull request
Nov 10, 2026
tharunbhuk-db
force-pushed
the
tharun/pipelines-test-pr1-command
branch
2 times, most recently
from
November 10, 2026 17:13
4401851 to
9be85fd
Compare
This branch has not been deployed
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.
🥞 Stacked PR
Changes
def test_*functions intest_*.pyfiles under the selection, or underroot_pathwithout one.test_case_progressandtest_run_summaryevents, and pages List Pipeline Events.selectionandimmutableacceptance scripts stop the active update between runs, because the command does not wait for results yet. Their recorded output is unchanged.Why
The next PRs wait for test results and read test events. Their acceptance tests need a server that produces them. This PR changes only test infrastructure, so it can be reviewed on its own.
Tests
libs/testserver/pipelines_testing_test.go.acceptance/pipelines/testcases pass with the same output.This pull request and its description were written by Cursor.