mocktc

package
v41.1.0 Latest Latest
Warning

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

Go to latest
Published: Feb 24, 2021 License: MPL-2.0 Imports: 23 Imported by: 0

README

Mock Services Design

This package contains mock service implementations for worker tests.

Design goals:

  1. All tests runnable against mocks or a real deployed cluster
  2. Tests to run against mocks by default, but configurable to run against a real taskcluster deployment
  3. Mocks to service HTTP requests on localhost, emulating a real worker environment, in order to maximise test coverage of worker code
  4. All worker required network services to be mocked, including AWS S3 upload (for artifact publishing), cloud metadata endpoints and taskcluster HTTP endpoints
  5. Tests requiring external conditions hard to trigger in a real deployment may bypass requirement for compatibility with a real taskcluster deployment

At the current time, the following are NOT design goals, due to the increased complexity to implement. These may become design goals in the future.

  1. Mock services to be usable by both generic-worker and docker-worker tests
  2. Sharable tests between generic-worker and docker-worker

Documentation

Index

Constants

View Source
const WST_AUDIENCE = "testing"
View Source
const WST_SECRET = "sshhh!"

Variables

This section is empty.

Functions

func JSON

func JSON(w http.ResponseWriter, resp interface{}, err error)

func Marshal

func Marshal(req *http.Request, payload interface{})

func NoBody

func NoBody(w http.ResponseWriter, err error)

func ReportError

func ReportError(w http.ResponseWriter, err error)

func ServiceProviders

func ServiceProviders(t *testing.T) []tchttputil.ServiceProvider

func Vars

func Vars(r *http.Request) map[string]string

func WriteAsJSON

func WriteAsJSON(t *testing.T, w http.ResponseWriter, resp interface{})

Types

type Auth

type Auth struct {
}

func NewAuth

func NewAuth(t *testing.T) *Auth

func (*Auth) ExpandScopes

func (auth *Auth) ExpandScopes(payload *tcauth.SetOfScopes) (*tcauth.SetOfScopes, error)

func (*Auth) SentryDSN

func (auth *Auth) SentryDSN(project string) (*tcauth.SentryDSNResponse, error)

func (*Auth) WebsocktunnelToken

func (auth *Auth) WebsocktunnelToken(wstAudience, wstClientId string) (*tcauth.WebsocktunnelTokenResponse, error)

type AuthProvider

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

func NewAuthProvider

func NewAuthProvider(auth tc.Auth) *AuthProvider

func (*AuthProvider) ExpandScopes

func (ap *AuthProvider) ExpandScopes(w http.ResponseWriter, r *http.Request)

func (*AuthProvider) RegisterService

func (ap *AuthProvider) RegisterService(r *mux.Router)

func (*AuthProvider) SentryDSN

func (ap *AuthProvider) SentryDSN(w http.ResponseWriter, r *http.Request)

func (*AuthProvider) WebsocktunnelToken

func (ap *AuthProvider) WebsocktunnelToken(w http.ResponseWriter, r *http.Request)

type PurgeCache

type PurgeCache struct {
}

func NewPurgeCache

func NewPurgeCache(t *testing.T) *PurgeCache

func (*PurgeCache) PurgeRequests

func (purgeCache *PurgeCache) PurgeRequests(workerPoolId, since string) (*tcpurgecache.OpenPurgeRequestList, error)

type Queue

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

func NewQueue

func NewQueue(t *testing.T) *Queue

func (*Queue) CancelTask

func (queue *Queue) CancelTask(taskId string) (*tcqueue.TaskStatusResponse, error)

func (*Queue) ClaimWork

func (queue *Queue) ClaimWork(taskQueueId string, payload *tcqueue.ClaimWorkRequest) (*tcqueue.ClaimWorkResponse, error)

func (*Queue) CreateArtifact

func (queue *Queue) CreateArtifact(taskId, runId, name string, payload *tcqueue.PostArtifactRequest) (*tcqueue.PostArtifactResponse, error)

func (*Queue) CreateTask

func (queue *Queue) CreateTask(taskId string, payload *tcqueue.TaskDefinitionRequest) (*tcqueue.TaskStatusResponse, error)

func (*Queue) GetLatestArtifact_SignedURL

func (queue *Queue) GetLatestArtifact_SignedURL(taskId, name string, duration time.Duration) (*url.URL, error)

func (*Queue) ListArtifacts

func (queue *Queue) ListArtifacts(taskId, runId, continuationToken, limit string) (*tcqueue.ListArtifactsResponse, error)

func (*Queue) ReclaimTask

func (queue *Queue) ReclaimTask(taskId, runId string) (*tcqueue.TaskReclaimResponse, error)

func (*Queue) ReportCompleted

func (queue *Queue) ReportCompleted(taskId, runId string) (*tcqueue.TaskStatusResponse, error)

func (*Queue) ReportException

func (queue *Queue) ReportException(taskId, runId string, payload *tcqueue.TaskExceptionRequest) (*tcqueue.TaskStatusResponse, error)

func (*Queue) ReportFailed

func (queue *Queue) ReportFailed(taskId, runId string) (*tcqueue.TaskStatusResponse, error)

func (*Queue) Status

func (queue *Queue) Status(taskId string) (*tcqueue.TaskStatusResponse, error)

func (*Queue) Task

func (queue *Queue) Task(taskId string) (*tcqueue.TaskDefinitionResponse, error)

type QueueProvider

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

func NewQueueProvider

func NewQueueProvider(queue tc.Queue) *QueueProvider

func (*QueueProvider) CancelTask

func (qp *QueueProvider) CancelTask(w http.ResponseWriter, r *http.Request)

func (*QueueProvider) ClaimWork

func (qp *QueueProvider) ClaimWork(w http.ResponseWriter, r *http.Request)

func (*QueueProvider) CreateArtifact

func (qp *QueueProvider) CreateArtifact(w http.ResponseWriter, r *http.Request)

func (*QueueProvider) CreateTask

func (qp *QueueProvider) CreateTask(w http.ResponseWriter, r *http.Request)

func (*QueueProvider) GetLatestArtifact_SignedURL

func (qp *QueueProvider) GetLatestArtifact_SignedURL(w http.ResponseWriter, r *http.Request)

func (*QueueProvider) ListArtifacts

func (qp *QueueProvider) ListArtifacts(w http.ResponseWriter, r *http.Request)

func (*QueueProvider) ReclaimTask

func (qp *QueueProvider) ReclaimTask(w http.ResponseWriter, r *http.Request)

func (*QueueProvider) RegisterService

func (qp *QueueProvider) RegisterService(r *mux.Router)

func (*QueueProvider) ReportCompleted

func (qp *QueueProvider) ReportCompleted(w http.ResponseWriter, r *http.Request)

func (*QueueProvider) ReportException

func (qp *QueueProvider) ReportException(w http.ResponseWriter, r *http.Request)

func (*QueueProvider) ReportFailed

func (qp *QueueProvider) ReportFailed(w http.ResponseWriter, r *http.Request)

func (*QueueProvider) Status

func (qp *QueueProvider) Status(w http.ResponseWriter, r *http.Request)

func (*QueueProvider) Task

func (qp *QueueProvider) Task(w http.ResponseWriter, r *http.Request)

type Secrets

type Secrets struct {
	// map from secret name to secret value
	Secrets map[string]*tcsecrets.Secret
}

func NewSecrets

func NewSecrets() *Secrets

func (*Secrets) Get

func (s *Secrets) Get(name string) (*tcsecrets.Secret, error)

func (*Secrets) List

func (s *Secrets) List(continuationToken, limit string) (*tcsecrets.SecretsList, error)

func (*Secrets) Ping

func (s *Secrets) Ping() error

func (*Secrets) Remove

func (s *Secrets) Remove(name string) error

func (*Secrets) Set

func (s *Secrets) Set(name string, payload *tcsecrets.Secret) error

type SecretsProvider

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

func NewSecretsProvider

func NewSecretsProvider(secrets tc.Secrets) *SecretsProvider

func (*SecretsProvider) Get

func (*SecretsProvider) List

func (*SecretsProvider) Ping

func (*SecretsProvider) RegisterService

func (sp *SecretsProvider) RegisterService(r *mux.Router)

func (*SecretsProvider) Remove

func (sp *SecretsProvider) Remove(w http.ResponseWriter, r *http.Request)

func (*SecretsProvider) Set

type ServiceFactory

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

func NewServiceFactory

func NewServiceFactory(t *testing.T) *ServiceFactory

func (*ServiceFactory) Auth

func (sf *ServiceFactory) Auth(creds *tcclient.Credentials, rootURL string) tc.Auth

func (*ServiceFactory) PurgeCache

func (sf *ServiceFactory) PurgeCache(creds *tcclient.Credentials, rootURL string) tc.PurgeCache

func (*ServiceFactory) Queue

func (sf *ServiceFactory) Queue(creds *tcclient.Credentials, rootURL string) tc.Queue

func (*ServiceFactory) Secrets

func (sf *ServiceFactory) Secrets(creds *tcclient.Credentials, rootURL string) tc.Secrets

func (*ServiceFactory) WorkerManager

func (sf *ServiceFactory) WorkerManager(creds *tcclient.Credentials, rootURL string) tc.WorkerManager

type WorkerManager

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

func NewWorkerManager

func NewWorkerManager(t *testing.T) *WorkerManager

func (*WorkerManager) CreateWorkerPool

func (*WorkerManager) WorkerPool

func (wm *WorkerManager) WorkerPool(workerPoolId string) (*tcworkermanager.WorkerPoolFullDefinition, error)

type WorkerManagerProvider

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

func NewWorkerManagerProvider

func NewWorkerManagerProvider(workerManager tc.WorkerManager) *WorkerManagerProvider

func (*WorkerManagerProvider) CreateWorkerPool

func (wp *WorkerManagerProvider) CreateWorkerPool(w http.ResponseWriter, r *http.Request)

func (*WorkerManagerProvider) RegisterService

func (wp *WorkerManagerProvider) RegisterService(r *mux.Router)

func (*WorkerManagerProvider) RegisterWorker

func (wp *WorkerManagerProvider) RegisterWorker(w http.ResponseWriter, r *http.Request)

func (*WorkerManagerProvider) WorkerPool

func (wp *WorkerManagerProvider) WorkerPool(w http.ResponseWriter, r *http.Request)

Jump to

Keyboard shortcuts

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