Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(226)

Side by Side Diff: vpython/spec/spec_test.go

Issue 2927573002: [vpython] Fix PEP425 naming. (Closed)
Patch Set: rebase and update Created 3 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « vpython/spec/spec.go ('k') | vpython/venv/venv.go » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2017 The LUCI Authors. All rights reserved. 1 // Copyright 2017 The LUCI Authors. All rights reserved.
2 // Use of this source code is governed under the Apache License, Version 2.0 2 // Use of this source code is governed under the Apache License, Version 2.0
3 // that can be found in the LICENSE file. 3 // that can be found in the LICENSE file.
4 4
5 package spec 5 package spec
6 6
7 import ( 7 import (
8 "testing" 8 "testing"
9 9
10 "github.com/luci/luci-go/vpython/api/vpython" 10 "github.com/luci/luci-go/vpython/api/vpython"
11 11
12 . "github.com/luci/luci-go/common/testing/assertions" 12 . "github.com/luci/luci-go/common/testing/assertions"
13 . "github.com/smartystreets/goconvey/convey" 13 . "github.com/smartystreets/goconvey/convey"
14 ) 14 )
15 15
16 func TestNormalizeAndHash(t *testing.T) { 16 func TestNormalizeAndHash(t *testing.T) {
17 t.Parallel() 17 t.Parallel()
18 18
19 Convey(`Test manifest generation`, t, func() { 19 Convey(`Test manifest generation`, t, func() {
20 » » otherTag := &vpython.Pep425Tag{Version: "otherVersion", Abi: "ot herABI", Arch: "otherArch"} 20 » » otherTag := &vpython.PEP425Tag{Python: "otherPython", Abi: "othe rABI", Platform: "otherPlatform"}
21 » » maybeTag := &vpython.Pep425Tag{Version: "maybeVersion", Abi: "ma ybeABI", Arch: "maybeArch"} 21 » » maybeTag := &vpython.PEP425Tag{Python: "maybePython", Abi: "mayb eABI", Platform: "maybePlatform"}
22 22
23 pkgFoo := &vpython.Spec_Package{Name: "foo", Version: "1"} 23 pkgFoo := &vpython.Spec_Package{Name: "foo", Version: "1"}
24 pkgBar := &vpython.Spec_Package{Name: "bar", Version: "2"} 24 pkgBar := &vpython.Spec_Package{Name: "bar", Version: "2"}
25 pkgBaz := &vpython.Spec_Package{Name: "baz", Version: "3"} 25 pkgBaz := &vpython.Spec_Package{Name: "baz", Version: "3"}
26 » » pkgMaybe := &vpython.Spec_Package{Name: "maybe", Version: "3", M atchTag: []*vpython.Pep425Tag{ 26 » » pkgMaybe := &vpython.Spec_Package{Name: "maybe", Version: "3", M atchTag: []*vpython.PEP425Tag{
27 » » » {Version: maybeTag.Version}, 27 » » » {Python: maybeTag.Python},
28 }} 28 }}
29 29
30 env := vpython.Environment{ 30 env := vpython.Environment{
31 » » » Pep425Tag: []*vpython.Pep425Tag{otherTag}, 31 » » » Pep425Tag: []*vpython.PEP425Tag{otherTag},
32 } 32 }
33 var rt vpython.Runtime 33 var rt vpython.Runtime
34 34
35 Convey(`Will normalize an empty spec`, func() { 35 Convey(`Will normalize an empty spec`, func() {
36 So(NormalizeEnvironment(&env), ShouldBeNil) 36 So(NormalizeEnvironment(&env), ShouldBeNil)
37 So(env, ShouldResemble, vpython.Environment{ 37 So(env, ShouldResemble, vpython.Environment{
38 Spec: &vpython.Spec{}, 38 Spec: &vpython.Spec{},
39 Runtime: &vpython.Runtime{}, 39 Runtime: &vpython.Runtime{},
40 » » » » Pep425Tag: []*vpython.Pep425Tag{otherTag}, 40 » » » » Pep425Tag: []*vpython.PEP425Tag{otherTag},
41 }) 41 })
42 }) 42 })
43 43
44 Convey(`With a non-nil spec`, func() { 44 Convey(`With a non-nil spec`, func() {
45 env.Spec = &vpython.Spec{} 45 env.Spec = &vpython.Spec{}
46 46
47 Convey(`Will normalize to sorted order.`, func() { 47 Convey(`Will normalize to sorted order.`, func() {
48 env.Spec.Wheel = []*vpython.Spec_Package{pkgFoo, pkgBar, pkgBaz} 48 env.Spec.Wheel = []*vpython.Spec_Package{pkgFoo, pkgBar, pkgBaz}
49 So(NormalizeEnvironment(&env), ShouldBeNil) 49 So(NormalizeEnvironment(&env), ShouldBeNil)
50 So(env.Spec, ShouldResemble, &vpython.Spec{ 50 So(env.Spec, ShouldResemble, &vpython.Spec{
51 Wheel: []*vpython.Spec_Package{pkgBar, p kgBaz, pkgFoo}, 51 Wheel: []*vpython.Spec_Package{pkgBar, p kgBaz, pkgFoo},
52 }) 52 })
53 53
54 » » » » So(Hash(env.Spec, &rt, ""), ShouldEqual, "7e80b8 643051ce0d82bf44fb180687e988791cfd7f3da39861370f0a56fc80f8") 54 » » » » So(Hash(env.Spec, &rt, ""), ShouldEqual, "1e32c0 2610b51f8c3807203fccd3e8d01d252868d52eb4ee9df135ef6533c5ae")
55 » » » » So(Hash(env.Spec, &rt, "extra"), ShouldEqual, "1 40a02bb88b011d4aceafb9533266288fd4b441c3bdb70494419b3ef76457f34") 55 » » » » So(Hash(env.Spec, &rt, "extra"), ShouldEqual, "d 047eb021f50534c050aaa10c70dc7b4a9b511fab00cf67a191b2b0805f24420")
56 }) 56 })
57 57
58 Convey(`With match tags`, func() { 58 Convey(`With match tags`, func() {
59 env.Spec.Wheel = []*vpython.Spec_Package{pkgFoo, pkgMaybe} 59 env.Spec.Wheel = []*vpython.Spec_Package{pkgFoo, pkgMaybe}
60 60
61 Convey(`Will omit the package if it doesn't matc h a tag`, func() { 61 Convey(`Will omit the package if it doesn't matc h a tag`, func() {
62 So(NormalizeEnvironment(&env), ShouldBeN il) 62 So(NormalizeEnvironment(&env), ShouldBeN il)
63 So(env.Spec, ShouldResemble, &vpython.Sp ec{ 63 So(env.Spec, ShouldResemble, &vpython.Sp ec{
64 Wheel: []*vpython.Spec_Package{p kgFoo}, 64 Wheel: []*vpython.Spec_Package{p kgFoo},
65 }) 65 })
(...skipping 17 matching lines...) Expand all
83 83
84 // Even if the versions differ. 84 // Even if the versions differ.
85 fooClone := *pkgFoo 85 fooClone := *pkgFoo
86 fooClone.Version = "other" 86 fooClone.Version = "other"
87 env.Spec.Wheel = []*vpython.Spec_Package{pkgFoo, &fooClone, pkgBar, pkgBaz} 87 env.Spec.Wheel = []*vpython.Spec_Package{pkgFoo, &fooClone, pkgBar, pkgBaz}
88 So(NormalizeEnvironment(&env), ShouldErrLike, "d uplicate spec entries") 88 So(NormalizeEnvironment(&env), ShouldErrLike, "d uplicate spec entries")
89 }) 89 })
90 }) 90 })
91 }) 91 })
92 } 92 }
OLDNEW
« no previous file with comments | « vpython/spec/spec.go ('k') | vpython/venv/venv.go » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698