Skip to content
This repository was archived by the owner on Sep 9, 2020. It is now read-only.

Commit 82f1514

Browse files
carolynvssdboyer
authored andcommitted
Use golden test files for the ensure tests
Replace use of logrus with a dependency that doesn't have transient dependencies so that we don't need to lookup the latest commit, and instead can hard-code the hash in the golden file.
1 parent d2745f5 commit 82f1514

11 files changed

+200
-190
lines changed

cmd/dep/ensure_test.go

+71-190
Original file line numberDiff line numberDiff line change
@@ -21,73 +21,36 @@ func TestEnsureOverrides(t *testing.T) {
2121
h.TempDir("src")
2222
h.Setenv("GOPATH", h.Path("."))
2323

24-
m := `package main
25-
26-
import (
27-
"github.com/Sirupsen/logrus"
28-
sthing "github.com/sdboyer/dep-test"
29-
)
30-
31-
type Baz sthing.Foo
32-
33-
func main() {
34-
logrus.Info("hello world")
35-
}`
36-
37-
h.TempFile("src/thing/thing.go", m)
24+
h.TempCopy("src/thing/thing.go", "ensure/overrides_main.go")
3825
h.Cd(h.Path("src/thing"))
3926

4027
h.Run("init")
41-
h.Run("ensure", "-override", "github.com/Sirupsen/[email protected]")
42-
43-
expectedManifest := `{
44-
"overrides": {
45-
"github.com/Sirupsen/logrus": {
46-
"version": "0.11.0"
47-
}
48-
}
49-
}
50-
`
51-
52-
manifest := h.ReadManifest()
53-
if manifest != expectedManifest {
54-
t.Fatalf("expected %s, got %s", expectedManifest, manifest)
28+
h.Run("ensure", "-override", "github.com/carolynvs/[email protected]")
29+
30+
goldenManifest := "ensure/overrides_manifest.golden.json"
31+
wantManifest := h.GetTestFileString(goldenManifest)
32+
gotManifest := h.ReadManifest()
33+
if gotManifest != wantManifest {
34+
if *test.UpdateGolden {
35+
if err := h.WriteTestFile(goldenManifest, string(gotManifest)); err != nil {
36+
t.Fatal(err)
37+
}
38+
} else {
39+
t.Fatalf("expected %s, got %s", wantManifest, gotManifest)
40+
}
5541
}
5642

57-
sysCommit := h.GetCommit("go.googlesource.com/sys")
58-
expectedLock := `{
59-
"memo": "57d20ba0289c2df60025bf6127220a5403483251bd5e523a7f9ea17752bd5482",
60-
"projects": [
61-
{
62-
"name": "github.com/Sirupsen/logrus",
63-
"version": "v0.11.0",
64-
"revision": "d26492970760ca5d33129d2d799e34be5c4782eb",
65-
"packages": [
66-
"."
67-
]
68-
},
69-
{
70-
"name": "github.com/sdboyer/dep-test",
71-
"version": "1.0.0",
72-
"revision": "2a3a211e171803acb82d1d5d42ceb53228f51751",
73-
"packages": [
74-
"."
75-
]
76-
},
77-
{
78-
"name": "golang.org/x/sys",
79-
"branch": "master",
80-
"revision": "` + sysCommit + `",
81-
"packages": [
82-
"unix"
83-
]
84-
}
85-
]
86-
}
87-
`
88-
lock := h.ReadLock()
89-
if lock != expectedLock {
90-
t.Fatalf("expected %s, got %s", expectedLock, lock)
43+
goldenLock := "ensure/overrides_lock.golden.json"
44+
wantLock := h.GetTestFileString(goldenLock)
45+
gotLock := h.ReadLock()
46+
if gotLock != wantLock {
47+
if *test.UpdateGolden {
48+
if err := h.WriteTestFile(goldenLock, string(gotLock)); err != nil {
49+
t.Fatal(err)
50+
}
51+
} else {
52+
t.Fatalf("expected %s, got %s", wantLock, gotLock)
53+
}
9154
}
9255
}
9356

@@ -100,18 +63,7 @@ func TestEnsureEmptyRepoNoArgs(t *testing.T) {
10063

10164
h.TempDir("src")
10265
h.Setenv("GOPATH", h.Path("."))
103-
104-
m := `package main
105-
106-
import (
107-
_ "github.com/jimmysmith95/fixed-version"
108-
_ "golang.org/x/sys/unix"
109-
)
110-
111-
func main() {
112-
}`
113-
114-
h.TempFile("src/thing/thing.go", m)
66+
h.TempCopy("src/thing/thing.go", "ensure/bare_main.go")
11567
h.Cd(h.Path("src/thing"))
11668

11769
h.Run("init")
@@ -120,43 +72,30 @@ func main() {
12072
// make sure vendor exists
12173
h.MustExist(h.Path("src/thing/vendor/github.com/jimmysmith95/fixed-version"))
12274

123-
expectedManifest := `{}
124-
`
125-
126-
manifest := h.ReadManifest()
127-
if manifest != expectedManifest {
128-
t.Fatalf("expected %s, got %s", expectedManifest, manifest)
75+
goldenManifest := "ensure/bare_manifest.golden.json"
76+
wantManifest := h.GetTestFileString(goldenManifest)
77+
gotManifest := h.ReadManifest()
78+
if gotManifest != wantManifest {
79+
if *test.UpdateGolden {
80+
if err := h.WriteTestFile(goldenManifest, string(gotManifest)); err != nil {
81+
t.Fatal(err)
82+
}
83+
} else {
84+
t.Fatalf("expected %s, got %s", wantManifest, gotManifest)
85+
}
12986
}
13087

131-
sysCommit := h.GetCommit("go.googlesource.com/sys")
132-
fixedVersionCommit := h.GetCommit("github.com/jimmysmith95/fixed-version")
133-
134-
expectedLock := `{
135-
"memo": "8a7660015b2473d6d2f4bfdfd0508e6aa8178746559d0a9a90cecfbe6aa47a06",
136-
"projects": [
137-
{
138-
"name": "github.com/jimmysmith95/fixed-version",
139-
"version": "v1.0.0",
140-
"revision": "` + fixedVersionCommit + `",
141-
"packages": [
142-
"."
143-
]
144-
},
145-
{
146-
"name": "golang.org/x/sys",
147-
"branch": "master",
148-
"revision": "` + sysCommit + `",
149-
"packages": [
150-
"unix"
151-
]
152-
}
153-
]
154-
}
155-
`
156-
157-
lock := h.ReadLock()
158-
if lock != expectedLock {
159-
t.Fatalf("expected %s, got %s", expectedLock, lock)
88+
goldenLock := "ensure/bare_lock.golden.json"
89+
wantLock := h.GetTestFileString(goldenLock)
90+
gotLock := h.ReadLock()
91+
if gotLock != wantLock {
92+
if *test.UpdateGolden {
93+
if err := h.WriteTestFile(goldenLock, string(gotLock)); err != nil {
94+
t.Fatal(err)
95+
}
96+
} else {
97+
t.Fatalf("expected %s, got %s", wantLock, gotLock)
98+
}
16099
}
161100
}
162101

@@ -194,94 +133,36 @@ func TestEnsureUpdate(t *testing.T) {
194133
h := test.NewHelper(t)
195134
defer h.Cleanup()
196135

136+
// Setup up a test project
197137
h.TempDir("src")
198138
h.Setenv("GOPATH", h.Path("."))
199-
200-
m := `package main
201-
202-
import (
203-
"fmt"
204-
"github.com/pkg/errors"
205-
stuff "github.com/carolynvs/go-dep-test"
206-
)
207-
208-
func main() {
209-
fmt.Println(stuff.Thing)
210-
TryToDoSomething()
211-
}
212-
213-
func TryToDoSomething() error {
214-
return errors.New("I tried, Billy. I tried...")
215-
}
216-
`
217-
218-
h.TempFile("src/thing/thing.go", m)
219-
220-
origManifest := `{
221-
"dependencies": {
222-
"github.com/carolynvs/go-dep-test": {
223-
"version": "~0.1.0"
224-
}
225-
}
226-
}`
227-
h.TempFile("src/thing/manifest.json", origManifest)
228-
229-
origLock := `{
230-
"memo": "9a5243dd3fa20feeaa20398e7283d6c566532e2af1aae279a010df34793761c5",
231-
"projects": [
232-
{
233-
"name": "github.com/carolynvs/go-dep-test",
234-
"version": "0.1.0",
235-
"revision": "b9c5511fa463628e6251554db29a4be161d02aed",
236-
"packages": [
237-
"."
238-
]
239-
},
240-
{
241-
"name": "github.com/pkg/errors",
242-
"branch": "v0.7.0",
243-
"revision": "01fa4104b9c248c8945d14d9f128454d5b28d595",
244-
"packages": [
245-
"."
246-
]
247-
}
248-
]
249-
}
250-
`
251-
h.TempFile("src/thing/lock.json", origLock)
139+
h.TempCopy("src/thing/main.go", "ensure/update_main.go")
140+
origManifest := "ensure/update_manifest.json"
141+
h.TempCopy("src/thing/manifest.json", origManifest)
142+
origLock := "ensure/update_lock.json"
143+
h.TempCopy("src/thing/lock.json", origLock)
252144
h.Cd(h.Path("src/thing"))
253145

254146
h.Run("ensure", "-update", "github.com/carolynvs/go-dep-test")
255147

256-
manifest := h.ReadManifest()
257-
if manifest != origManifest {
258-
t.Fatalf("The manifest should not be modified during an update. Expected %s, got %s", origManifest, manifest)
148+
// Verify that the manifest wasn't modified by -update
149+
wantManifest := h.GetTestFileString(origManifest)
150+
gotManifest := h.ReadManifest()
151+
if gotManifest != wantManifest {
152+
t.Fatalf("The manifest should not be modified during an update. Expected %s, got %s", origManifest, gotManifest)
259153
}
260154

261-
expectedLock := `{
262-
"memo": "9a5243dd3fa20feeaa20398e7283d6c566532e2af1aae279a010df34793761c5",
263-
"projects": [
264-
{
265-
"name": "github.com/carolynvs/go-dep-test",
266-
"version": "0.1.1",
267-
"revision": "40691983e4002d3a3f5879cc0f1fe99bedda148c",
268-
"packages": [
269-
"."
270-
]
271-
},
272-
{
273-
"name": "github.com/pkg/errors",
274-
"branch": "v0.7.0",
275-
"revision": "01fa4104b9c248c8945d14d9f128454d5b28d595",
276-
"packages": [
277-
"."
278-
]
279-
}
280-
]
281-
}
282-
`
283-
lock := h.ReadLock()
284-
if lock != expectedLock {
285-
t.Fatalf("expected %s, got %s", expectedLock, lock)
155+
// Verify the lock matches the expected golden file
156+
goldenLock := "ensure/update_lock.golden.json"
157+
wantLock := h.GetTestFileString(goldenLock)
158+
gotLock := h.ReadLock()
159+
if gotLock != wantLock {
160+
if *test.UpdateGolden {
161+
if err := h.WriteTestFile(goldenLock, string(gotLock)); err != nil {
162+
t.Fatal(err)
163+
}
164+
} else {
165+
t.Fatalf("expected %s, got %s", wantLock, gotLock)
166+
}
286167
}
287168
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
{
2+
"memo": "671164a61abeac1133d1da7f6bb22ed18e6921dfc5f9247b378833833b5a3aca",
3+
"projects": [
4+
{
5+
"name": "github.com/jimmysmith95/fixed-version",
6+
"version": "v1.0.0",
7+
"revision": "a2d649e0636403a4693cd928f60c56ba7d9cd299",
8+
"packages": [
9+
"."
10+
]
11+
}
12+
]
13+
}

cmd/dep/testdata/ensure/bare_main.go

+12
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
// Copyright 2016 The Go Authors. All rights reserved.
2+
// Use of this source code is governed by a BSD-style
3+
// license that can be found in the LICENSE file.
4+
5+
package main
6+
7+
import (
8+
_ "github.com/jimmysmith95/fixed-version"
9+
)
10+
11+
func main() {
12+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
{}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
{
2+
"memo": "80807a008f7d8d26de122a8c6ad1f4c7286950b32e0488660afc57ccbbc037a1",
3+
"projects": [
4+
{
5+
"name": "github.com/carolynvs/go-dep-test",
6+
"version": "0.1.1",
7+
"revision": "d15fa4b9d1330a469387f2873399d28ea1c463eb",
8+
"packages": [
9+
"."
10+
]
11+
}
12+
]
13+
}
+14
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
// Copyright 2016 The Go Authors. All rights reserved.
2+
// Use of this source code is governed by a BSD-style
3+
// license that can be found in the LICENSE file.
4+
5+
package main
6+
7+
import (
8+
"fmt"
9+
stuff "github.com/carolynvs/go-dep-test"
10+
)
11+
12+
func main() {
13+
fmt.Println(stuff.Thing)
14+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
{
2+
"overrides": {
3+
"github.com/carolynvs/go-dep-test": {
4+
"version": "0.1.1"
5+
}
6+
}
7+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
{
2+
"memo": "9a5243dd3fa20feeaa20398e7283d6c566532e2af1aae279a010df34793761c5",
3+
"projects": [
4+
{
5+
"name": "github.com/carolynvs/go-dep-test",
6+
"version": "0.1.1",
7+
"revision": "40691983e4002d3a3f5879cc0f1fe99bedda148c",
8+
"packages": [
9+
"."
10+
]
11+
},
12+
{
13+
"name": "github.com/pkg/errors",
14+
"branch": "v0.7.0",
15+
"revision": "01fa4104b9c248c8945d14d9f128454d5b28d595",
16+
"packages": [
17+
"."
18+
]
19+
}
20+
]
21+
}

0 commit comments

Comments
 (0)