Add CLI tests for mqtrigger/timetrigger (#2872)
* Add tests for mqtrigger/timetrigger * Change command to run tests * correct coverage command * update coverpkg --------- Signed-off-by: Sanket Sudake <sanketsudake@gmail.com>
This commit is contained in:
+1
-4
@@ -1,9 +1,6 @@
|
||||
ignore:
|
||||
- "charts"
|
||||
- "demos"
|
||||
- "Documentation"
|
||||
- "examples"
|
||||
- "test"
|
||||
- "test/tests"
|
||||
- "tools"
|
||||
- "pkg/apis/genclient"
|
||||
coverage:
|
||||
|
||||
@@ -9,6 +9,7 @@ cmd/reporter/reporter
|
||||
|
||||
# Logs
|
||||
test/logs/
|
||||
test/e2e/cli/fission-dump/
|
||||
|
||||
# Pycharm IDE
|
||||
.idea
|
||||
|
||||
+10
-8
@@ -34,11 +34,13 @@ export KUBEBUILDER_ASSETS
|
||||
|
||||
# The executor unit test only works with NodePort-type services for
|
||||
# now. So disable it for our travis ci tests except some partial tests.
|
||||
for d in $(go list ./... | grep -v '/vendor/' | grep -v 'examples/go' | grep -v 'benchmark'); do
|
||||
echo "Running tests in $d"
|
||||
go test -race -v -coverprofile=profile.out -covermode=atomic $d
|
||||
if [ -f profile.out ]; then
|
||||
cat profile.out >> coverage.txt
|
||||
rm profile.out
|
||||
fi
|
||||
done
|
||||
# for d in $(go list ./... | grep -v '/vendor/' | grep -v 'examples/go' | grep -v 'benchmark'); do
|
||||
# echo "Running tests in $d"
|
||||
# go test -race -v -coverprofile=profile.out -covermode=atomic $d
|
||||
# if [ -f profile.out ]; then
|
||||
# cat profile.out >> coverage.txt
|
||||
# rm profile.out
|
||||
# fi
|
||||
# done
|
||||
echo "Running tests ..."
|
||||
go test -race -v -coverprofile=coverage.txt -covermode=atomic --coverpkg=./... ./...
|
||||
@@ -43,6 +43,21 @@ func TestFissionCLI(t *testing.T) {
|
||||
require.Equal(t, "fission/python-env", env.Spec.Runtime.Image)
|
||||
})
|
||||
|
||||
t.Run("list", func(t *testing.T) {
|
||||
_, err := cli.ExecCommand(f, ctx, "env", "list")
|
||||
require.NoError(t, err)
|
||||
})
|
||||
|
||||
t.Run("get", func(t *testing.T) {
|
||||
_, err := cli.ExecCommand(f, ctx, "env", "get", "--name", "test-env")
|
||||
require.NoError(t, err)
|
||||
})
|
||||
|
||||
t.Run("pods", func(t *testing.T) {
|
||||
_, err := cli.ExecCommand(f, ctx, "env", "pods", "--name", "test-env")
|
||||
require.NoError(t, err)
|
||||
})
|
||||
|
||||
t.Run("update", func(t *testing.T) {
|
||||
_, err := cli.ExecCommand(f, ctx, "env", "update", "--name", "test-env", "--image", "fission/python-env:v2")
|
||||
require.NoError(t, err)
|
||||
@@ -137,6 +152,26 @@ func TestFissionCLI(t *testing.T) {
|
||||
require.Error(t, err)
|
||||
})
|
||||
|
||||
t.Run("list", func(t *testing.T) {
|
||||
_, err := cli.ExecCommand(f, ctx, "function", "list")
|
||||
require.NoError(t, err)
|
||||
})
|
||||
|
||||
t.Run("get/poolmgr", func(t *testing.T) {
|
||||
_, err := cli.ExecCommand(f, ctx, "function", "get", "--name", testFuncName)
|
||||
require.NoError(t, err)
|
||||
})
|
||||
|
||||
t.Run("getmeta/poolmgr", func(t *testing.T) {
|
||||
_, err := cli.ExecCommand(f, ctx, "function", "getmeta", "--name", testFuncName)
|
||||
require.NoError(t, err)
|
||||
})
|
||||
|
||||
t.Run("pods/poolmgr", func(t *testing.T) {
|
||||
_, err := cli.ExecCommand(f, ctx, "function", "pods", "--name", testFuncName)
|
||||
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)
|
||||
@@ -213,4 +248,117 @@ func TestFissionCLI(t *testing.T) {
|
||||
|
||||
})
|
||||
|
||||
t.Run("timetrigger", 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, "timetrigger", "create", "--name", "test-tt", "--function", "test-func", "--cron", "@every 1m")
|
||||
require.NoError(t, err)
|
||||
|
||||
tt, err := fissionClient.CoreV1().TimeTriggers(metav1.NamespaceDefault).Get(ctx, "test-tt", metav1.GetOptions{})
|
||||
require.NoError(t, err)
|
||||
require.NotNil(t, tt)
|
||||
require.Equal(t, "test-tt", tt.Name)
|
||||
require.Equal(t, "test-func", tt.Spec.FunctionReference.Name)
|
||||
require.Equal(t, "@every 1m", tt.Spec.Cron)
|
||||
})
|
||||
|
||||
t.Run("list", func(t *testing.T) {
|
||||
_, err := cli.ExecCommand(f, ctx, "timetrigger", "list")
|
||||
require.NoError(t, err)
|
||||
})
|
||||
|
||||
t.Run("showschedule", func(t *testing.T) {
|
||||
_, err := cli.ExecCommand(f, ctx, "timetrigger", "showschedule", "--cron", "@every 1m")
|
||||
require.NoError(t, err)
|
||||
})
|
||||
|
||||
t.Run("update", func(t *testing.T) {
|
||||
_, err := cli.ExecCommand(f, ctx, "timetrigger", "update", "--name", "test-tt", "--cron", "@every 2m")
|
||||
require.NoError(t, err)
|
||||
|
||||
tt, err := fissionClient.CoreV1().TimeTriggers(metav1.NamespaceDefault).Get(ctx, "test-tt", metav1.GetOptions{})
|
||||
require.NoError(t, err)
|
||||
require.NotNil(t, tt)
|
||||
require.Equal(t, "test-tt", tt.Name)
|
||||
require.Equal(t, "test-func", tt.Spec.FunctionReference.Name)
|
||||
require.Equal(t, "@every 2m", tt.Spec.Cron)
|
||||
})
|
||||
|
||||
t.Run("delete", func(t *testing.T) {
|
||||
_, err := cli.ExecCommand(f, ctx, "timetrigger", "delete", "--name", "test-tt")
|
||||
require.NoError(t, err)
|
||||
|
||||
_, err = fissionClient.CoreV1().TimeTriggers(metav1.NamespaceDefault).Get(ctx, "test-tt", 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)
|
||||
})
|
||||
})
|
||||
|
||||
t.Run("mqtrigger", 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, "mqtrigger", "create", "--name", "test-mqtrigger", "--function", "test-func", "--mqtype", "kafka", "--topic", "test-topic", "--resptopic", "test-resp-topic")
|
||||
require.NoError(t, err)
|
||||
|
||||
mqt, err := fissionClient.CoreV1().MessageQueueTriggers(metav1.NamespaceDefault).Get(ctx, "test-mqtrigger", metav1.GetOptions{})
|
||||
require.NoError(t, err)
|
||||
require.NotNil(t, mqt)
|
||||
require.Equal(t, "test-mqtrigger", mqt.Name)
|
||||
require.Equal(t, "test-func", mqt.Spec.FunctionReference.Name)
|
||||
require.Equal(t, "test-topic", mqt.Spec.Topic)
|
||||
require.Equal(t, "test-resp-topic", mqt.Spec.ResponseTopic)
|
||||
})
|
||||
|
||||
t.Run("list", func(t *testing.T) {
|
||||
_, err := cli.ExecCommand(f, ctx, "mqtrigger", "list")
|
||||
require.NoError(t, err)
|
||||
})
|
||||
|
||||
t.Run("delete", func(t *testing.T) {
|
||||
_, err := cli.ExecCommand(f, ctx, "mqtrigger", "delete", "--name", "test-mqtrigger")
|
||||
require.NoError(t, err)
|
||||
|
||||
_, err = fissionClient.CoreV1().MessageQueueTriggers(metav1.NamespaceDefault).Get(ctx, "test-mqtrigger", 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)
|
||||
})
|
||||
|
||||
})
|
||||
|
||||
t.Run("check", func(t *testing.T) {
|
||||
_, err := cli.ExecCommand(f, ctx, "check")
|
||||
require.NoError(t, err)
|
||||
})
|
||||
|
||||
t.Run("version", func(t *testing.T) {
|
||||
_, err := cli.ExecCommand(f, ctx, "version")
|
||||
require.NoError(t, err)
|
||||
})
|
||||
|
||||
t.Run("support-dump", func(t *testing.T) {
|
||||
_, err := cli.ExecCommand(f, ctx, "support", "dump")
|
||||
require.NoError(t, err)
|
||||
})
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user