databricks-cli/internal/testcli
Pieter Noordhuis 70b7bbfd81
Remove calls to `t.Setenv` from integration tests (#2018)
## Changes

The `Setenv` helper function configures an environment variable and
resets it to its original value when exiting the test scope. It is
incompatible with running tests in parallel because it modifies
process-wide state. The `libs/env` package defines functions to interact
with the environment but records `Setenv` calls on a `context.Context`.
This enables us to override/specialize the environment scoped to a
context.

Pre-requisites for removing the `t.Setenv` calls:
* Make `cmdio.NewIO` accept a context and use it with `libs/env`
* Make all `internal/testcli` functions use a context

The rest of this change:
* Modifies integration tests to initialize a context to use if there
wasn't already one
* Updates `t.Setenv` calls to use `env.Set`

## Tests

n/a
2024-12-16 12:34:37 +01:00
..
README.md Move the CLI test runner to `internal/testcli` package (#2004) 2024-12-12 16:48:51 +00:00
runner.go Remove calls to `t.Setenv` from integration tests (#2018) 2024-12-16 12:34:37 +01:00

README.md

testcli

This package provides a way to run the CLI from tests as if it were a separate process. By running the CLI inline we can still set breakpoints and step through execution.

It transitively imports pretty much this entire repository, which is why we intentionally keep this package separate from testutil.