| // Copyright 2016 Google Inc. All rights reserved. |
| // Use of this source code is governed by the Apache 2.0 |
| // license that can be found in the LICENSE file. |
| |
| package main |
| |
| func init() { |
| addTestCases(aeTests, nil) |
| } |
| |
| var aeTests = []testCase{ |
| // Collection of fixes: |
| // - imports |
| // - appengine.Timeout -> context.WithTimeout |
| // - add ctx arg to appengine.Datacenter |
| // - logging API |
| { |
| Name: "ae.0", |
| In: `package foo |
| |
| import ( |
| "net/http" |
| "time" |
| |
| "appengine" |
| "appengine/datastore" |
| ) |
| |
| func f(w http.ResponseWriter, r *http.Request) { |
| c := appengine.NewContext(r) |
| |
| c = appengine.Timeout(c, 5*time.Second) |
| err := datastore.ErrNoSuchEntity |
| c.Errorf("Something interesting happened: %v", err) |
| _ = appengine.Datacenter() |
| } |
| `, |
| Out: `package foo |
| |
| import ( |
| "net/http" |
| "time" |
| |
| "golang.org/x/net/context" |
| "google.golang.org/appengine" |
| "google.golang.org/appengine/datastore" |
| "google.golang.org/appengine/log" |
| ) |
| |
| func f(w http.ResponseWriter, r *http.Request) { |
| c := appengine.NewContext(r) |
| |
| c, _ = context.WithTimeout(c, 5*time.Second) |
| err := datastore.ErrNoSuchEntity |
| log.Errorf(c, "Something interesting happened: %v", err) |
| _ = appengine.Datacenter(c) |
| } |
| `, |
| }, |
| |
| // Updating a function that takes an appengine.Context arg. |
| { |
| Name: "ae.1", |
| In: `package foo |
| |
| import ( |
| "appengine" |
| ) |
| |
| func LogSomething(c2 appengine.Context) { |
| c2.Warningf("Stand back! I'm going to try science!") |
| } |
| `, |
| Out: `package foo |
| |
| import ( |
| "golang.org/x/net/context" |
| "google.golang.org/appengine" |
| "google.golang.org/appengine/log" |
| ) |
| |
| func LogSomething(c2 context.Context) { |
| log.Warningf(c2, "Stand back! I'm going to try science!") |
| } |
| `, |
| }, |
| |
| // Less widely used API changes: |
| // - drop maxTasks arg to taskqueue.QueueStats |
| { |
| Name: "ae.2", |
| In: `package foo |
| |
| import ( |
| "appengine" |
| "appengine/taskqueue" |
| ) |
| |
| func f(ctx appengine.Context) { |
| stats, err := taskqueue.QueueStats(ctx, []string{"one", "two"}, 0) |
| } |
| `, |
| Out: `package foo |
| |
| import ( |
| "golang.org/x/net/context" |
| "google.golang.org/appengine" |
| "google.golang.org/appengine/taskqueue" |
| ) |
| |
| func f(ctx context.Context) { |
| stats, err := taskqueue.QueueStats(ctx, []string{"one", "two"}) |
| } |
| `, |
| }, |
| } |