package aetest
import "google.golang.org/appengine/aetest"
Package aetest provides an API for running dev_appserver for use in tests.
An example test file:
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) } }
The environment variable APPENGINE_DEV_APPSERVER specifies the location of the dev_appserver.py executable to use. If unset, the system PATH is consulted.
Index ¶
- Variables
- func Login(u *user.User, req *http.Request)
- func Logout(req *http.Request)
- func NewContext() (context.Context, func(), error)
- type Instance
- type Options
Variables ¶
var PrepareDevAppserver func() error
PrepareDevAppserver is a hook which, if set, will be called before the dev_appserver.py is started, each time it is started. If aetest.NewContext is invoked from the goapp test tool, this hook is unnecessary.
Functions ¶
func Login ¶
Login causes the provided Request to act as though issued by the given user.
func Logout ¶
Logout causes the provided Request to act as though issued by a logged-out user.
func NewContext ¶
NewContext starts an instance of the development API server, and returns a context that will route all API calls to that server, as well as a closure that must be called when the Context is no longer required.
Types ¶
type 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) }
Instance represents a running instance of the development API Server.
func NewInstance ¶
NewInstance launches a running instance of api_server.py which can be used for multiple test Contexts that delegate all App Engine API calls to that instance. If opts is nil the default values are used.
type 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 // 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 }
Options is used to specify options when creating an Instance.
Source Files ¶
doc.go instance.go instance_vm.go user.go
- Version
- v1.3.0
- Published
- Oct 31, 2018
- Platform
- js/wasm
- Imports
- 19 packages
- Last checked
- 8 hours ago –
Tools for package owners.