Merge "Implement render method for container exec"

This commit is contained in:
Zuul 2021-05-24 21:32:08 +00:00 committed by Gerrit Code Review
commit 1f5dbf8645
2 changed files with 57 additions and 2 deletions

View File

@ -170,8 +170,12 @@ func (c *ContainerExecutor) Validate() error {
}
// Render executor documents
func (c *ContainerExecutor) Render(_ io.Writer, _ ifc.RenderOptions) error {
return commonerrors.ErrNotImplemented{}
func (c *ContainerExecutor) Render(w io.Writer, o ifc.RenderOptions) error {
bundle, err := c.ExecutorBundle.SelectBundle(o.FilterSelector)
if err != nil {
return err
}
return bundle.Write(w)
}
func (c *ContainerExecutor) setConfig() error {

View File

@ -13,6 +13,7 @@
package executors_test
import (
"bytes"
"fmt"
"io"
"testing"
@ -289,6 +290,56 @@ func TestSetKubeConfig(t *testing.T) {
}
}
func TestContainerRender(t *testing.T) {
testCases := []struct {
name string
bundleData []byte
opts ifc.RenderOptions
expectedErr error
expectedOut string
}{
{
name: "empty bundle",
bundleData: []byte{},
opts: ifc.RenderOptions{},
expectedOut: "",
expectedErr: nil,
},
{
name: "valid bundle",
bundleData: []byte(`apiVersion: unittest.org/v1alpha1
kind: Test
metadata:
name: TestName`),
opts: ifc.RenderOptions{FilterSelector: document.NewSelector().ByKind("Test").ByName("TestName")},
expectedOut: `---
apiVersion: unittest.org/v1alpha1
kind: Test
metadata:
name: TestName
...
`,
expectedErr: nil,
},
}
buf := &bytes.Buffer{}
for _, tc := range testCases {
tt := tc
t.Run(tt.name, func(t *testing.T) {
bundle, err := document.NewBundleFromBytes(tt.bundleData)
require.NoError(t, err)
e := executors.ContainerExecutor{
ExecutorBundle: bundle,
}
err = e.Render(buf, tt.opts)
assert.Equal(t, tt.expectedErr, err)
assert.Equal(t, tt.expectedOut, buf.String())
buf.Reset()
})
}
}
type fakeKubeConfig struct {
getFile func() (string, kubeconfig.Cleanup, error)
}