Repository navigation
acceptance: always distinguish UUIDs in test output - #7021
Conversation
| matches := repl.Old.FindAllString(s, -1) | ||
| if len(matches) <= 1 { | ||
| // Assign a stable [N] suffix per distinct matched value, in order of first | ||
| // appearance. Number only when there is more than one distinct value: a lone |
There was a problem hiding this comment.
I'd send this change as separate PR, to separate all those diffs unrelate to UUIDs.
| "name": "schema-[UNIQUE_NAME]", | ||
| "owner": "[USERNAME]", | ||
| "schema_id": "[UUID]", | ||
| "updated_at": [UNIX_TIME_MILLIS][0], |
There was a problem hiding this comment.
created_at and updated_at contain the same timestamp, so there is only one distinct value. The generic change adds suffixes only when there are multiple distinct values; repeated occurrences of a single value stay unsuffixed. That behavior and these timestamp golden changes now live in #7420. This PR only adds UUID numbering to metastore_id and schema_id in this file.
✅ Integration test reportCommit: aedd90c
Top 14 slowest tests (at least 2 minutes):
|
26ab8ff to
fc3f149
Compare
767640b to
8fabaa1
Compare
|
Commit: Regression test reportSelected 20 changed tests (limit=20, 76 not selected) 25 tests: regression=0 unreleased=0 coverage=25 failing=0
|
fc3f149 to
5c0a683
Compare
8fabaa1 to
4190d12
Compare
denik
left a comment
There was a problem hiding this comment.
Can you test this for flakiness? For example, by pushing 5 empty commits one after another.
a67dc51 to
95981fe
Compare
21ca39e to
aedd90c
Compare
Numbered UUIDs from main (#7021); restores the volume_id skip in change-name and the recorded schema_id in user_agent/simple, which the rebase dropped. Co-authored-by: Isaac <no-reply@databricks.com>
main now numbers repeated UUIDs in acceptance output (#7021). The pipelines test command stack is based on an older main, so its goldens are regenerated here. This commit becomes empty once that stack is rebased. Co-authored-by: Isaac <no-reply@databricks.com>
❌ Integration test reportCommit: 688c228
18 interesting tests: 14 flaky, 4 FAIL
Top 50 slowest tests (at least 2 minutes):
|
Merging main brings acceptance: always distinguish UUIDs in test output (#7021), which numbers repeated UUIDs. The job get line in the immutable bind test has two UUIDs, so its expected output now shows [UUID][0] and [UUID][1], matching the CI run. Co-authored-by: Isaac <no-reply@databricks.com>
## Changes Add numeric suffixes for `Distinct` replacements only when an output contains multiple distinct values. A repeated single value now stays unsuffixed: `[HASH][0]` becomes `[HASH]`. Includes the corresponding acceptance golden updates. ## Why Keep numbering focused on distinguishing different values. This is the generic prerequisite for the UUID numbering stack, followed by databricks#7020, databricks#7423, and databricks#7021. ## Tests Unit coverage checks single matches, repeated identical values, and multiple distinct values. Formatting, checks, lint, and the full test suite passed on the completed stack; databricks#7021 records the transient retry. _This change was split and validated with Codex._
…databricks#7020) ## Changes Add opt-in UUID numbering through `UniqueUUID`, defaulting to `false`, with unit tests and acceptance selftests. Existing goldens stay unchanged. ## Why Keep the UUID replacement implementation separate from the golden updates. This is layer 2 after databricks#7420: databricks#7423 prepares affected tests, then databricks#7021 removes the temporary option and enables numbering unconditionally. ## Tests `go test ./libs/testdiff ./acceptance/internal` and both UUID acceptance selftests passed on this layer. _This PR was written by Isaac and revised with Codex._ Co-authored-by: Isaac <no-reply@databricks.com>
…atabricks#7423) ## Changes Capture the immutable no-artifacts test's initial plan in a separate golden, preserving its assertions. Teach the Python replacement helper to honor `Distinct` so template comparisons can match numbered goldens. ## Why Saved-plan deployment reuses the planned snapshot UUID; direct deployment generates another. Separate plan output lets both variants share expectations. Template comparisons also need the same numbering behavior as the Go harness before databricks#7021 removes the UUID opt-out. Stacked on databricks#7020. UUID numbering remains off by default in this PR. ## Tests Both immutable variants, template tests, and helper selftests passed with numbering off. Python doctests cover repeated values, multiple distinct values, and already-normalized output. Formatting, checks, lint, and the full test suite passed with numbering always enabled on the completed stack; databricks#7021 records the transient retry. _This PR was written by Codex._
Numbered UUIDs from main (#7021); restores the volume_id skip in change-name and the recorded schema_id in user_agent/simple, which the rebase dropped. Co-authored-by: Isaac <no-reply@databricks.com>
Numbered UUIDs from main (#7021); restores the volume_id skip in change-name and the recorded schema_id in user_agent/simple, which the rebase dropped. Co-authored-by: Isaac <no-reply@databricks.com>
…atabricks#7492) ## Changes In `bundle/resources/alerts/basic`, the check that the alert is gone after `bundle destroy` now asserts only that the `alerts-v2 get-alert` error contains `does not exist`. It no longer records the full backend message. It follows the same `musterr ... &> LOG.x` + `contains.py` pattern used in `acceptance/cmd/api/response-handling`. ## Why Since 2026-11-10 ~18:00 UTC the backend returns a different not-found message for a deleted alert, on AWS, Azure and GCP: ``` -Error: Alert with ID '[ALERT_ID]' does not exist. +Error: Tree node with id [ALERT_ID] does not exist ``` The test only needs to show that the alert was deleted. The exact wording is backend-owned and has now changed once, so matching the stable part keeps the test from breaking on the next rewording. Decisions: - **Not a CLI regression.** The dashboard links the start to databricks#7021 (UUID numbering in goldens), but databricks#7021 does not touch this test or the `ALERT_ID` replacement. Failures began at the same time on all three clouds across several different CLI commits, which points to a backend rollout. - **Not treated as a backend bug.** The call still fails with a not-found error and exit code 1. Only the message text changed, so I did not file a backend ticket. - **libs/testserver left unchanged.** It still returns the old message, which also contains `does not exist`, so local and cloud runs both pass. ## Tests - Local: `go test ./acceptance -run 'TestAccept/bundle/resources/alerts/basic'` passes. - Cloud (AWS): `testme-aws -count=1 -run 'TestAccept/bundle/resources/alerts/basic'` passes for `DMS=` and `DMS=true` against the current backend. ## Dashboard: | link | failure | |---|---| | go/cli/dashboard/error/3324?main=1&pr=1&end=2026-11-11T17:00:00Z&last=2d | `Error: Tree node with id [ALERT_ID] does not exist` (expected `Error: Alert with ID '[ALERT_ID]' does not exist.`) | | go/cli/dashboard/test/acceptance.TestAccept/bundle/resources/alerts/basic/DMS=?main=1&pr=1&end=2026-11-11T17:00:00Z&last=2d | same | | go/cli/dashboard/test/acceptance.TestAccept/bundle/resources/alerts/basic/DMS=true?main=1&pr=1&end=2026-11-11T17:00:00Z&last=2d | same | This pull request and its description were written by Isaac. Co-authored-by: Isaac <no-reply@databricks.com>
Changes
Remove the temporary
UniqueUUIDoption and always distinguish UUIDs, updating acceptance goldens with numeric suffixes.In the materialization-set
batchandremoval_scopetests, register the deployed set ID as[SET1_ID]withread_id.pyand remove the compact-UUID TOML replacements. This makes the dashed local IDs and compact cloud IDs use the same named replacement before request/operation UUIDs are numbered.Why
Expected output should distinguish different UUIDs consistently. #7423 handles the immutable and template comparisons. The materialization-set fix addresses the deterministic cloud mismatch found during the five sequential CI repetitions.
Tests
./task fmt,./task checks,./task lint, and the materialization-set acceptance tests passed. The full local suite was blocked by the unrelated completion-test SIGPIPE and temporary-home cleanup;inittimepassed on retry. Cloud CI validation is pending.This PR was written by Isaac and revised with Codex.