Skip to content
This repository was archived by the owner on Jan 16, 2021. It is now read-only.

Commit 6bb33fc

Browse files
committed
all: fixed broken tests
1. Use cmp package to replace reflect.DeepEqual 2. db.PutIndex and db.DeleteIndex won't return error when remote_api is not setup, since they are only called inside db.Put and db.Delete. db.Search remains unchanged since it is called externally. Change-Id: Ife84f5a98abe721fbb127e497fdae34125d547a1 Reviewed-on: https://go-review.googlesource.com/78435 Reviewed-by: Ross Light <[email protected]>
1 parent 46b0a98 commit 6bb33fc

File tree

21 files changed

+2421
-41
lines changed

21 files changed

+2421
-41
lines changed

Godeps/Godeps.json

Lines changed: 20 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

database/database.go

Lines changed: 12 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -150,6 +150,8 @@ func New(serverURI string, idleTimeout time.Duration, logConn bool, gaeEndpoint
150150
if rc, err = newRemoteClient(gaeEndpoint); err != nil {
151151
return nil, err
152152
}
153+
} else {
154+
log.Println("remote_api client not setup to use App Engine search")
153155
}
154156

155157
return &Database{Pool: pool, RemoteClient: rc}, nil
@@ -366,6 +368,8 @@ func pkgIDAndImportCount(c redis.Conn, path string) (id string, numImported int,
366368
id, err = redis.String(c.Do("HGET", "ids", path))
367369
if err == redis.ErrNil {
368370
return "", 0, nil
371+
} else if err != nil {
372+
return "", 0, err
369373
}
370374
return id, numImported, nil
371375
}
@@ -390,10 +394,12 @@ func (db *Database) updateImportsIndex(ctx context.Context, c redis.Conn, oldDoc
390394
for p := range changes {
391395
id, n, err := pkgIDAndImportCount(c, p)
392396
if err != nil {
393-
return err
397+
log.Println("database.updateImportsIndex:", err)
394398
}
395399
if id != "" {
396-
db.PutIndex(ctx, nil, id, -1, n)
400+
if err := db.PutIndex(ctx, nil, id, -1, n); err != nil {
401+
log.Printf("database.updateImportsIndex: putting package %s into the index: %v\n", p, err)
402+
}
397403
}
398404
}
399405
return nil
@@ -1282,17 +1288,19 @@ func (db *Database) Search(ctx context.Context, q string) ([]Package, error) {
12821288
}
12831289

12841290
// PutIndex puts a package into App Engine search index. ID is the package ID in the database.
1291+
// It is no-op when running locally without setting up remote_api.
12851292
func (db *Database) PutIndex(ctx context.Context, pdoc *doc.Package, id string, score float64, importCount int) error {
12861293
if db.RemoteClient == nil {
1287-
return errors.New("remote_api client not setup to use App Engine search")
1294+
return nil
12881295
}
12891296
return putIndex(db.RemoteClient.NewContext(ctx), pdoc, id, score, importCount)
12901297
}
12911298

12921299
// DeleteIndex deletes a package from App Engine search index. ID is the package ID in the database.
1300+
// It is no-op when running locally without setting up remote_api.
12931301
func (db *Database) DeleteIndex(ctx context.Context, id string) error {
12941302
if db.RemoteClient == nil {
1295-
return errors.New("database.DeleteIndex: no App Engine endpoint given")
1303+
return nil
12961304
}
12971305
return deleteIndex(db.RemoteClient.NewContext(ctx), id)
12981306
}

database/database_test.go

Lines changed: 17 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -7,14 +7,14 @@
77
package database
88

99
import (
10+
"context"
1011
"math"
11-
"reflect"
1212
"strconv"
1313
"testing"
1414
"time"
1515

1616
"github.com/garyburd/redigo/redis"
17-
"google.golang.org/appengine/aetest"
17+
"github.com/google/go-cmp/cmp"
1818

1919
"github.com/golang/gddo/doc"
2020
)
@@ -40,13 +40,7 @@ func newDB(t *testing.T) *Database {
4040
t.Errorf("DBSIZE returned %d, %v", n, err)
4141
}
4242

43-
ctx, done, err := aetest.NewContext()
44-
if err != nil {
45-
t.Fatal(err)
46-
}
47-
defer done()
48-
49-
return &Database{Pool: p, AppEngineContext: ctx}
43+
return &Database{Pool: p, RemoteClient: nil}
5044
}
5145

5246
func closeDB(db *Database) {
@@ -56,6 +50,7 @@ func closeDB(db *Database) {
5650
}
5751

5852
func TestPutGet(t *testing.T) {
53+
ctx := context.Background()
5954
var nextCrawl = time.Unix(time.Now().Add(time.Hour).Unix(), 0).UTC()
6055

6156
db := newDB(t)
@@ -69,21 +64,21 @@ func TestPutGet(t *testing.T) {
6964
Updated: time.Now().Add(-time.Hour),
7065
Imports: []string{"C", "errors", "github.com/user/repo/foo/bar"}, // self import for testing convenience.
7166
}
72-
if err := db.Put(pdoc, nextCrawl, false); err != nil {
67+
if err := db.Put(ctx, pdoc, nextCrawl, false); err != nil {
7368
t.Errorf("db.Put() returned error %v", err)
7469
}
75-
if err := db.Put(pdoc, time.Time{}, false); err != nil {
70+
if err := db.Put(ctx, pdoc, time.Time{}, false); err != nil {
7671
t.Errorf("second db.Put() returned error %v", err)
7772
}
7873

79-
actualPdoc, actualSubdirs, actualCrawl, err := db.Get("github.com/user/repo/foo/bar")
74+
actualPdoc, actualSubdirs, actualCrawl, err := db.Get(ctx, "github.com/user/repo/foo/bar")
8075
if err != nil {
8176
t.Fatalf("db.Get(.../foo/bar) returned %v", err)
8277
}
8378
if len(actualSubdirs) != 0 {
8479
t.Errorf("db.Get(.../foo/bar) returned subdirs %v, want none", actualSubdirs)
8580
}
86-
if !reflect.DeepEqual(actualPdoc, pdoc) {
81+
if !cmp.Equal(actualPdoc, pdoc) {
8782
t.Errorf("db.Get(.../foo/bar) returned doc %v, want %v", actualPdoc, pdoc)
8883
}
8984
if !nextCrawl.Equal(actualCrawl) {
@@ -96,7 +91,7 @@ func TestPutGet(t *testing.T) {
9691
}
9792
after := time.Now().Unix()
9893

99-
_, _, actualCrawl, _ = db.Get("github.com/user/repo/foo/bar")
94+
_, _, actualCrawl, _ = db.Get(ctx, "github.com/user/repo/foo/bar")
10095
if actualCrawl.Unix() < before || after < actualCrawl.Unix() {
10196
t.Errorf("actualCrawl=%v, expect value between %v and %v", actualCrawl.Unix(), before, after)
10297
}
@@ -109,31 +104,31 @@ func TestPutGet(t *testing.T) {
109104

110105
// Get "-"
111106

112-
actualPdoc, _, _, err = db.Get("-")
107+
actualPdoc, _, _, err = db.Get(ctx, "-")
113108
if err != nil {
114109
t.Fatalf("db.Get(-) returned %v", err)
115110
}
116-
if !reflect.DeepEqual(actualPdoc, pdoc) {
111+
if !cmp.Equal(actualPdoc, pdoc) {
117112
t.Errorf("db.Get(-) returned doc %v, want %v", actualPdoc, pdoc)
118113
}
119114

120-
actualPdoc, actualSubdirs, _, err = db.Get("github.com/user/repo/foo")
115+
actualPdoc, actualSubdirs, _, err = db.Get(ctx, "github.com/user/repo/foo")
121116
if err != nil {
122117
t.Fatalf("db.Get(.../foo) returned %v", err)
123118
}
124119
if actualPdoc != nil {
125120
t.Errorf("db.Get(.../foo) returned doc %v, want %v", actualPdoc, nil)
126121
}
127122
expectedSubdirs := []Package{{Path: "github.com/user/repo/foo/bar", Synopsis: "hello"}}
128-
if !reflect.DeepEqual(actualSubdirs, expectedSubdirs) {
123+
if !cmp.Equal(actualSubdirs, expectedSubdirs) {
129124
t.Errorf("db.Get(.../foo) returned subdirs %v, want %v", actualSubdirs, expectedSubdirs)
130125
}
131126
actualImporters, err := db.Importers("github.com/user/repo/foo/bar")
132127
if err != nil {
133128
t.Fatalf("db.Importers() returned error %v", err)
134129
}
135130
expectedImporters := []Package{{Path: "github.com/user/repo/foo/bar", Synopsis: "hello"}}
136-
if !reflect.DeepEqual(actualImporters, expectedImporters) {
131+
if !cmp.Equal(actualImporters, expectedImporters) {
137132
t.Errorf("db.Importers() = %v, want %v", actualImporters, expectedImporters)
138133
}
139134
actualImports, err := db.Packages(pdoc.Imports)
@@ -150,20 +145,20 @@ func TestPutGet(t *testing.T) {
150145
{Path: "errors", Synopsis: ""},
151146
{Path: "github.com/user/repo/foo/bar", Synopsis: "hello"},
152147
}
153-
if !reflect.DeepEqual(actualImports, expectedImports) {
148+
if !cmp.Equal(actualImports, expectedImports) {
154149
t.Errorf("db.Imports() = %v, want %v", actualImports, expectedImports)
155150
}
156151
importerCount, _ := db.ImporterCount("github.com/user/repo/foo/bar")
157152
if importerCount != 1 {
158153
t.Errorf("db.ImporterCount() = %d, want %d", importerCount, 1)
159154
}
160-
if err := db.Delete("github.com/user/repo/foo/bar"); err != nil {
155+
if err := db.Delete(ctx, "github.com/user/repo/foo/bar"); err != nil {
161156
t.Errorf("db.Delete() returned error %v", err)
162157
}
163158

164159
db.Query("bar")
165160

166-
if err := db.Put(pdoc, time.Time{}, false); err != nil {
161+
if err := db.Put(ctx, pdoc, time.Time{}, false); err != nil {
167162
t.Errorf("db.Put() returned error %v", err)
168163
}
169164

database/index_test.go

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -7,11 +7,11 @@
77
package database
88

99
import (
10-
"reflect"
1110
"sort"
1211
"testing"
1312

1413
"github.com/golang/gddo/doc"
14+
"github.com/google/go-cmp/cmp"
1515
)
1616

1717
var indexTests = []struct {
@@ -94,7 +94,7 @@ func TestDocTerms(t *testing.T) {
9494
terms := documentTerms(tt.pdoc, score)
9595
sort.Strings(terms)
9696
sort.Strings(tt.terms)
97-
if !reflect.DeepEqual(terms, tt.terms) {
97+
if !cmp.Equal(terms, tt.terms) {
9898
t.Errorf("documentTerms(%s) ->\n got: %#v\nwant: %#v", tt.pdoc.ImportPath, terms, tt.terms)
9999
}
100100
}
@@ -195,7 +195,7 @@ func TestSynopsisTerms(t *testing.T) {
195195
expected := tt.terms
196196
sort.Strings(actual)
197197
sort.Strings(expected)
198-
if !reflect.DeepEqual(actual, expected) {
198+
if !cmp.Equal(actual, expected) {
199199
t.Errorf("%q ->\n got: %#v\nwant: %#v", tt.synopsis, actual, expected)
200200
}
201201
}

gddo-server/template_test.go

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,9 +9,10 @@ package main
99
import (
1010
"net/http"
1111
"net/http/httptest"
12-
"reflect"
1312
"strings"
1413
"testing"
14+
15+
"github.com/google/go-cmp/cmp"
1516
)
1617

1718
func TestFlashMessages(t *testing.T) {
@@ -27,7 +28,7 @@ func TestFlashMessages(t *testing.T) {
2728
req := &http.Request{Header: http.Header{"Cookie": {strings.Split(resp.Header().Get("Set-Cookie"), ";")[0]}}}
2829

2930
actualMessages := getFlashMessages(resp, req)
30-
if !reflect.DeepEqual(actualMessages, expectedMessages) {
31+
if !cmp.Equal(actualMessages, expectedMessages) {
3132
t.Errorf("got messages %+v, want %+v", actualMessages, expectedMessages)
3233
}
3334
}

gosrc/gosrc_test.go

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -7,14 +7,16 @@
77
package gosrc
88

99
import (
10+
"context"
1011
"fmt"
1112
"io/ioutil"
1213
"net/http"
1314
"path"
14-
"reflect"
1515
"regexp"
1616
"strings"
1717
"testing"
18+
19+
"github.com/google/go-cmp/cmp"
1820
)
1921

2022
var testWeb = map[string]string{
@@ -220,7 +222,7 @@ func (t testTransport) RoundTrip(req *http.Request) (*http.Response, error) {
220222

221223
var githubPattern = regexp.MustCompile(`^github\.com/(?P<owner>[a-z0-9A-Z_.\-]+)/(?P<repo>[a-z0-9A-Z_.\-]+)(?P<dir>/[a-z0-9A-Z_.\-/]*)?$`)
222224

223-
func testGet(client *http.Client, match map[string]string, etag string) (*Directory, error) {
225+
func testGet(ctx context.Context, client *http.Client, match map[string]string, etag string) (*Directory, error) {
224226
importPath := match["importPath"]
225227

226228
if m := githubPattern.FindStringSubmatch(importPath); m != nil {
@@ -268,7 +270,7 @@ func TestGetDynamic(t *testing.T) {
268270
client := &http.Client{Transport: testTransport(testWeb)}
269271

270272
for _, tt := range getDynamicTests {
271-
dir, err := getDynamic(client, tt.importPath, "")
273+
dir, err := getDynamic(context.Background(), client, tt.importPath, "")
272274

273275
if tt.dir == nil {
274276
if err == nil {
@@ -282,7 +284,7 @@ func TestGetDynamic(t *testing.T) {
282284
continue
283285
}
284286

285-
if !reflect.DeepEqual(dir, tt.dir) {
287+
if !cmp.Equal(dir, tt.dir) {
286288
t.Errorf("getDynamic(client, %q, etag) =\n %+v,\nwant %+v", tt.importPath, dir, tt.dir)
287289
for i, f := range dir.Files {
288290
var want *File

httputil/header/header_test.go

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -8,9 +8,10 @@ package header
88

99
import (
1010
"net/http"
11-
"reflect"
1211
"testing"
1312
"time"
13+
14+
"github.com/google/go-cmp/cmp"
1415
)
1516

1617
var getHeaderListTests = []struct {
@@ -31,7 +32,7 @@ var getHeaderListTests = []struct {
3132
func TestGetHeaderList(t *testing.T) {
3233
for _, tt := range getHeaderListTests {
3334
header := http.Header{"Foo": {tt.s}}
34-
if l := ParseList(header, "foo"); !reflect.DeepEqual(tt.l, l) {
35+
if l := ParseList(header, "foo"); !cmp.Equal(tt.l, l) {
3536
t.Errorf("ParseList for %q = %q, want %q", tt.s, l, tt.l)
3637
}
3738
}
@@ -68,7 +69,7 @@ func TestParseValueAndParams(t *testing.T) {
6869
if value != tt.value {
6970
t.Errorf("%q, value=%q, want %q", tt.s, value, tt.value)
7071
}
71-
if !reflect.DeepEqual(params, tt.params) {
72+
if !cmp.Equal(params, tt.params) {
7273
t.Errorf("%q, param=%#v, want %#v", tt.s, params, tt.params)
7374
}
7475
}
@@ -131,7 +132,7 @@ func TestParseAccept(t *testing.T) {
131132
for _, tt := range parseAcceptTests {
132133
header := http.Header{"Accept": {tt.s}}
133134
actual := ParseAccept(header, "Accept")
134-
if !reflect.DeepEqual(actual, tt.expected) {
135+
if !cmp.Equal(actual, tt.expected) {
135136
t.Errorf("ParseAccept(h, %q)=%v, want %v", tt.s, actual, tt.expected)
136137
}
137138
}

httputil/static_test.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,12 +14,12 @@ import (
1414
"net/http/httptest"
1515
"net/url"
1616
"os"
17-
"reflect"
1817
"strconv"
1918
"testing"
2019
"time"
2120

2221
"github.com/golang/gddo/httputil"
22+
"github.com/google/go-cmp/cmp"
2323
)
2424

2525
var (
@@ -151,7 +151,7 @@ func testStaticServer(t *testing.T, f func(*httputil.StaticServer) http.Handler)
151151
t.Errorf("%s, status=%d, want %d", tt.name, w.Code, tt.status)
152152
}
153153

154-
if !reflect.DeepEqual(w.HeaderMap, tt.header) {
154+
if !cmp.Equal(w.HeaderMap, tt.header) {
155155
t.Errorf("%s\n\theader=%v,\n\twant %v", tt.name, w.HeaderMap, tt.header)
156156
}
157157

0 commit comments

Comments
 (0)