database: Remove bgCtx, add AE context to deleteIndex

Change-Id: I8e774af75dc291c5a5784d5f14b8a481593d4978
Reviewed-on: https://go-review.googlesource.com/44333
Reviewed-by: Stephen Weinberg <stephenmw@google.com>
diff --git a/database/database.go b/database/database.go
index 234a2e6..8e33b0f 100644
--- a/database/database.go
+++ b/database/database.go
@@ -231,9 +231,6 @@
 	return err
 }
 
-// TODO(stephenmw): bgCtx is not necessary anymore.
-var bgCtx = context.Background // replaced by tests
-
 // Put adds the package documentation to the database.
 func (db *Database) Put(pdoc *doc.Package, nextCrawl time.Time, hide bool) error {
 	c := db.Pool.Get()
@@ -298,20 +295,19 @@
 	if err != nil {
 		return err
 	}
-	ctx := bgCtx()
 
 	if score > 0 {
-		if err := db.PutIndex(ctx, pdoc, id, score, n); err != nil {
+		if err := db.PutIndex(db.AppEngineContext, pdoc, id, score, n); err != nil {
 			log.Printf("Cannot put %q in index: %v", pdoc.ImportPath, err)
 		}
 
 		if old != nil {
-			if err := db.updateImportsIndex(c, ctx, old, pdoc); err != nil {
+			if err := db.updateImportsIndex(c, db.AppEngineContext, old, pdoc); err != nil {
 				return err
 			}
 		}
 	} else {
-		if err := deleteIndex(ctx, id); err != nil {
+		if err := deleteIndex(db.AppEngineContext, id); err != nil {
 			return err
 		}
 	}
@@ -382,13 +378,13 @@
 	// For each import change, re-index that package with updated NumImported.
 	// In practice this should not happen often and when it does, the changes are
 	// likely to be a small amount.
-	for p, _ := range changes {
+	for p := range changes {
 		id, n, err := pkgIDAndImportCount(c, p)
 		if err != nil {
 			return err
 		}
 		if id != "" {
-			db.PutIndex(ctx, nil, id, -1, n)
+			db.PutIndex(db.AppEngineContext, nil, id, -1, n)
 		}
 	}
 	return nil
@@ -625,7 +621,6 @@
 	c := db.Pool.Get()
 	defer c.Close()
 
-	ctx := bgCtx()
 	id, err := redis.String(c.Do("HGET", "ids", path))
 	if err == redis.ErrNil {
 		return nil
@@ -633,7 +628,7 @@
 	if err != nil {
 		return err
 	}
-	if err := deleteIndex(ctx, id); err != nil {
+	if err := deleteIndex(db.AppEngineContext, id); err != nil {
 		return err
 	}
 
@@ -1263,11 +1258,9 @@
 }
 
 func (db *Database) Search(ctx context.Context, q string) ([]Package, error) {
-	// TODO(stephenmw): merge ctx with AppEngineContext
 	return searchAE(db.AppEngineContext, q)
 }
 
 func (db *Database) PutIndex(ctx context.Context, pdoc *doc.Package, id string, score float64, importCount int) error {
-	// TODO(stephenmw): merge ctx with AppEngineContext
 	return putIndex(db.AppEngineContext, pdoc, id, score, importCount)
 }
diff --git a/database/database_test.go b/database/database_test.go
index c9d63b3..f8fd70b 100644
--- a/database/database_test.go
+++ b/database/database_test.go
@@ -14,7 +14,6 @@
 	"time"
 
 	"github.com/garyburd/redigo/redis"
-	"golang.org/x/net/context"
 	"google.golang.org/appengine/aetest"
 
 	"github.com/golang/gddo/doc"
@@ -40,7 +39,14 @@
 	if n != 0 || err != nil {
 		t.Errorf("DBSIZE returned %d, %v", n, err)
 	}
-	return &Database{Pool: p}
+
+	ctx, done, err := aetest.NewContext()
+	if err != nil {
+		t.Fatal(err)
+	}
+	defer done()
+
+	return &Database{Pool: p, AppEngineContext: ctx}
 }
 
 func closeDB(db *Database) {
@@ -51,14 +57,6 @@
 
 func TestPutGet(t *testing.T) {
 	var nextCrawl = time.Unix(time.Now().Add(time.Hour).Unix(), 0).UTC()
-	ctx, done, err := aetest.NewContext()
-	if err != nil {
-		t.Fatal(err)
-	}
-	defer done()
-	bgCtx = func() context.Context {
-		return ctx
-	}
 
 	db := newDB(t)
 	defer closeDB(db)
diff --git a/database/indexae_test.go b/database/indexae_test.go
index 42530d7..c1b567a 100644
--- a/database/indexae_test.go
+++ b/database/indexae_test.go
@@ -32,7 +32,7 @@
 	}
 	defer done()
 
-	if err := PutIndex(c, nil, "", 0, 0); err == nil {
+	if err := putIndex(c, nil, "", 0, 0); err == nil {
 		t.Errorf("PutIndex succeeded unexpectedly")
 	}
 }
@@ -44,7 +44,7 @@
 	}
 	defer done()
 
-	if err := PutIndex(c, nil, "12345", -1, 2); err == nil {
+	if err := putIndex(c, nil, "12345", -1, 2); err == nil {
 		t.Errorf("PutIndex succeeded unexpectedly")
 	}
 }
@@ -57,7 +57,7 @@
 	defer done()
 
 	// Put a new package into search index.
-	if err := PutIndex(c, pdoc, "12345", 0.99, 1); err != nil {
+	if err := putIndex(c, pdoc, "12345", 0.99, 1); err != nil {
 		t.Fatal(err)
 	}
 
@@ -84,7 +84,7 @@
 	}
 
 	// Update the import count of the package.
-	if err := PutIndex(c, nil, "12345", -1, 2); err != nil {
+	if err := putIndex(c, nil, "12345", -1, 2); err != nil {
 		t.Fatal(err)
 	}
 	if err := idx.Get(c, "12345", &got); err != nil && err != search.ErrNoSuchDocument {
@@ -109,11 +109,11 @@
 	for i := 2; i < 6; i++ {
 		id += strconv.Itoa(i)
 		pdoc.Synopsis = id
-		if err := PutIndex(c, pdoc, id, math.Pow(0.9, float64(i)), 10*i); err != nil {
+		if err := putIndex(c, pdoc, id, math.Pow(0.9, float64(i)), 10*i); err != nil {
 			t.Fatal(err)
 		}
 	}
-	got, err := Search(c, "test")
+	got, err := searchAE(c, "test")
 	if err != nil {
 		t.Fatal(err)
 	}