Package google.golang.org/appengine/aetest (v1.6.8)

Le package Aetest fournit une API pour exécuter dev_appserver au cours des tests.

Exemple de fichier de test :

package foo_test

import (
    "testing"

    "google.golang.org/appengine/memcache"
    "google.golang.org/appengine/aetest"
)

func TestFoo(t *testing.T) {
    ctx, done, err := aetest.NewContext()
    if err != nil {
        t.Fatal(err)
    }
    defer done()

    it := &memcache.Item{
        Key:   "some-key",
        Value: []byte("some-value"),
    }
    err = memcache.Set(ctx, it)
    if err != nil {
        t.Fatalf("Set err: %v", err)
    }
    it, err = memcache.Get(ctx, "some-key")
    if err != nil {
        t.Fatalf("Get err: %v; want no error", err)
    }
    if g, w := string(it.Value), "some-value" ; g != w {
        t.Errorf("retrieved Item.Value = %q, want %q", g, w)
    }
}

La variable d'environnement APPENGINE_DEV_APPSERVER spécifie l'emplacement du fichier exécutable dev_appserver.py à utiliser. Si non défini, le CHEMIN D'ACCÈS système est consulté.

Variables

PrepareDevAppserver

var PrepareDevAppserver func() error

"PrepareDevAppserver" est un hook qui, s'il est défini, sera appelé avant que le serveur dev_appserver.py ne soit démarré, et à chaque démarrage. Si "aetest.NewContext" est appelé à partir de l'outil de test "goapp", ce hook n'est pas nécessaire.

Fonctions

func Login

func Login(u *user.User, req *http.Request)

La fonction "Login" oblige la requête fournie à agir comme si elle avait été émise par l'utilisateur donné.

func Logout

func Logout(req *http.Request)

La fonction "Logout" oblige la requête fournie à agir comme si elle avait été émise par un utilisateur déconnecté.

func NewContext

func NewContext() (context.Context, func(), error)

La fonction "NewContext" démarre une instance du serveur d'API de développement et renvoie un contexte qui achemine tous les appels d'API vers ce serveur, ainsi qu'une fermeture qui doit être appelée lorsque le contexte n'est plus requis.

Instance

type Instance interface {
	// Close kills the child api_server.py process, releasing its resources.
	io.Closer
	// NewRequest returns an *http.Request associated with this instance.
	NewRequest(method, urlStr string, body io.Reader) (*http.Request, error)
}

Le type "Instance" représente une instance en cours d'exécution du serveur d'API de développement.

func NewInstance

func NewInstance(opts *Options) (Instance, error)

La fonction "NewInstance" lance une instance en cours d'exécution de api_server.py, qui peut être utilisée pour plusieurs contextes de test pour déléguer tous les appels de l'API App Engine à cette instance. Si la valeur de "opt" est nulle, les valeurs par défaut sont utilisées.

Options

type Options struct {
	// AppID specifies the App ID to use during tests.
	// By default, "testapp".
	AppID string
	// StronglyConsistentDatastore is whether the local datastore should be
	// strongly consistent. This will diverge from production behaviour.
	StronglyConsistentDatastore bool
	// SupportDatastoreEmulator is whether use Cloud Datastore Emulator or
	// use old SQLite based Datastore backend or use default settings.
	SupportDatastoreEmulator *bool
	// SuppressDevAppServerLog is whether the dev_appserver running in tests
	// should output logs.
	SuppressDevAppServerLog bool
	// StartupTimeout is a duration to wait for instance startup.
	// By default, 15 seconds.
	StartupTimeout time.Duration
}

Le type "Options" est utilisé pour spécifier des options lors de la création d'une instance.