databricks-cli/libs/process
Serge Smertin f111b0846e
Added process stubbing for easier testing of launched subprocesses (#963)
## Changes

This PR makes unit testing with subprocesses fast.

```
	ctx := context.Background()
	ctx, stub := process.WithStub(ctx)
	stub.WithDefaultOutput("meeee")

	ctx = env.Set(ctx, "FOO", "bar")

	out, err := process.Background(ctx, []string{"/usr/local/bin/meeecho", "1", "--foo", "bar"})
	require.NoError(t, err)
	require.Equal(t, "meeee", out)
	require.Equal(t, 1, stub.Len())
	require.Equal(t, []string{"meeecho 1 --foo bar"}, stub.Commands())

	allEnv := stub.CombinedEnvironment()
	require.Equal(t, "bar", allEnv["FOO"])
	require.Equal(t, "bar", stub.LookupEnv("FOO"))
```

This should make further iterations of
https://github.com/databricks/cli/pull/914 easier

## Tests

`make test`
2023-11-09 14:24:05 +00:00
..
background.go Added process stubbing for easier testing of launched subprocesses (#963) 2023-11-09 14:24:05 +00:00
background_test.go Added `process.Background()` and `process.Forwarded()` (#804) 2023-09-27 09:04:44 +00:00
forwarded.go Added process stubbing for easier testing of launched subprocesses (#963) 2023-11-09 14:24:05 +00:00
forwarded_test.go Added `process.Background()` and `process.Forwarded()` (#804) 2023-09-27 09:04:44 +00:00
opts.go Added `process.Background()` and `process.Forwarded()` (#804) 2023-09-27 09:04:44 +00:00
opts_test.go Added `process.Background()` and `process.Forwarded()` (#804) 2023-09-27 09:04:44 +00:00
stub.go Added process stubbing for easier testing of launched subprocesses (#963) 2023-11-09 14:24:05 +00:00
stub_test.go Added process stubbing for easier testing of launched subprocesses (#963) 2023-11-09 14:24:05 +00:00