Skip to content

Commit

Permalink
fix: update get and delete task unit test and e2e test. (#3525)
Browse files Browse the repository at this point in the history
Signed-off-by: Asklv <boironic@gmail.com>
  • Loading branch information
IRONICBo authored Sep 23, 2024
1 parent 3e73231 commit 80717c7
Show file tree
Hide file tree
Showing 3 changed files with 358 additions and 10 deletions.
6 changes: 3 additions & 3 deletions .github/workflows/compatibility-e2e-v2.yml
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ on:
schedule:
- cron: '0 4 * * *'

permissions:
permissions:
contents: read

env:
Expand All @@ -31,11 +31,11 @@ jobs:
include:
- module: manager
image: manager
image-tag: v2.1.56
image-tag: v2.1.58
chart-name: manager
- module: scheduler
image: scheduler
image-tag: v2.1.56
image-tag: v2.1.58
chart-name: scheduler
- module: client
image: client
Expand Down
132 changes: 132 additions & 0 deletions manager/job/task_test.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,132 @@
/*
* Copyright 2024 The Dragonfly Authors
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/

package job

import (
"context"
"errors"
"testing"

"github.com/RichardKnop/machinery/v1"
"github.com/stretchr/testify/assert"

"d7y.io/dragonfly/v2/internal/job"
"d7y.io/dragonfly/v2/manager/models"
"d7y.io/dragonfly/v2/manager/types"
)

func TestTask_CreateGetTask(t *testing.T) {
task := newTask(&job.Job{Server: &machinery.Server{}})

tests := []struct {
name string
schedulers []models.Scheduler
args types.GetTaskArgs
expect func(t *testing.T, g *job.GroupJobState, e error)
}{
{
name: "queue retrieval error",
schedulers: []models.Scheduler{
{
SchedulerClusterID: 0,
Hostname: "",
},
},
args: types.GetTaskArgs{
TaskID: "valid-task-id",
},
expect: func(t *testing.T, g *job.GroupJobState, e error) {
assert := assert.New(t)
assert.Error(errors.New("empty cluster id config is not specified"), e)
},
},
{
name: "send group failure",
schedulers: []models.Scheduler{
{
SchedulerClusterID: 1,
Hostname: "hostname",
},
},
args: types.GetTaskArgs{
TaskID: "valid-task-id",
},
expect: func(t *testing.T, g *job.GroupJobState, e error) {
assert := assert.New(t)
assert.Error(errors.New("Result backend required"), e)
},
},
}

for _, tc := range tests {
t.Run(tc.name, func(t *testing.T) {
res, err := task.CreateGetTask(context.TODO(), tc.schedulers, tc.args)
tc.expect(t, res, err)
})
}
}

func TestTask_CreateDeleteTask(t *testing.T) {
tk := newTask(&job.Job{Server: &machinery.Server{}})

tests := []struct {
name string
schedulers []models.Scheduler
args types.DeleteTaskArgs
expect func(t *testing.T, g *job.GroupJobState, e error)
}{
{
name: "queue retrieval error",
schedulers: []models.Scheduler{
{
SchedulerClusterID: 0,
Hostname: "",
},
},
args: types.DeleteTaskArgs{
TaskID: "valid-task-id",
},
expect: func(t *testing.T, g *job.GroupJobState, e error) {
assert := assert.New(t)
assert.Error(errors.New("empty cluster id config is not specified"), e)
},
},
{
name: "send group failure",
schedulers: []models.Scheduler{
{
SchedulerClusterID: 1,
Hostname: "hostname",
},
},
args: types.DeleteTaskArgs{
TaskID: "valid-task-id",
},
expect: func(t *testing.T, g *job.GroupJobState, e error) {
assert := assert.New(t)
assert.Error(errors.New("Result backend required"), e)
},
},
}

for _, tc := range tests {
t.Run(tc.name, func(t *testing.T) {
res, err := tk.CreateDeleteTask(context.TODO(), tc.schedulers, tc.args)
tc.expect(t, res, err)
})
}
}
Loading

0 comments on commit 80717c7

Please sign in to comment.