fake

package
v1.0.5 Latest Latest
Warning

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

Go to latest
Published: Apr 11, 2024 License: Apache-2.0 Imports: 25 Imported by: 0

Documentation

Overview

Package fake provides a fake client for testing.

A fake client is backed by its simple object store indexed by GroupVersionResource. You can create a fake client with optional objects.

client := NewFakeClientWithScheme(scheme, initObjs...) // initObjs is a slice of runtime.Object

You can invoke the methods defined in the Client interface.

When in doubt, it's almost always better not to use this package and instead use envtest.Environment with a real client and API server.

WARNING: ⚠️ Current Limitations / Known Issues with the fake Client ⚠️

  • This client does not have a way to inject specific errors to test handled vs. unhandled errors.
  • There is some support for sub resources which can cause issues with tests if you're trying to update e.g. metadata and status in the same reconcile.
  • No OpenAPI validation is performed when creating or updating objects.
  • ObjectMeta's `Generation` and `ResourceVersion` don't behave properly, Patch or Update operations that rely on these fields will fail, or give false positives.

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func NewFakeClient deprecated

func NewFakeClient(initObjs ...runtime.Object) client.WithWatch

NewFakeClient creates a new fake client for testing. You can choose to initialize it with a slice of runtime.Object.

Deprecated: Please use NewClientBuilder instead.

func NewFakeClientWithScheme deprecated added in v0.1.8

func NewFakeClientWithScheme(clientScheme *runtime.Scheme, initObjs ...runtime.Object) client.WithWatch

NewFakeClientWithScheme creates a new fake client with the given scheme for testing. You can choose to initialize it with a slice of runtime.Object.

Deprecated: Please use NewClientBuilder instead.

Types

type ClientBuilder added in v1.0.1

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

ClientBuilder builds a fake client.

func NewClientBuilder added in v1.0.1

func NewClientBuilder() *ClientBuilder

NewClientBuilder returns a new builder to create a fake client.

func (*ClientBuilder) Build added in v1.0.1

func (f *ClientBuilder) Build() client.WithWatch

Build builds and returns a new fake client.

func (*ClientBuilder) WithIndex added in v1.0.1

func (f *ClientBuilder) WithIndex(obj runtime.Object, field string, extractValue client.IndexerFunc) *ClientBuilder

WithIndex can be optionally used to register an index with name `field` and indexer `extractValue` for API objects of the same GroupVersionKind (GVK) as `obj` in the fake client. It can be invoked multiple times, both with objects of the same GVK or different ones. Invoking WithIndex twice with the same `field` and GVK (via `obj`) arguments will panic. WithIndex retrieves the GVK of `obj` using the scheme registered via WithScheme if WithScheme was previously invoked, the default scheme otherwise.

func (*ClientBuilder) WithLists added in v1.0.1

func (f *ClientBuilder) WithLists(initLists ...client.ObjectList) *ClientBuilder

WithLists can be optionally used to initialize this fake client with client.ObjectList(s).

func (*ClientBuilder) WithObjectTracker added in v1.0.1

func (f *ClientBuilder) WithObjectTracker(ot testing.ObjectTracker) *ClientBuilder

WithObjectTracker can be optionally used to initialize this fake client with testing.ObjectTracker.

func (*ClientBuilder) WithObjects added in v1.0.1

func (f *ClientBuilder) WithObjects(initObjs ...client.Object) *ClientBuilder

WithObjects can be optionally used to initialize this fake client with client.Object(s).

func (*ClientBuilder) WithRESTMapper added in v1.0.1

func (f *ClientBuilder) WithRESTMapper(restMapper meta.RESTMapper) *ClientBuilder

WithRESTMapper sets this builder's restMapper. The restMapper is directly set as mapper in the Client. This can be used for example with a meta.DefaultRESTMapper to provide a static rest mapping. If not set, defaults to an empty meta.DefaultRESTMapper.

func (*ClientBuilder) WithRuntimeObjects added in v1.0.1

func (f *ClientBuilder) WithRuntimeObjects(initRuntimeObjs ...runtime.Object) *ClientBuilder

WithRuntimeObjects can be optionally used to initialize this fake client with runtime.Object(s).

func (*ClientBuilder) WithScheme added in v1.0.1

func (f *ClientBuilder) WithScheme(scheme *runtime.Scheme) *ClientBuilder

WithScheme sets this builder's internal scheme. If not set, defaults to client-go's global scheme.Scheme.

Jump to

Keyboard shortcuts

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