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

Unified Diff: vpython/spec/spec_test.go

Issue 2971403002: [vpython] Enable base wheels, spec merging. (Closed)
Patch Set: fix comment Created 3 years, 5 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 1bdae2400f4bac31f693859c75fe28eb548eb2c2..16188ba1eae4cb38e0459fc07c44ab8bc7515117 100644
--- a/vpython/spec/spec_test.go
+++ b/vpython/spec/spec_test.go
@@ -21,11 +21,9 @@ func TestNormalizeAndHash(t *testing.T) {
maybeTag := &vpython.PEP425Tag{Python: "maybePython", Abi: "maybeABI", Platform: "maybePlatform"}
pkgFoo := &vpython.Spec_Package{Name: "foo", Version: "1"}
+ pkgFooV2 := &vpython.Spec_Package{Name: "foo", Version: "2"}
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{
- {Python: maybeTag.Python},
- }}
env := vpython.Environment{
Pep425Tag: []*vpython.PEP425Tag{otherTag},
@@ -55,7 +53,10 @@ func TestNormalizeAndHash(t *testing.T) {
So(Hash(env.Spec, &rt, "extra"), ShouldEqual, "d047eb021f50534c050aaa10c70dc7b4a9b511fab00cf67a191b2b0805f24420")
})
- Convey(`With match tags`, func() {
+ Convey(`With a match entry, will match tags`, func() {
+ pkgMaybe := &vpython.Spec_Package{Name: "maybe", Version: "3", MatchTag: []*vpython.PEP425Tag{
+ {Python: maybeTag.Python},
+ }}
env.Spec.Wheel = []*vpython.Spec_Package{pkgFoo, pkgMaybe}
Convey(`Will omit the package if it doesn't match a tag`, func() {
@@ -77,15 +78,56 @@ func TestNormalizeAndHash(t *testing.T) {
})
})
- Convey(`Will fail to normalize if there are duplicate wheels.`, func() {
+ Convey(`With multiple match entries, will match tags`, func() {
+ pkgMaybe := &vpython.Spec_Package{Name: "maybe", Version: "3", MatchTag: []*vpython.PEP425Tag{
+ {Python: maybeTag.Python},
+ }}
+ pkgMaybeNonexistTag := &vpython.Spec_Package{Name: "maybe", Version: "3", MatchTag: []*vpython.PEP425Tag{
+ {Python: "nonexist"},
+ }}
+ env.Spec.Wheel = []*vpython.Spec_Package{pkgMaybe, pkgFoo, pkgMaybeNonexistTag}
+ 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(`With one absolute and one match, will always match`, func() {
+ pkgAlways := &vpython.Spec_Package{Name: "maybe", Version: "3"}
+ pkgMaybeNonexistTag := &vpython.Spec_Package{Name: "maybe", Version: "3", MatchTag: []*vpython.PEP425Tag{
+ {Python: "nonexist"},
+ }}
+ env.Spec.Wheel = []*vpython.Spec_Package{pkgFoo, pkgMaybeNonexistTag}
+ env.Pep425Tag = append(env.Pep425Tag, maybeTag)
+
+ So(NormalizeEnvironment(&env), ShouldBeNil)
+ So(env.Spec, ShouldResemble, &vpython.Spec{
+ Wheel: []*vpython.Spec_Package{pkgFoo},
+ })
+
+ env.Spec.Wheel = []*vpython.Spec_Package{pkgAlways, pkgFoo, pkgMaybeNonexistTag}
+
+ So(NormalizeEnvironment(&env), ShouldBeNil)
+ So(env.Spec, ShouldResemble, &vpython.Spec{
+ Wheel: []*vpython.Spec_Package{pkgFoo, pkgAlways},
+ })
+ })
+
+ Convey(`Will normalize if there are duplicate wheels that share a version.`, func() {
env.Spec.Wheel = []*vpython.Spec_Package{pkgFoo, pkgFoo, pkgBar, pkgBaz}
- So(NormalizeEnvironment(&env), ShouldErrLike, "duplicate spec entries")
+ So(NormalizeEnvironment(&env), ShouldBeNil)
+ So(env.Spec, ShouldResemble, &vpython.Spec{
+ Wheel: []*vpython.Spec_Package{pkgBar, pkgBaz, pkgFoo},
+ })
+ })
- // Even if the versions differ.
- fooClone := *pkgFoo
- fooClone.Version = "other"
- env.Spec.Wheel = []*vpython.Spec_Package{pkgFoo, &fooClone, pkgBar, pkgBaz}
- So(NormalizeEnvironment(&env), ShouldErrLike, "duplicate spec entries")
+ Convey(`Will fail to normalize if there are duplicate wheels with different versions.`, func() {
+ env.Spec.Wheel = []*vpython.Spec_Package{pkgFoo, pkgFooV2, pkgFoo, pkgBar, pkgBaz}
+ So(NormalizeEnvironment(&env), ShouldErrLike, "multiple versions for package")
})
})
})
« 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