Commit Graph

121 Commits

Author SHA1 Message Date
Shreyas Goenka 0253039aa2
- 2025-02-05 20:59:01 +01:00
Shreyas Goenka 73fac825ce
remove pid file 2025-02-05 15:32:19 +01:00
Shreyas Goenka fd6b129582
make test generic 2025-02-05 15:30:34 +01:00
Shreyas Goenka c9ebc82232
add error test case' 2025-02-05 15:28:45 +01:00
Shreyas Goenka 1bb45377e0
Merge remote-tracking branch 'origin' into async-logger-clean 2025-02-05 15:20:34 +01:00
Andrew Nester 5c90752797
acc: Added acceptance test for CLI commands inside bundle with and without profile flag (#2270)
## Changes
This encodes existing behaviour in CLI as reported here: #1358
2025-02-05 11:53:36 +00:00
shreyas-goenka 57b8d336e0
Add ability to record headers in acceptance tests (#2296)
## Changes
HTTP headers like the User-Agent are an important part of our internal
ETL pipelines. This PR adds the ability to validate the headers used in
an HTTP request as part of our acceptance tests.

## Tests
Modifying existing test.
2025-02-05 09:32:15 +00:00
Simon Poltier 84b694f2a1
accept JSON includes (#2265)
#2201 disabled using JSON as part of a bundle definition. I believe this
was not intended.

## Changes
Accept json files as includes, just as YAML files.
## Tests
Covered by the tests in #2201
2025-02-04 19:28:19 +01:00
shreyas-goenka d86ad91899
Allow test servers to return errors responses (#2291)
## Changes
The APIs at Databricks when returning a non `200` status code will
return a response body of the format:
```
{
  "error_code": "Error code",
  "message": "Human-readable error message."
}
```

This PR adds the ability to stub non-200 status codes in the test
server, allowing us to mock API errors from Databricks.
## Tests
New test
2025-02-04 17:38:11 +01:00
Shreyas Goenka 8c90ad0ec4
clean 2025-02-04 16:52:13 +01:00
Shreyas Goenka d5e03f08d5
- 2025-02-04 16:25:59 +01:00
Shreyas Goenka 407e9e0ef0
- 2025-02-04 16:03:32 +01:00
Shreyas Goenka 0abba860f2
= 2025-02-04 16:03:08 +01:00
Shreyas Goenka 9e2a689619
- 2025-02-04 16:02:14 +01:00
Shreyas Goenka 963022af0f
- 2025-02-04 16:00:43 +01:00
Shreyas Goenka 5b6ffd57bf
- 2025-02-04 15:58:12 +01:00
Shreyas Goenka 17698a5147
- 2025-02-04 15:57:50 +01:00
Shreyas Goenka 33ff865d6e
cleaner output 2025-02-04 15:56:23 +01:00
Shreyas Goenka 39ff2909db
pass test 2025-02-04 15:52:39 +01:00
Shreyas Goenka 918af62827
remove eventually files 2025-02-04 15:44:03 +01:00
Shreyas Goenka 981dbf787d
add bash script for waiting 2025-02-04 15:34:25 +01:00
Denis Bilenko 9320bd1682
acc: Use [VARNAME] instead of $VARNAME (#2282)
$VARNAME is what we use for environment variables, it's good to
separate.

Some people use envsubst for homemade variable interpolation, it's also
good to have separation there.
2025-02-03 14:10:19 +00:00
Shreyas Goenka 403f61228d
address comments 2025-02-03 13:41:21 +01:00
Shreyas Goenka f3e7594f39
fx test 2025-02-03 13:14:38 +01:00
Shreyas Goenka 2cbc39fdc9
- 2025-02-03 13:10:42 +01:00
Shreyas Goenka 2cd25e388e
- 2025-02-03 12:24:32 +01:00
Shreyas Goenka dc0ab300dd
- 2025-02-03 12:22:22 +01:00
Shreyas Goenka 4f979007af
- 2025-02-03 12:14:23 +01:00
Shreyas Goenka c1a322555a
fx test 2025-02-03 12:09:54 +01:00
Shreyas Goenka 5385faf7d8
fix test 2025-02-03 11:54:01 +01:00
Denis Bilenko f267318bb9
Include acceptance tests in integration tests (#2242)
## Changes
- Include acceptance directory in integration tests. Acceptance tests
will not start local server if CLOUD_ENV is set, so they become
integration tests.
- Add dependency for vendor to integration, so that CLI can be build
there.
- Implement LocalOnly option in test.toml to opt out of running
acceptance tests as integration tests. Use it in certain tests that are
difficult or not necessary to fix when run as integration tests.
- Update terraform test to redact timings out.
- Clean up .workspace.current_user from outputs of the tests.

## Tests
Existing tests.
2025-02-03 10:43:25 +00:00
Shreyas Goenka 88015876ad
pass test 2025-02-03 11:42:17 +01:00
Denis Bilenko fcedfe4c78
acc: Consistent & detailed output for file issues (#2279)
## Changes
- Include compact relPath in the error message title. Include full paths
in separate lines below.
- Previously sometimes full paths were printed, sometime only rel path.

## Tests
Manually trigger the errors.
2025-02-03 10:29:13 +00:00
Denis Bilenko 2f798c4ded
acc: Remove initial '$CLI --version' call (#2280)
It is proven to be not necessary.

```
~/work/cli/acceptance % hyperfine -w 2 'go test'  # with change:
Benchmark 1: go test
  Time (mean ± σ):      4.983 s ±  0.209 s    [User: 6.073 s, System: 9.869 s]
  Range (min … max):    4.792 s …  5.483 s    10 runs

~/work/cli/acceptance % git stash  # without change:
~/work/cli/acceptance % hyperfine -w 2 'go test'
Benchmark 1: go test
  Time (mean ± σ):      5.018 s ±  0.100 s    [User: 6.142 s, System: 10.234 s]
  Range (min … max):    4.899 s …  5.182 s    10 runs
```
2025-02-03 10:03:18 +00:00
Shreyas Goenka da0cf951b9
- 2025-02-03 06:28:37 +01:00
Shreyas Goenka c412eb7666
- 2025-02-03 06:28:16 +01:00
Shreyas Goenka 382efe41f8
- 2025-02-03 06:27:34 +01:00
Shreyas Goenka d7bf1dc87e
add test for upload 2025-02-03 05:19:26 +01:00
Shreyas Goenka 259a21a120
- 2025-02-03 04:33:21 +01:00
Shreyas Goenka 90148d8a50
replace os 2025-02-03 04:26:58 +01:00
Shreyas Goenka f09a780887
fix panic 2025-02-03 04:24:09 +01:00
Shreyas Goenka b83e57621e
- 2025-02-03 04:20:24 +01:00
Shreyas Goenka 427c755ea7
major cleanup 2025-02-03 04:18:38 +01:00
Shreyas Goenka 5d75c3f098
Merge remote-tracking branch 'origin' into implement-async-logger 2025-02-03 00:21:02 +01:00
Denis Bilenko e5730bf57e
Use real terraform in acceptance tests (#2267)
## Changes
- Add a script install_terraform.py that downloads terraform and
provider and generates a config to use, inspired by
https://gist.github.com/pietern/1cb6b6f3e0a452328e13cdc75031105e
- Make acceptance tests run this script once before running the tests
and set the required env vars to make cli use this terraform
installation.
- Use OS-specific directory for things that are build by acceptance test
runner (CLI and terraform).

This enables acceptance tests against cloud #2242 and local test for
bundle deploy #2254.

## Tests
- Add an acceptance test for standalone terraform. This is useful to
debug terraform with TF_LOG=DEBUG to see that it uses local provider.
- Other acceptance tests are updated with regard to terraform exec path.
- The overall time for tests locally is unchanged (if terraform is
already fetched).
2025-01-31 13:53:13 +00:00
shreyas-goenka 787dbe9099
Add request body assertions to acceptance tests (#2263)
## Changes
With this PR, any acceptance tests that define custom server stubs in
`test.toml` will automatically record all HTTP requests made and assert
on them.

Builds on top of https://github.com/databricks/cli/pull/2226

## Tests
Modifying existing acceptance test.
2025-01-31 13:31:23 +00:00
shreyas-goenka 3c6eacb05b
Add feature to mock server APIs in acceptance tests (#2226)
## Changes
This PR allows us to define custom server stubs in a `test.toml` file. 

Note: A followup PR will add functionality to do assertions on the API
request itself.

## Tests
New acceptance test.
2025-01-30 10:43:07 +00:00
Denis Bilenko f1efbd7d9f
acc: add -norepl flag that disables replacements (for debugging) (#2269) 2025-01-30 10:38:54 +00:00
Denis Bilenko 58ef34f320
acc: Include "id" into /api/2.0/preview/scim/v2/Me response (#2266)
This is something terraform provider expects.

Related to https://github.com/databricks/cli/pull/2242
2025-01-29 17:35:03 +00:00
shreyas-goenka 55c03cc119
Always close test HTTP server during cleanup (#2261)
## Changes
This PR registers the `server.Close()` function to be run during test
cleanup in the server initialization function. This ensures that all
test servers are closed as soon as the test they are scoped to finish.

Motivated by https://github.com/databricks/cli/pull/2255/files where a
regression was introduced where we did not close the test server.

## Tests
N/A
2025-01-29 15:54:33 +00:00