Help us shape the future of Go! Take the 2026 Go Developer Survey

testutil

package
v0.24.4 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Oct 4, 2024 License: MIT Imports: 12 Imported by: 0

Documentation

Overview

Package testutil defines test helpers for asynq and its internal packages.

Index

Constants

This section is empty.

Variables

View Source
var IgnoreIDOpt = cmpopts.IgnoreFields(base.TaskMessage{}, "ID")

IgnoreIDOpt is an cmp.Option to ignore ID field in task messages when comparing.

View Source
var SortMsgOpt = cmp.Transformer("SortTaskMessages", func(in []*base.TaskMessage) []*base.TaskMessage {
	out := append([]*base.TaskMessage(nil), in...)
	sort.Slice(out, func(i, j int) bool {
		return out[i].ID < out[j].ID
	})
	return out
})

SortMsgOpt is a cmp.Option to sort base.TaskMessage for comparing slice of task messages.

View Source
var SortRedisZSetEntryOpt = cmp.Transformer("SortZSetEntries", func(in []redis.Z) []redis.Z {
	out := append([]redis.Z(nil), in...)
	sort.Slice(out, func(i, j int) bool {

		if _, ok := out[i].Member.(string); ok {

			return out[i].Member.(string) < out[j].Member.(string)
		}
		return out[i].Score < out[j].Score
	})
	return out
})
View Source
var SortSchedulerEnqueueEventOpt = cmp.Transformer("SortSchedulerEnqueueEvent", func(in []*base.SchedulerEnqueueEvent) []*base.SchedulerEnqueueEvent {
	out := append([]*base.SchedulerEnqueueEvent(nil), in...)
	sort.Slice(out, func(i, j int) bool {
		return out[i].EnqueuedAt.Unix() < out[j].EnqueuedAt.Unix()
	})
	return out
})

SortSchedulerEnqueueEventOpt is a cmp.Option to sort base.SchedulerEnqueueEvent for comparing slice of events.

View Source
var SortSchedulerEntryOpt = cmp.Transformer("SortSchedulerEntry", func(in []*base.SchedulerEntry) []*base.SchedulerEntry {
	out := append([]*base.SchedulerEntry(nil), in...)
	sort.Slice(out, func(i, j int) bool {
		return out[i].Spec < out[j].Spec
	})
	return out
})

SortSchedulerEntryOpt is a cmp.Option to sort base.SchedulerEntry for comparing slice of entries.

View Source
var SortServerInfoOpt = cmp.Transformer("SortServerInfo", func(in []*base.ServerInfo) []*base.ServerInfo {
	out := append([]*base.ServerInfo(nil), in...)
	sort.Slice(out, func(i, j int) bool {
		if out[i].Host != out[j].Host {
			return out[i].Host < out[j].Host
		}
		return out[i].PID < out[j].PID
	})
	return out
})

SortServerInfoOpt is a cmp.Option to sort base.ServerInfo for comparing slice of process info.

View Source
var SortStringSliceOpt = cmp.Transformer("SortStringSlice", func(in []string) []string {
	out := append([]string(nil), in...)
	sort.Strings(out)
	return out
})

SortStringSliceOpt is a cmp.Option to sort string slice.

View Source
var SortWorkerInfoOpt = cmp.Transformer("SortWorkerInfo", func(in []*base.WorkerInfo) []*base.WorkerInfo {
	out := append([]*base.WorkerInfo(nil), in...)
	sort.Slice(out, func(i, j int) bool {
		return out[i].ID < out[j].ID
	})
	return out
})

SortWorkerInfoOpt is a cmp.Option to sort base.WorkerInfo for comparing slice of worker info.

View Source
var SortZSetEntryOpt = cmp.Transformer("SortZSetEntries", func(in []base.Z) []base.Z {
	out := append([]base.Z(nil), in...)
	sort.Slice(out, func(i, j int) bool {
		return out[i].Message.ID < out[j].Message.ID
	})
	return out
})

SortZSetEntryOpt is an cmp.Option to sort ZSetEntry for comparing slice of zset entries.

Functions

func AssertRedisLists

func AssertRedisLists(t *testing.T, r redis.UniversalClient, wantLists map[string][]string)

func AssertRedisSets

func AssertRedisSets(t *testing.T, r redis.UniversalClient, wantSets map[string][]string)

func AssertRedisZSets

func AssertRedisZSets(t *testing.T, r redis.UniversalClient, wantZSets map[string][]redis.Z)

func EquateInt64Approx

func EquateInt64Approx(margin int64) cmp.Option

EquateInt64Approx returns a Comparer option that treats int64 values to be equal if they are within the given margin.

func FlushDB

func FlushDB(tb testing.TB, r redis.UniversalClient)

FlushDB deletes all the keys of the currently selected DB.

func GetActiveMessages

func GetActiveMessages(tb testing.TB, r redis.UniversalClient, qname string) []*base.TaskMessage

GetActiveMessages returns all active messages in the given queue. It also asserts the state field of the task.

func GetArchivedEntries

func GetArchivedEntries(tb testing.TB, r redis.UniversalClient, qname string) []base.Z

GetArchivedEntries returns all archived messages and its score in the given queue. It also asserts the state field of the task.

func GetArchivedMessages

func GetArchivedMessages(tb testing.TB, r redis.UniversalClient, qname string) []*base.TaskMessage

GetArchivedMessages returns all archived messages in the given queue. It also asserts the state field of the task.

func GetCompletedEntries

func GetCompletedEntries(tb testing.TB, r redis.UniversalClient, qname string) []base.Z

GetCompletedEntries returns all completed messages and its score in the given queue. It also asserts the state field of the task.

func GetCompletedMessages

func GetCompletedMessages(tb testing.TB, r redis.UniversalClient, qname string) []*base.TaskMessage

GetCompletedMessages returns all completed task messages in the given queue. It also asserts the state field of the task.

func GetGroupEntries

func GetGroupEntries(tb testing.TB, r redis.UniversalClient, qname, groupKey string) []base.Z

GetGroupEntries returns all scheduled messages and its score in the given queue. It also asserts the state field of the task.

func GetLeaseEntries

func GetLeaseEntries(tb testing.TB, r redis.UniversalClient, qname string) []base.Z

GetLeaseEntries returns all task IDs and its score in the lease set for the given queue. It also asserts the state field of the task.

func GetPendingMessages

func GetPendingMessages(tb testing.TB, r redis.UniversalClient, qname string) []*base.TaskMessage

GetPendingMessages returns all pending messages in the given queue. It also asserts the state field of the task.

func GetRetryEntries

func GetRetryEntries(tb testing.TB, r redis.UniversalClient, qname string) []base.Z

GetRetryEntries returns all retry messages and its score in the given queue. It also asserts the state field of the task.

func GetRetryMessages

func GetRetryMessages(tb testing.TB, r redis.UniversalClient, qname string) []*base.TaskMessage

GetRetryMessages returns all retry messages in the given queue. It also asserts the state field of the task.

func GetScheduledEntries

func GetScheduledEntries(tb testing.TB, r redis.UniversalClient, qname string) []base.Z

GetScheduledEntries returns all scheduled messages and its score in the given queue. It also asserts the state field of the task.

func GetScheduledMessages

func GetScheduledMessages(tb testing.TB, r redis.UniversalClient, qname string) []*base.TaskMessage

GetScheduledMessages returns all scheduled task messages in the given queue. It also asserts the state field of the task.

func JSON

func JSON(kv map[string]interface{}) []byte

JSON serializes the given key-value pairs into stream of bytes in JSON.

func MustMarshal

func MustMarshal(tb testing.TB, msg *base.TaskMessage) string

MustMarshal marshals given task message and returns a json string. Calling test will fail if marshaling errors out.

func MustUnmarshal

func MustUnmarshal(tb testing.TB, data string) *base.TaskMessage

MustUnmarshal unmarshals given string into task message struct. Calling test will fail if unmarshaling errors out.

func NewLeaseWithClock

func NewLeaseWithClock(expirationTime time.Time, clock timeutil.Clock) *base.Lease

NewLeaseWithClock returns a new lease with the given expiration time and clock.

func NewTaskMessage

func NewTaskMessage(taskType string, payload []byte) *base.TaskMessage

NewTaskMessage returns a new instance of TaskMessage given a task type and payload.

func NewTaskMessageWithQueue

func NewTaskMessageWithQueue(taskType string, payload []byte, qname string) *base.TaskMessage

NewTaskMessageWithQueue returns a new instance of TaskMessage given a task type, payload and queue name.

func SeedActiveQueue

func SeedActiveQueue(tb testing.TB, r redis.UniversalClient, msgs []*base.TaskMessage, qname string)

SeedActiveQueue initializes the active queue with the given messages.

func SeedAggregationSet

func SeedAggregationSet(tb testing.TB, r redis.UniversalClient, entries []base.Z, qname, gname, setID string)

func SeedAllActiveQueues

func SeedAllActiveQueues(tb testing.TB, r redis.UniversalClient, active map[string][]*base.TaskMessage)

SeedAllActiveQueues initializes all of the specified active queues with the given messages.

func SeedAllArchivedQueues

func SeedAllArchivedQueues(tb testing.TB, r redis.UniversalClient, archived map[string][]base.Z)

SeedAllArchivedQueues initializes all of the specified archived queues with the given entries.

func SeedAllCompletedQueues

func SeedAllCompletedQueues(tb testing.TB, r redis.UniversalClient, completed map[string][]base.Z)

SeedAllCompletedQueues initializes all of the completed queues with the given entries.

func SeedAllGroups

func SeedAllGroups(tb testing.TB, r redis.UniversalClient, groups map[string]map[string][]base.Z)

SeedAllGroups initializes all groups in all queues. The map maps queue names to group names which maps to a list of task messages and the time it was added to the group.

func SeedAllLease

func SeedAllLease(tb testing.TB, r redis.UniversalClient, lease map[string][]base.Z)

SeedAllLease initializes all of the lease sets with the given entries.

func SeedAllPendingQueues

func SeedAllPendingQueues(tb testing.TB, r redis.UniversalClient, pending map[string][]*base.TaskMessage)

SeedAllPendingQueues initializes all of the specified queues with the given messages.

pending maps a queue name to a list of messages.

func SeedAllRetryQueues

func SeedAllRetryQueues(tb testing.TB, r redis.UniversalClient, retry map[string][]base.Z)

SeedAllRetryQueues initializes all of the specified retry queues with the given entries.

func SeedAllScheduledQueues

func SeedAllScheduledQueues(tb testing.TB, r redis.UniversalClient, scheduled map[string][]base.Z)

SeedAllScheduledQueues initializes all of the specified scheduled queues with the given entries.

func SeedArchivedQueue

func SeedArchivedQueue(tb testing.TB, r redis.UniversalClient, entries []base.Z, qname string)

SeedArchivedQueue initializes the archived queue with the given messages.

func SeedCompletedQueue

func SeedCompletedQueue(tb testing.TB, r redis.UniversalClient, entries []base.Z, qname string)

SeedCompletedQueue initializes the completed set with the given entries.

func SeedGroup

func SeedGroup(tb testing.TB, r redis.UniversalClient, entries []base.Z, qname, gname string)

SeedGroup initializes the group with the given entries.

func SeedLease

func SeedLease(tb testing.TB, r redis.UniversalClient, entries []base.Z, qname string)

SeedLease initializes the lease set with the given entries.

func SeedPendingQueue

func SeedPendingQueue(tb testing.TB, r redis.UniversalClient, msgs []*base.TaskMessage, qname string)

SeedPendingQueue initializes the specified queue with the given messages.

func SeedRedisLists

func SeedRedisLists(tb testing.TB, r redis.UniversalClient, lists map[string][]string)

func SeedRedisSet

func SeedRedisSet(tb testing.TB, r redis.UniversalClient, key string, members []string)

func SeedRedisSets

func SeedRedisSets(tb testing.TB, r redis.UniversalClient, sets map[string][]string)

func SeedRedisZSets

func SeedRedisZSets(tb testing.TB, r redis.UniversalClient, zsets map[string][]redis.Z)

func SeedRetryQueue

func SeedRetryQueue(tb testing.TB, r redis.UniversalClient, entries []base.Z, qname string)

SeedRetryQueue initializes the retry queue with the given messages.

func SeedScheduledQueue

func SeedScheduledQueue(tb testing.TB, r redis.UniversalClient, entries []base.Z, qname string)

SeedScheduledQueue initializes the scheduled queue with the given messages.

func SeedTasks

func SeedTasks(tb testing.TB, r redis.UniversalClient, taskData []*TaskSeedData)

func TaskMessageAfterRetry

func TaskMessageAfterRetry(t base.TaskMessage, errMsg string, failedAt time.Time) *base.TaskMessage

TaskMessageAfterRetry returns an updated copy of t after retry. It increments retry count and sets the error message and last_failed_at time.

func TaskMessageWithCompletedAt

func TaskMessageWithCompletedAt(t base.TaskMessage, completedAt time.Time) *base.TaskMessage

TaskMessageWithCompletedAt returns an updated copy of t after completion.

func TaskMessageWithError

func TaskMessageWithError(t base.TaskMessage, errMsg string, failedAt time.Time) *base.TaskMessage

TaskMessageWithError returns an updated copy of t with the given error message.

Types

type TaskMessageBuilder

type TaskMessageBuilder struct {
	// contains filtered or unexported fields
}

func NewTaskMessageBuilder

func NewTaskMessageBuilder() *TaskMessageBuilder

func (*TaskMessageBuilder) Build

func (b *TaskMessageBuilder) Build() *base.TaskMessage

func (*TaskMessageBuilder) SetDeadline

func (b *TaskMessageBuilder) SetDeadline(deadline time.Time) *TaskMessageBuilder

func (*TaskMessageBuilder) SetGroup

func (b *TaskMessageBuilder) SetGroup(gname string) *TaskMessageBuilder

func (*TaskMessageBuilder) SetPayload

func (b *TaskMessageBuilder) SetPayload(payload []byte) *TaskMessageBuilder

func (*TaskMessageBuilder) SetQueue

func (b *TaskMessageBuilder) SetQueue(qname string) *TaskMessageBuilder

func (*TaskMessageBuilder) SetRetry

func (b *TaskMessageBuilder) SetRetry(n int) *TaskMessageBuilder

func (*TaskMessageBuilder) SetTimeout

func (b *TaskMessageBuilder) SetTimeout(timeout time.Duration) *TaskMessageBuilder

func (*TaskMessageBuilder) SetType

func (b *TaskMessageBuilder) SetType(typename string) *TaskMessageBuilder

type TaskSeedData

type TaskSeedData struct {
	Msg          *base.TaskMessage
	State        base.TaskState
	PendingSince time.Time
}

TaskSeedData holds the data required to seed tasks under the task key in test.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL