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

Unified Diff: vpython/spec/spec_test.go

Issue 2921133002: [vpython] Add conditional packages based on PEP425 (Closed)
Patch Set: rebase 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « vpython/spec/spec.go ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: vpython/spec/spec_test.go
diff --git a/vpython/spec/spec_test.go b/vpython/spec/spec_test.go
index abc17c29f85af1fac6ead54ac2469b228d1f2e66..e7fe295e0203212255e1164816630cd4434165ce 100644
--- a/vpython/spec/spec_test.go
+++ b/vpython/spec/spec_test.go
@@ -16,19 +16,28 @@ import (
func TestNormalizeAndHash(t *testing.T) {
t.Parallel()
- pkgFoo := &vpython.Spec_Package{Name: "foo", Version: "1"}
- pkgBar := &vpython.Spec_Package{Name: "bar", Version: "2"}
- pkgBaz := &vpython.Spec_Package{Name: "baz", Version: "3"}
-
Convey(`Test manifest generation`, t, func() {
- var env vpython.Environment
+ otherTag := &vpython.Pep425Tag{Version: "otherVersion", Abi: "otherABI", Arch: "otherArch"}
+ maybeTag := &vpython.Pep425Tag{Version: "maybeVersion", Abi: "maybeABI", Arch: "maybeArch"}
+
+ pkgFoo := &vpython.Spec_Package{Name: "foo", Version: "1"}
+ pkgBar := &vpython.Spec_Package{Name: "bar", Version: "2"}
+ pkgBaz := &vpython.Spec_Package{Name: "baz", Version: "3"}
+ pkgMaybe := &vpython.Spec_Package{Name: "maybe", Version: "3", MatchTag: []*vpython.Pep425Tag{
+ {Version: maybeTag.Version},
+ }}
+
+ env := vpython.Environment{
+ Pep425Tag: []*vpython.Pep425Tag{otherTag},
+ }
var rt vpython.Runtime
Convey(`Will normalize an empty spec`, func() {
So(NormalizeEnvironment(&env), ShouldBeNil)
So(env, ShouldResemble, vpython.Environment{
- Spec: &vpython.Spec{},
- Runtime: &vpython.Runtime{},
+ Spec: &vpython.Spec{},
+ Runtime: &vpython.Runtime{},
+ Pep425Tag: []*vpython.Pep425Tag{otherTag},
})
})
@@ -46,6 +55,28 @@ func TestNormalizeAndHash(t *testing.T) {
So(Hash(env.Spec, &rt, "extra"), ShouldEqual, "140a02bb88b011d4aceafb9533266288fd4b441c3bdb70494419b3ef76457f34")
})
+ Convey(`With match tags`, func() {
+ env.Spec.Wheel = []*vpython.Spec_Package{pkgFoo, pkgMaybe}
+
+ Convey(`Will omit the package if it doesn't match a tag`, func() {
+ So(NormalizeEnvironment(&env), ShouldBeNil)
+ So(env.Spec, ShouldResemble, &vpython.Spec{
+ Wheel: []*vpython.Spec_Package{pkgFoo},
+ })
+ })
+
+ Convey(`Will include the package if it matches a tag, and strip the match field.`, func() {
+ env.Pep425Tag = append(env.Pep425Tag, maybeTag)
+
+ So(NormalizeEnvironment(&env), ShouldBeNil)
+
+ pkgMaybe.MatchTag = nil
+ So(env.Spec, ShouldResemble, &vpython.Spec{
+ Wheel: []*vpython.Spec_Package{pkgFoo, pkgMaybe},
+ })
+ })
+ })
+
Convey(`Will fail to normalize if there are duplicate wheels.`, func() {
env.Spec.Wheel = []*vpython.Spec_Package{pkgFoo, pkgFoo, pkgBar, pkgBaz}
So(NormalizeEnvironment(&env), ShouldErrLike, "duplicate spec entries")
« no previous file with comments | « vpython/spec/spec.go ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698