testing

package
v0.0.0-...-4bd6544 Latest Latest
Warning

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

Go to latest
Published: Oct 5, 2016 License: AGPL-3.0 Imports: 41 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 AssertPrincipalServiceDeployed

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

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 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 FakeAuthorizer

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

FakeAuthorizer implements the facade.Authorizer interface.

func (FakeAuthorizer) AuthClient

func (fa FakeAuthorizer) AuthClient() bool

AuthClient returns whether the authenticated entity is a client user.

func (FakeAuthorizer) AuthMachineAgent

func (fa FakeAuthorizer) AuthMachineAgent() bool

AuthMachineAgent returns whether the current client is a machine agent.

func (FakeAuthorizer) AuthModelManager

func (fa FakeAuthorizer) AuthModelManager() bool

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)

HasPermission 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 {
	// contains filtered or unexported fields
}

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) 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 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(names.ModelTag) (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) 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 (se *StubNetworkingEnviron) Subnets(instId instance.Id, subIds []network.Id) ([]network.SubnetInfo, error)

func (*StubNetworkingEnviron) SupportsSpaces

func (se *StubNetworkingEnviron) SupportsSpaces() (bool, error)

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 (se *StubZonedEnviron) AvailabilityZones() ([]providercommon.AvailabilityZone, error)

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 (se *StubZonedNetworkingEnviron) AvailabilityZones() ([]providercommon.AvailabilityZone, error)

func (*StubZonedNetworkingEnviron) GoString

func (se *StubZonedNetworkingEnviron) GoString() string

GoString implements fmt.GoStringer.

func (*StubZonedNetworkingEnviron) Subnets

func (se *StubZonedNetworkingEnviron) Subnets(instId instance.Id, subIds []network.Id) ([]network.SubnetInfo, error)

func (*StubZonedNetworkingEnviron) SupportsSpaces

func (se *StubZonedNetworkingEnviron) SupportsSpaces() (bool, error)

Jump to

Keyboard shortcuts

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