1
0
mirror of https://github.com/getsops/sops.git synced 2026-02-05 12:45:21 +01:00
Files
AJ Bahnken 6910225545 Adds support for sops publish-ing to Vault (#494)
* Add vault/api to vendor/

* Adds support for sops publish-ing to Vault

* Adds support for publishing secrets (unencrypted) to Vault
* Adds a new EmitAsMap for TreeBanches
* Adds documentation about sops publish-ing to Vault
* Initial integration/functional test for publishing to vault
2019-07-16 14:33:59 -07:00

62 lines
1.5 KiB
Go

// Licensed under the MIT license, see LICENCE file for details.
package quicktest
import (
"io/ioutil"
"os"
"reflect"
)
// Patch sets a variable to a temporary value for the duration of the
// test (until c.Done is called).
//
// It sets the value pointed to by the given destination to the given
// value, which must be assignable to the element type of the
// destination.
//
// When c.Done is called, the destination is set to its original
// value.
func (c *C) Patch(dest, value interface{}) {
destv := reflect.ValueOf(dest).Elem()
oldv := reflect.New(destv.Type()).Elem()
oldv.Set(destv)
valuev := reflect.ValueOf(value)
if !valuev.IsValid() {
// This isn't quite right when the destination type is not
// nilable, but it's better than the complex alternative.
valuev = reflect.Zero(destv.Type())
}
destv.Set(valuev)
c.Defer(func() {
destv.Set(oldv)
})
}
// Setenv sets an environment variable to a temporary value for the
// duration of the test (until c.Done is called).
//
// When c.Done is called, the environment variable will be returned
// to its original value.
func (c *C) Setenv(name, val string) {
oldVal := os.Getenv(name)
os.Setenv(name, val)
c.Defer(func() {
os.Setenv(name, oldVal)
})
}
// Mkdir makes a temporary directory and returns its name.
//
// The directory and its contents will be removed when
// c.Done is called.
func (c *C) Mkdir() string {
name, err := ioutil.TempDir("", "quicktest-")
c.Assert(err, Equals, nil)
c.Defer(func() {
err := os.RemoveAll(name)
c.Check(err, Equals, nil)
})
return name
}