testutil

package
v0.31.2 Latest Latest
Warning

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

Go to latest
Published: Jun 7, 2022 License: Apache-2.0 Imports: 22 Imported by: 4

Documentation

Index

Constants

View Source
const OwningInventoryKey = "config.k8s.io/owning-inventory"

OwningInventoryKey is the annotation key indicating the inventory owning an object. This is a copy of inventory.OwningInventoryKey to avoid dependency cycle.

Variables

View Source
var DefaultAsserter = NewAsserter(cmpopts.EquateErrors())

DefaultAsserter is a global Asserter with default comparison options: - EquateErrors (compare with "Is(T) bool" method)

Functions

func AssertEqual added in v0.26.0

func AssertEqual(t *testing.T, expected, actual interface{}, msgAndArgs ...interface{})

AssertEqual fails the test if the actual value does not deeply equal the expected value. Prints a diff on failure.

func AssertNotEqual added in v0.26.0

func AssertNotEqual(t *testing.T, expected, actual interface{}, msgAndArgs ...interface{})

AssertNotEqual fails the test if the actual value deeply equals the expected value. Prints a diff on failure.

func EqualError added in v0.30.0

func EqualError(err error) error

EqualError returns an error with an Is(error)bool function that matches any error with the same type and string value as the supplied error.

Use with testutil.Equal to handle error comparisons.

func EqualErrorString added in v0.26.0

func EqualErrorString(err string) error

EqualErrorString returns an error with an Is(error)bool function that matches any error with the same Error() as the supplied string value.

Use with testutil.Equal to handle error comparisons.

func EqualErrorType added in v0.26.0

func EqualErrorType(err error) error

EqualErrorType returns an error with an Is(error)bool function that matches any error with the same type as the supplied error.

Use with testutil.Equal to handle error comparisons.

func Mutate added in v0.30.0

Mutate executes the specified Mutators on the specified object.

func NewFakeRESTMapper added in v0.14.0

func NewFakeRESTMapper(gvks ...schema.GroupVersionKind) meta.RESTMapper

func SortExpEvents added in v0.30.0

func SortExpEvents(events []ExpEvent)

SortExpEvents sorts a list of ExpEvents so they can be compared for equality.

This is a stable sort which only sorts nearly identical contiguous events by object identifier, to make the full list easier to validate.

You may need to remove StatusEvents from the list before comparing, because these events are fully asynchronous and non-contiguous.

Comparison Options: A) Expect(received).To(testutil.Equal(expected)) B) testutil.assertEqual(t, expected, received)

func ToIdentifier added in v0.26.0

func ToIdentifier(t *testing.T, manifest string) object.ObjMetadata

ToIdentifier translates object yaml config into ObjMetadata.

func Unstructured added in v0.26.0

func Unstructured(t *testing.T, manifest string, mutators ...Mutator) *unstructured.Unstructured

Unstructured translates the passed object config string into an object in Unstructured format. The mutators modify the config yaml before returning the object.

func VerifyEvents added in v0.26.0

func VerifyEvents(expEvents []ExpEvent, events []event.Event) error

Types

type Asserter added in v0.28.0

type Asserter struct {
	Options cmp.Options
}

Asserter provides a set of assertion methods that use a shared set of comparison options.

func NewAsserter added in v0.28.0

func NewAsserter(opts ...cmp.Option) *Asserter

Returns a new Asserter with the specified options.

func (*Asserter) Equal added in v0.28.0

func (a *Asserter) Equal(t *testing.T, expected, actual interface{}, msgAndArgs ...interface{})

Equal fails the test if the actual value does not deeply equal the expected value. Prints a diff on failure.

func (*Asserter) EqualMatcher added in v0.28.0

func (a *Asserter) EqualMatcher(expected interface{}) *EqualMatcher

EqualMatcher returns a new EqualMatcher with the Asserter's options and the specified expected value.

func (*Asserter) NotEqual added in v0.28.0

func (a *Asserter) NotEqual(t *testing.T, expected, actual interface{}, msgAndArgs ...interface{})

NotEqual fails the test if the actual value deeply equals the expected value. Prints a diff on failure.

type EqualMatcher added in v0.28.0

type EqualMatcher struct {
	Expected interface{}
	Options  cmp.Options
	// contains filtered or unexported fields
}

func Equal added in v0.26.0

func Equal(expected interface{}) *EqualMatcher

Equal returns a matcher for use with Gomega that uses go-cmp's cmp.Equal to compare and cmp.Diff to show the difference, if there is one.

Example Usage: Expect(receivedEvents).To(testutil.Equal(expectedEvents))

func (*EqualMatcher) FailureMessage added in v0.28.0

func (cm *EqualMatcher) FailureMessage(actual interface{}) string

func (*EqualMatcher) Match added in v0.28.0

func (cm *EqualMatcher) Match(actual interface{}) (bool, error)

func (*EqualMatcher) NegatedFailureMessage added in v0.28.0

func (cm *EqualMatcher) NegatedFailureMessage(actual interface{}) string

type ExpActionGroupEvent added in v0.26.0

type ExpActionGroupEvent struct {
	GroupName string
	Action    event.ResourceAction
	Type      event.ActionGroupEventStatus
}

type ExpApplyEvent added in v0.26.0

type ExpApplyEvent struct {
	GroupName  string
	Status     event.ApplyEventStatus
	Identifier object.ObjMetadata
	Error      error
}

type ExpDeleteEvent added in v0.26.0

type ExpDeleteEvent struct {
	GroupName  string
	Status     event.DeleteEventStatus
	Identifier object.ObjMetadata
	Error      error
}

type ExpErrorEvent added in v0.26.0

type ExpErrorEvent struct {
	Err error
}

type ExpEvent added in v0.26.0

type ExpEvent struct {
	EventType event.Type

	InitEvent        *ExpInitEvent
	ErrorEvent       *ExpErrorEvent
	ActionGroupEvent *ExpActionGroupEvent
	ApplyEvent       *ExpApplyEvent
	StatusEvent      *ExpStatusEvent
	PruneEvent       *ExpPruneEvent
	DeleteEvent      *ExpDeleteEvent
	WaitEvent        *ExpWaitEvent
	ValidationEvent  *ExpValidationEvent
}

func EventToExpEvent added in v0.26.0

func EventToExpEvent(e event.Event) ExpEvent

func EventsToExpEvents added in v0.26.0

func EventsToExpEvents(events []event.Event) []ExpEvent

func RemoveEqualEvents added in v0.26.0

func RemoveEqualEvents(in []ExpEvent, expected ExpEvent) ([]ExpEvent, int)

type ExpInitEvent added in v0.26.0

type ExpInitEvent struct {
}

type ExpPruneEvent added in v0.26.0

type ExpPruneEvent struct {
	GroupName  string
	Status     event.PruneEventStatus
	Identifier object.ObjMetadata
	Error      error
}

type ExpStatusEvent added in v0.26.0

type ExpStatusEvent struct {
	Status     status.Status
	Identifier object.ObjMetadata
	Error      error
}

type ExpValidationEvent added in v0.28.0

type ExpValidationEvent struct {
	Identifiers object.ObjMetadataSet
	Error       error
}

type ExpWaitEvent added in v0.26.1

type ExpWaitEvent struct {
	GroupName  string
	Status     event.WaitEventStatus
	Identifier object.ObjMetadata
}

type GroupedEventsByID added in v0.26.0

type GroupedEventsByID []ExpEvent

GroupedEventsByID implements sort.Interface for []ExpEvent based on the serialized ObjMetadata of Apply, Prune, and Delete events within the same task group. This makes testing events easier, because apply/prune/delete order is non-deterministic within each task group. This is only needed if you expect to have multiple apply/prune/delete events in the same task group.

func (GroupedEventsByID) Len added in v0.26.0

func (ape GroupedEventsByID) Len() int

func (GroupedEventsByID) Less added in v0.26.0

func (ape GroupedEventsByID) Less(i, j int) bool

func (GroupedEventsByID) Swap added in v0.26.0

func (ape GroupedEventsByID) Swap(i, j int)

type Mutator added in v0.26.0

type Mutator interface {
	Mutate(u *unstructured.Unstructured)
}

Mutator inteface defines a function to update an object while translating it unto Unstructured format from yaml config.

func AddDependsOn added in v0.26.0

func AddDependsOn(t *testing.T, deps ...object.ObjMetadata) Mutator

AddDependsOn returns a testutil.Mutator which adds the passed objects as a depends-on annotation to the object which is mutated. Multiple objects passed in means multiple depends on objects in the annotation separated by a comma.

func AddOwningInv added in v0.26.0

func AddOwningInv(t *testing.T, inv string) Mutator

AddOwningInv returns a Mutator which adds the passed inv string as the owning inventory annotation.

func DeleteOwningInv added in v0.30.0

func DeleteOwningInv(t *testing.T, inv string) Mutator

DeleteOwningInv returns a Mutator which deletes the passed inv string from the owning inventory annotation.

type TestFilesystem

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

TestFilesystem creates directories and files for testing

func Setup

func Setup(t *testing.T, dirs ...string) TestFilesystem

Setupd creates directories in the test filesystem, returning the TestFilesystem.

func (TestFilesystem) Clean

func (tf TestFilesystem) Clean()

Clean deletes the test filesystem.

func (TestFilesystem) GetRootDir

func (tf TestFilesystem) GetRootDir() string

GetRootDir returns the path to the root of the test filesystem.

func (TestFilesystem) WriteFile

func (tf TestFilesystem) WriteFile(t *testing.T, path string, value []byte)

WriteFile writes a file in the test filesystem at relative "path" containing the bytes "value".

Jump to

Keyboard shortcuts

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