testing

package
v0.0.0-...-8ff1004 Latest Latest
Warning

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

Go to latest
Published: Feb 15, 2019 License: AGPL-3.0 Imports: 48 Imported by: 0

Documentation

Index

Constants

View Source
const (
	StubProviderType               = "stub-provider"
	StubEnvironName                = "stub-environ"
	StubZonedEnvironName           = "stub-zoned-environ"
	StubNetworkingEnvironName      = "stub-networking-environ"
	StubZonedNetworkingEnvironName = "stub-zoned-networking-environ"
)

Variables

View Source
var (
	// SharedStub records all method calls to any of the stubs.
	SharedStub = &testing.Stub{}

	BackingInstance                = &StubBacking{Stub: SharedStub}
	ProviderInstance               = &StubProvider{Stub: SharedStub}
	EnvironInstance                = &StubEnviron{Stub: SharedStub}
	ZonedEnvironInstance           = &StubZonedEnviron{Stub: SharedStub}
	NetworkingEnvironInstance      = &StubNetworkingEnviron{Stub: SharedStub}
	ZonedNetworkingEnvironInstance = &StubZonedNetworkingEnviron{Stub: SharedStub}
)
View Source
var ErrUnauthorized = &params.Error{
	Message: "permission denied",
	Code:    params.CodeUnauthorized,
}

Functions

func AlreadyExistsError

func AlreadyExistsError(what string) *params.Error

func AssertNotImplemented

func AssertNotImplemented(c *gc.C, apiFacade interface{}, methodName string)

func AssertPrincipalApplicationDeployed

func AssertPrincipalApplicationDeployed(c *gc.C, st *state.State, applicationName string, curl *charm.URL, forced bool, bundle charm.Charm, cons constraints.Value) *state.Application

func AssertResponse

func AssertResponse(c *gc.C, resp *http.Response, expHTTPStatus int, expContentType string) []byte

func CheckMethodCalls

func CheckMethodCalls(c *gc.C, stub *testing.Stub, calls ...StubMethodCall)

CheckMethodCalls works like testing.Stub.CheckCalls, but also checks the receivers.

func NotAssignedError

func NotAssignedError(unitName string) *params.Error

func NotFoundError

func NotFoundError(prefixMessage string) *params.Error

func NotProvisionedError

func NotProvisionedError(machineId string) *params.Error

func PrefixedError

func PrefixedError(prefix, message string) *params.Error

func ResetStub

func ResetStub(stub *testing.Stub)

ResetStub resets all recorded calls and errors of the given stub.

func SendHTTPRequest

func SendHTTPRequest(c *gc.C, p HTTPRequestParams) *http.Response

func ServerError

func ServerError(message string) *params.Error

Types

type CharmStoreSuite

type CharmStoreSuite struct {
	testing.CleanupSuite

	Session *mgo.Session
	// DischargeUser holds the identity of the user
	// that the 3rd party caveat discharger will issue
	// macaroons for. If it is empty, no caveats will be discharged.
	DischargeUser string

	Srv    *httptest.Server
	Client *csclient.Client
	// contains filtered or unexported fields
}

func (*CharmStoreSuite) SetUpTest

func (s *CharmStoreSuite) SetUpTest(c *gc.C)

func (*CharmStoreSuite) TearDownTest

func (s *CharmStoreSuite) TearDownTest(c *gc.C)

func (*CharmStoreSuite) UploadCharm

func (s *CharmStoreSuite) UploadCharm(c *gc.C, url, name string) (*charm.URL, charm.Charm)

func (*CharmStoreSuite) UploadCharmMultiSeries

func (s *CharmStoreSuite) UploadCharmMultiSeries(c *gc.C, url, name string) (*charm.URL, charm.Charm)

type FakeAuditLog

type FakeAuditLog struct {
	testing.Stub
}

FakeAuditLog implements auditlog.AuditLog.

func (*FakeAuditLog) AddConversation

func (l *FakeAuditLog) AddConversation(m auditlog.Conversation) error

func (*FakeAuditLog) AddRequest

func (l *FakeAuditLog) AddRequest(m auditlog.Request) error

func (*FakeAuditLog) AddResponse

func (l *FakeAuditLog) AddResponse(m auditlog.ResponseErrors) error

func (*FakeAuditLog) Close

func (l *FakeAuditLog) Close() error

type FakeAuthorizer

type FakeAuthorizer struct {
	Tag         names.Tag
	Controller  bool
	ModelUUID   string
	AdminTag    names.UserTag
	HasWriteTag names.UserTag
}

FakeAuthorizer implements the facade.Authorizer interface.

func (FakeAuthorizer) AuthApplicationAgent

func (fa FakeAuthorizer) AuthApplicationAgent() bool

AuthApplicationAgent returns whether the current client is an application operator.

func (FakeAuthorizer) AuthClient

func (fa FakeAuthorizer) AuthClient() bool

AuthClient returns whether the authenticated entity is a client user.

func (FakeAuthorizer) AuthController

func (fa FakeAuthorizer) AuthController() bool

func (FakeAuthorizer) AuthMachineAgent

func (fa FakeAuthorizer) AuthMachineAgent() bool

AuthMachineAgent returns whether the current client is a machine agent.

func (FakeAuthorizer) AuthOwner

func (fa FakeAuthorizer) AuthOwner(tag names.Tag) bool

func (FakeAuthorizer) AuthUnitAgent

func (fa FakeAuthorizer) AuthUnitAgent() bool

AuthUnitAgent returns whether the current client is a unit agent.

func (FakeAuthorizer) ConnectedModel

func (fa FakeAuthorizer) ConnectedModel() string

ConnectedModel returns the UUID of the model the current client is connected to.

func (FakeAuthorizer) GetAuthTag

func (fa FakeAuthorizer) GetAuthTag() names.Tag

func (FakeAuthorizer) HasPermission

func (fa FakeAuthorizer) HasPermission(operation permission.Access, target names.Tag) (bool, error)

HasPermission returns true if the logged in user is admin or has a name equal to the pre-set admin tag.

func (FakeAuthorizer) UserHasPermission

func (fa FakeAuthorizer) UserHasPermission(user names.UserTag, operation permission.Access, target names.Tag) (bool, error)

UserHasPermission returns true if the passed user is admin or has a name equal to the pre-set admin tag.

type FakeNotifyWatcher

type FakeNotifyWatcher struct {
	worker.Worker
	C chan struct{}
}

FakeNotifyWatcher is an implementation of state.NotifyWatcher which is useful in tests.

func NewFakeNotifyWatcher

func NewFakeNotifyWatcher() *FakeNotifyWatcher

func (*FakeNotifyWatcher) Changes

func (w *FakeNotifyWatcher) Changes() <-chan struct{}

Changes is part of the state.NotifyWatcher interface.

func (*FakeNotifyWatcher) Err

func (w *FakeNotifyWatcher) Err() error

Err is part of the state.NotifyWatcher interface.

func (*FakeNotifyWatcher) Stop

func (w *FakeNotifyWatcher) Stop() error

Stop is part of the state.NotifyWatcher interface.

type FakeSpace

type FakeSpace struct {
	SpaceName string
	SubnetIds []string
	Public    bool
	NextErr   errReturner
}

FakeSpace implements networkingcommon.BackingSpace for testing.

func (*FakeSpace) GoString

func (f *FakeSpace) GoString() string

GoString implements fmt.GoStringer.

func (*FakeSpace) Life

func (f *FakeSpace) Life() (life params.Life)

func (*FakeSpace) Name

func (f *FakeSpace) Name() string

func (*FakeSpace) ProviderId

func (f *FakeSpace) ProviderId() (netID network.Id)

func (*FakeSpace) Subnets

func (f *FakeSpace) Subnets() (bs []networkingcommon.BackingSubnet, err error)

func (*FakeSpace) Zones

func (f *FakeSpace) Zones() []string

type FakeSubnet

type FakeSubnet struct {
	Info networkingcommon.BackingSubnetInfo
}

FakeSubnet implements networkingcommon.BackingSubnet for testing.

func (*FakeSubnet) AvailabilityZones

func (f *FakeSubnet) AvailabilityZones() []string

func (*FakeSubnet) CIDR

func (f *FakeSubnet) CIDR() string

func (*FakeSubnet) GoString

func (f *FakeSubnet) GoString() string

GoString implements fmt.GoStringer.

func (*FakeSubnet) Life

func (f *FakeSubnet) Life() params.Life

func (*FakeSubnet) ProviderId

func (f *FakeSubnet) ProviderId() network.Id

func (*FakeSubnet) ProviderNetworkId

func (f *FakeSubnet) ProviderNetworkId() network.Id

func (*FakeSubnet) SpaceName

func (f *FakeSubnet) SpaceName() string

func (*FakeSubnet) Status

func (f *FakeSubnet) Status() string

func (*FakeSubnet) VLANTag

func (f *FakeSubnet) VLANTag() int

type FakeZone

type FakeZone struct {
	ZoneName      string
	ZoneAvailable bool
}

FakeZone implements providercommon.AvailabilityZone for testing.

func (*FakeZone) Available

func (f *FakeZone) Available() bool

func (*FakeZone) GoString

func (f *FakeZone) GoString() string

GoString implements fmt.GoStringer.

func (*FakeZone) Name

func (f *FakeZone) Name() string

type HTTPRequestParams

type HTTPRequestParams struct {
	// do is used to make the HTTP request.
	// If it is nil, utils.GetNonValidatingHTTPClient().Do will be used.
	// If the body reader implements io.Seeker,
	// req.Body will also implement that interface.
	Do func(req *http.Request) (*http.Response, error)

	// expectError holds the error regexp to match
	// against the error returned from the HTTP Do
	// request. If it is empty, the error is expected to be
	// nil.
	ExpectError string

	// tag holds the tag to authenticate as.
	Tag string

	// password holds the password associated with the tag.
	Password string

	// method holds the HTTP method to use for the request.
	Method string

	// url holds the URL to send the HTTP request to.
	URL string

	// contentType holds the content type of the request.
	ContentType string

	// body holds the body of the request.
	Body io.Reader

	// extra headers are added to the http header
	ExtraHeaders map[string]string

	// jsonBody holds an object to be marshaled as JSON
	// as the body of the request. If this is specified, body will
	// be ignored and the Content-Type header will
	// be set to application/json.
	JSONBody interface{}

	// nonce holds the machine nonce to provide in the header.
	Nonce string
}

httpRequestParams holds parameters for the sendHTTPRequest methods.

type Server

type Server struct {
	// Addrs holds the address used for the
	// server, suitable for including in api.Info.Addrs
	Addrs []string

	*httptest.Server
	// contains filtered or unexported fields
}

Server represents a fake API server. It must be closed after use.

func NewAPIServer

func NewAPIServer(newRoot func(modelUUID string) interface{}) *Server

NewAPIServer serves RPC methods on a localhost HTTP server. When a connection is made to the API, the newRoot function is called with the requested model UUID and the returned value defines the API (see the juju/rpc package).

Note that the root value accepts any facade version number - it is not currently possible to use this to serve several different facade versions.

The server uses testing.ServerCert and testing.ServerKey to host the server.

The returned server must be closed after use.

type SetUpFlag

type SetUpFlag bool
const (
	WithZones      SetUpFlag = true
	WithoutZones   SetUpFlag = false
	WithSpaces     SetUpFlag = true
	WithoutSpaces  SetUpFlag = false
	WithSubnets    SetUpFlag = true
	WithoutSubnets SetUpFlag = false
)

type StubBacking

type StubBacking struct {
	*testing.Stub

	EnvConfig *config.Config
	Cloud     environs.CloudSpec

	Zones   []providercommon.AvailabilityZone
	Spaces  []networkingcommon.BackingSpace
	Subnets []networkingcommon.BackingSubnet
}

StubBacking implements networkingcommon.NetworkBacking and records calls to its methods.

func (*StubBacking) AddSpace

func (sb *StubBacking) AddSpace(name string, providerId network.Id, subnets []string, public bool) error

func (*StubBacking) AddSubnet

func (*StubBacking) AllSpaces

func (sb *StubBacking) AllSpaces() ([]networkingcommon.BackingSpace, error)

func (*StubBacking) AllSubnets

func (sb *StubBacking) AllSubnets() ([]networkingcommon.BackingSubnet, error)

func (*StubBacking) AvailabilityZones

func (sb *StubBacking) AvailabilityZones() ([]providercommon.AvailabilityZone, error)

func (*StubBacking) CloudSpec

func (sb *StubBacking) CloudSpec() (environs.CloudSpec, error)

func (*StubBacking) GoString

func (se *StubBacking) GoString() string

GoString implements fmt.GoStringer.

func (*StubBacking) ModelConfig

func (sb *StubBacking) ModelConfig() (*config.Config, error)

func (*StubBacking) ModelTag

func (sb *StubBacking) ModelTag() names.ModelTag

func (*StubBacking) ReloadSpaces

func (sb *StubBacking) ReloadSpaces(environ environs.Environ) error

func (*StubBacking) SetAvailabilityZones

func (sb *StubBacking) SetAvailabilityZones(zones []providercommon.AvailabilityZone) error

func (*StubBacking) SetUp

func (sb *StubBacking) SetUp(c *gc.C, envName string, withZones, withSpaces, withSubnets SetUpFlag)

type StubEnviron

type StubEnviron struct {
	*testing.Stub

	environs.Environ // panic on any not implemented method call
}

StubEnviron is used in tests where environs.Environ is needed.

func (*StubEnviron) GoString

func (se *StubEnviron) GoString() string

GoString implements fmt.GoStringer.

type StubMethodCall

type StubMethodCall struct {
	Receiver interface{}
	FuncName string
	Args     []interface{}
}

StubMethodCall is like testing.StubCall, but includes the receiver as well.

func BackingCall

func BackingCall(name string, args ...interface{}) StubMethodCall

BackingCall makes it easy to check method calls on BackingInstance.

func EnvironCall

func EnvironCall(name string, args ...interface{}) StubMethodCall

EnvironCall makes it easy to check method calls on EnvironInstance.

func NetworkingEnvironCall

func NetworkingEnvironCall(name string, args ...interface{}) StubMethodCall

NetworkingEnvironCall makes it easy to check method calls on NetworkingEnvironInstance.

func ProviderCall

func ProviderCall(name string, args ...interface{}) StubMethodCall

ProviderCall makes it easy to check method calls on ProviderInstance.

func ZonedEnvironCall

func ZonedEnvironCall(name string, args ...interface{}) StubMethodCall

ZonedEnvironCall makes it easy to check method calls on ZonedEnvironInstance.

func ZonedNetworkingEnvironCall

func ZonedNetworkingEnvironCall(name string, args ...interface{}) StubMethodCall

ZonedNetworkingEnvironCall makes it easy to check method calls on ZonedNetworkingEnvironInstance.

type StubNetwork

type StubNetwork struct {
}

func (StubNetwork) SetUpSuite

func (s StubNetwork) SetUpSuite(c *gc.C)

type StubNetworkingEnviron

type StubNetworkingEnviron struct {
	*testing.Stub

	environs.NetworkingEnviron // panic on any not implemented method call
}

StubNetworkingEnviron is used in tests where environs.NetworkingEnviron is needed.

func (*StubNetworkingEnviron) GoString

func (se *StubNetworkingEnviron) GoString() string

GoString implements fmt.GoStringer.

func (*StubNetworkingEnviron) Subnets

func (*StubNetworkingEnviron) SupportsSpaces

func (se *StubNetworkingEnviron) SupportsSpaces(ctx context.ProviderCallContext) (bool, error)

type StubPoolHelper

type StubPoolHelper struct {
	StubRelease func() bool
}

StubPoolHelper implements state.PoolHelper

func (StubPoolHelper) Annotate

func (s StubPoolHelper) Annotate(_ string)

func (StubPoolHelper) Release

func (s StubPoolHelper) Release() bool

type StubProvider

type StubProvider struct {
	*testing.Stub

	Zones   []providercommon.AvailabilityZone
	Subnets []network.SubnetInfo

	environs.EnvironProvider // panic on any not implemented method call.
}

StubProvider implements a subset of environs.EnvironProvider methods used in tests.

func (*StubProvider) GoString

func (se *StubProvider) GoString() string

GoString implements fmt.GoStringer.

func (*StubProvider) Open

type StubZonedEnviron

type StubZonedEnviron struct {
	*testing.Stub

	providercommon.ZonedEnviron // panic on any not implemented method call
}

StubZonedEnviron is used in tests where providercommon.ZonedEnviron is needed.

func (*StubZonedEnviron) AvailabilityZones

func (*StubZonedEnviron) GoString

func (se *StubZonedEnviron) GoString() string

GoString implements fmt.GoStringer.

type StubZonedNetworkingEnviron

type StubZonedNetworkingEnviron struct {
	*testing.Stub

	// panic on any not implemented method call
	providercommon.ZonedEnviron
	environs.Networking
}

StubZonedNetworkingEnviron is used in tests where features from both environs.Networking and providercommon.ZonedEnviron are needed.

func (*StubZonedNetworkingEnviron) AvailabilityZones

func (*StubZonedNetworkingEnviron) GoString

func (se *StubZonedNetworkingEnviron) GoString() string

GoString implements fmt.GoStringer.

func (*StubZonedNetworkingEnviron) Subnets

func (*StubZonedNetworkingEnviron) SupportsSpaces

Jump to

Keyboard shortcuts

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