Test for httptrigger and functions container/newdeploy (#2861)
* Test for httptrigger and functions * Fixes with multierror * review changes Signed-off-by: Sanket Sudake <sanketsudake@gmail.com>
This commit is contained in:
+111
-3
@@ -7,6 +7,7 @@ import (
|
||||
"github.com/stretchr/testify/require"
|
||||
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
||||
|
||||
v1 "github.com/fission/fission/pkg/apis/core/v1"
|
||||
"github.com/fission/fission/test/e2e/framework"
|
||||
"github.com/fission/fission/test/e2e/framework/cli"
|
||||
"github.com/fission/fission/test/e2e/framework/services"
|
||||
@@ -61,8 +62,10 @@ func TestFissionCLI(t *testing.T) {
|
||||
|
||||
envName := "test-func-env"
|
||||
testFuncName := "hello"
|
||||
testFuncNd := "hello-nd"
|
||||
testFuncCn := "hello-cn"
|
||||
|
||||
t.Run("create", func(t *testing.T) {
|
||||
t.Run("create/poolmgr", func(t *testing.T) {
|
||||
|
||||
_, err = cli.ExecCommand(f, ctx, "env", "create", "--name", envName, "--image", "fission/python-env")
|
||||
require.NoError(t, err)
|
||||
@@ -75,9 +78,33 @@ func TestFissionCLI(t *testing.T) {
|
||||
require.NotNil(t, testFunc)
|
||||
require.Equal(t, testFuncName, testFunc.Name)
|
||||
require.Equal(t, envName, testFunc.Spec.Environment.Name)
|
||||
require.Equal(t, v1.ExecutorTypePoolmgr, testFunc.Spec.InvokeStrategy.ExecutionStrategy.ExecutorType)
|
||||
})
|
||||
|
||||
t.Run("update", func(t *testing.T) {
|
||||
t.Run("create/newdeploy", func(t *testing.T) {
|
||||
_, err := cli.ExecCommand(f, ctx, "function", "create", "--name", testFuncNd, "--code", "./hello.js", "--env", envName, "--executortype", "newdeploy")
|
||||
require.NoError(t, err)
|
||||
|
||||
testFunc, err := fissionClient.CoreV1().Functions(metav1.NamespaceDefault).Get(ctx, testFuncNd, metav1.GetOptions{})
|
||||
require.NoError(t, err)
|
||||
require.NotNil(t, testFunc)
|
||||
require.Equal(t, testFuncNd, testFunc.Name)
|
||||
require.Equal(t, envName, testFunc.Spec.Environment.Name)
|
||||
require.Equal(t, v1.ExecutorTypeNewdeploy, testFunc.Spec.InvokeStrategy.ExecutionStrategy.ExecutorType)
|
||||
})
|
||||
|
||||
t.Run("create/container", func(t *testing.T) {
|
||||
_, err := cli.ExecCommand(f, ctx, "function", "run-container", "--name", testFuncCn, "--image", "gcr.io/google-samples/node-hello:1.0", "--port", "8080")
|
||||
require.NoError(t, err)
|
||||
|
||||
testFunc, err := fissionClient.CoreV1().Functions(metav1.NamespaceDefault).Get(ctx, testFuncCn, metav1.GetOptions{})
|
||||
require.NoError(t, err)
|
||||
require.NotNil(t, testFunc)
|
||||
require.Equal(t, testFuncCn, testFunc.Name)
|
||||
require.Equal(t, v1.ExecutorTypeContainer, testFunc.Spec.InvokeStrategy.ExecutionStrategy.ExecutorType)
|
||||
})
|
||||
|
||||
t.Run("update/poolmgr", func(t *testing.T) {
|
||||
_, err := cli.ExecCommand(f, ctx, "function", "update", "--name", testFuncName, "--labels", "env=test")
|
||||
require.NoError(t, err)
|
||||
|
||||
@@ -87,9 +114,41 @@ func TestFissionCLI(t *testing.T) {
|
||||
require.Equal(t, testFuncName, testFunc.Name)
|
||||
require.NotNil(t, testFunc.Labels)
|
||||
require.Equal(t, "test", testFunc.Labels["env"])
|
||||
require.Equal(t, v1.ExecutorTypePoolmgr, testFunc.Spec.InvokeStrategy.ExecutionStrategy.ExecutorType)
|
||||
})
|
||||
|
||||
t.Run("delete", func(t *testing.T) {
|
||||
// t.Run("test/poolmgr", func(t *testing.T) {
|
||||
// _, err := cli.ExecCommand(f, ctx, "function", "test", "--name", testFuncName)
|
||||
// require.NoError(t, err)
|
||||
// })
|
||||
|
||||
// t.Run("test/newdeploy", func(t *testing.T) {
|
||||
// _, err := cli.ExecCommand(f, ctx, "function", "test", "--name", testFuncNd)
|
||||
// require.NoError(t, err)
|
||||
// })
|
||||
|
||||
// t.Run("test/container", func(t *testing.T) {
|
||||
// _, err := cli.ExecCommand(f, ctx, "function", "test", "--name", testFuncCn)
|
||||
// require.NoError(t, err)
|
||||
// })
|
||||
|
||||
t.Run("delete/newdeploy", func(t *testing.T) {
|
||||
_, err := cli.ExecCommand(f, ctx, "function", "delete", "--name", testFuncNd)
|
||||
require.NoError(t, err)
|
||||
|
||||
_, err = fissionClient.CoreV1().Functions(metav1.NamespaceDefault).Get(ctx, testFuncNd, metav1.GetOptions{})
|
||||
require.Error(t, err)
|
||||
})
|
||||
|
||||
t.Run("delete/container", func(t *testing.T) {
|
||||
_, err := cli.ExecCommand(f, ctx, "function", "delete", "--name", testFuncCn)
|
||||
require.NoError(t, err)
|
||||
|
||||
_, err = fissionClient.CoreV1().Functions(metav1.NamespaceDefault).Get(ctx, testFuncCn, metav1.GetOptions{})
|
||||
require.Error(t, err)
|
||||
})
|
||||
|
||||
t.Run("delete/poolmgr", func(t *testing.T) {
|
||||
_, err := cli.ExecCommand(f, ctx, "function", "delete", "--name", testFuncName)
|
||||
require.NoError(t, err)
|
||||
|
||||
@@ -100,4 +159,53 @@ func TestFissionCLI(t *testing.T) {
|
||||
})
|
||||
|
||||
})
|
||||
|
||||
t.Run("httptrigger", func(t *testing.T) {
|
||||
|
||||
t.Run("create", func(t *testing.T) {
|
||||
// create env and function first
|
||||
_, err := cli.ExecCommand(f, ctx, "env", "create", "--name", "test-func-env", "--image", "fission/python-env")
|
||||
require.NoError(t, err)
|
||||
_, err = cli.ExecCommand(f, ctx, "function", "create", "--name", "test-func", "--code", "./hello.js", "--env", "test-func-env")
|
||||
require.NoError(t, err)
|
||||
|
||||
_, err = cli.ExecCommand(f, ctx, "httptrigger", "create", "--name", "test-httptrigger", "--function", "test-func", "--url", "/hello")
|
||||
require.NoError(t, err)
|
||||
|
||||
ht, err := fissionClient.CoreV1().HTTPTriggers(metav1.NamespaceDefault).Get(ctx, "test-httptrigger", metav1.GetOptions{})
|
||||
require.NoError(t, err)
|
||||
require.NotNil(t, ht)
|
||||
require.Equal(t, "test-httptrigger", ht.Name)
|
||||
require.Equal(t, "test-func", ht.Spec.FunctionReference.Name)
|
||||
require.Equal(t, "/hello", ht.Spec.RelativeURL)
|
||||
})
|
||||
|
||||
t.Run("update", func(t *testing.T) {
|
||||
_, err := cli.ExecCommand(f, ctx, "httptrigger", "update", "--name", "test-httptrigger", "--url", "/hello2")
|
||||
require.NoError(t, err)
|
||||
|
||||
ht, err := fissionClient.CoreV1().HTTPTriggers(metav1.NamespaceDefault).Get(ctx, "test-httptrigger", metav1.GetOptions{})
|
||||
require.NoError(t, err)
|
||||
require.NotNil(t, ht)
|
||||
require.Equal(t, "test-httptrigger", ht.Name)
|
||||
require.Equal(t, "test-func", ht.Spec.FunctionReference.Name)
|
||||
require.Equal(t, "/hello2", ht.Spec.RelativeURL)
|
||||
})
|
||||
|
||||
t.Run("delete", func(t *testing.T) {
|
||||
_, err := cli.ExecCommand(f, ctx, "httptrigger", "delete", "--name", "test-httptrigger")
|
||||
require.NoError(t, err)
|
||||
|
||||
_, err = fissionClient.CoreV1().HTTPTriggers(metav1.NamespaceDefault).Get(ctx, "test-httptrigger", metav1.GetOptions{})
|
||||
require.Error(t, err)
|
||||
|
||||
_, err = cli.ExecCommand(f, ctx, "function", "delete", "--name", "test-func")
|
||||
require.NoError(t, err)
|
||||
|
||||
_, err = cli.ExecCommand(f, ctx, "env", "delete", "--name", "test-func-env")
|
||||
require.NoError(t, err)
|
||||
})
|
||||
|
||||
})
|
||||
|
||||
}
|
||||
|
||||
@@ -22,6 +22,18 @@ func StartServices(ctx context.Context, f *framework.Framework) error {
|
||||
if err != nil {
|
||||
return fmt.Errorf("error toggling metric address: %v", err)
|
||||
}
|
||||
|
||||
// namespace settings for components
|
||||
os.Setenv("FISSION_BUILDER_NAMESPACE", "")
|
||||
os.Setenv("FISSION_FUNCTION_NAMESPACE", "")
|
||||
os.Setenv("FISSION_DEFAULT_NAMESPACE", "default")
|
||||
os.Setenv("FISSION_RESOURCE_NAMESPACES", "default")
|
||||
utils.DefaultNSResolver().DefaultNamespace = "default"
|
||||
utils.DefaultNSResolver().FissionResourceNS = map[string]string{
|
||||
"default": "default",
|
||||
}
|
||||
|
||||
os.Setenv("POD_READY_TIMEOUT", "300s")
|
||||
err = executor.StartExecutor(ctx, f.ClientGen(), f.Logger(), executorPort)
|
||||
if err != nil {
|
||||
return fmt.Errorf("error starting executor: %v", err)
|
||||
@@ -88,5 +100,6 @@ func StartServices(ctx context.Context, f *framework.Framework) error {
|
||||
f.ServiceInfo["router"] = framework.ServiceInfo{
|
||||
Port: routerPort,
|
||||
}
|
||||
os.Setenv("FISSION_ROUTER_URL", fmt.Sprintf("http://localhost:%d", routerPort))
|
||||
return nil
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user