Export ParseDependency & friends.

This commit is contained in:
Andrey Smirnov
2014-01-11 18:57:50 +04:00
parent c903633363
commit 335298d074
2 changed files with 20 additions and 20 deletions
+5 -5
View File
@@ -213,13 +213,13 @@ func (d *Dependency) String() string {
return fmt.Sprintf("%s (%s %s) [%s]", d.Pkg, rel, d.Version, d.Architecture) return fmt.Sprintf("%s (%s %s) [%s]", d.Pkg, rel, d.Version, d.Architecture)
} }
// parseDependencyVariants parses dependencies in format "pkg (>= 1.35) | other-package" // ParseDependencyVariants parses dependencies in format "pkg (>= 1.35) | other-package"
func parseDependencyVariants(variants string) (l []Dependency, err error) { func ParseDependencyVariants(variants string) (l []Dependency, err error) {
parts := strings.Split(variants, "|") parts := strings.Split(variants, "|")
l = make([]Dependency, len(parts)) l = make([]Dependency, len(parts))
for i, part := range parts { for i, part := range parts {
l[i], err = parseDependency(strings.TrimSpace(part)) l[i], err = ParseDependency(strings.TrimSpace(part))
if err != nil { if err != nil {
return nil, err return nil, err
} }
@@ -228,8 +228,8 @@ func parseDependencyVariants(variants string) (l []Dependency, err error) {
return return
} }
// parseDependency parses dependency in format "pkg (>= 1.35)" into parts // ParseDependency parses dependency in format "pkg (>= 1.35)" into parts
func parseDependency(dep string) (d Dependency, err error) { func ParseDependency(dep string) (d Dependency, err error) {
if !strings.HasSuffix(dep, ")") { if !strings.HasSuffix(dep, ")") {
d.Pkg = strings.TrimSpace(dep) d.Pkg = strings.TrimSpace(dep)
d.Relation = VersionDontCare d.Relation = VersionDontCare
+15 -15
View File
@@ -99,70 +99,70 @@ func (s *VersionSuite) TestCompareVersions(c *C) {
} }
func (s *VersionSuite) TestParseDependency(c *C) { func (s *VersionSuite) TestParseDependency(c *C) {
d, e := parseDependency("dpkg (>= 1.6)") d, e := ParseDependency("dpkg (>= 1.6)")
c.Check(e, IsNil) c.Check(e, IsNil)
c.Check(d.Pkg, Equals, "dpkg") c.Check(d.Pkg, Equals, "dpkg")
c.Check(d.Relation, Equals, VersionGreaterOrEqual) c.Check(d.Relation, Equals, VersionGreaterOrEqual)
c.Check(d.Version, Equals, "1.6") c.Check(d.Version, Equals, "1.6")
d, e = parseDependency("dpkg(>>1.6)") d, e = ParseDependency("dpkg(>>1.6)")
c.Check(e, IsNil) c.Check(e, IsNil)
c.Check(d.Pkg, Equals, "dpkg") c.Check(d.Pkg, Equals, "dpkg")
c.Check(d.Relation, Equals, VersionGreater) c.Check(d.Relation, Equals, VersionGreater)
c.Check(d.Version, Equals, "1.6") c.Check(d.Version, Equals, "1.6")
d, e = parseDependency("dpkg (> 1.6)") d, e = ParseDependency("dpkg (> 1.6)")
c.Check(e, IsNil) c.Check(e, IsNil)
c.Check(d.Pkg, Equals, "dpkg") c.Check(d.Pkg, Equals, "dpkg")
c.Check(d.Relation, Equals, VersionGreaterOrEqual) c.Check(d.Relation, Equals, VersionGreaterOrEqual)
c.Check(d.Version, Equals, "1.6") c.Check(d.Version, Equals, "1.6")
d, e = parseDependency("dpkg (< 1.6)") d, e = ParseDependency("dpkg (< 1.6)")
c.Check(e, IsNil) c.Check(e, IsNil)
c.Check(d.Pkg, Equals, "dpkg") c.Check(d.Pkg, Equals, "dpkg")
c.Check(d.Relation, Equals, VersionLessOrEqual) c.Check(d.Relation, Equals, VersionLessOrEqual)
c.Check(d.Version, Equals, "1.6") c.Check(d.Version, Equals, "1.6")
d, e = parseDependency("dpkg (= 1.6)") d, e = ParseDependency("dpkg (= 1.6)")
c.Check(e, IsNil) c.Check(e, IsNil)
c.Check(d.Pkg, Equals, "dpkg") c.Check(d.Pkg, Equals, "dpkg")
c.Check(d.Relation, Equals, VersionEqual) c.Check(d.Relation, Equals, VersionEqual)
c.Check(d.Version, Equals, "1.6") c.Check(d.Version, Equals, "1.6")
d, e = parseDependency("dpkg (<< 1.6)") d, e = ParseDependency("dpkg (<< 1.6)")
c.Check(e, IsNil) c.Check(e, IsNil)
c.Check(d.Pkg, Equals, "dpkg") c.Check(d.Pkg, Equals, "dpkg")
c.Check(d.Relation, Equals, VersionLess) c.Check(d.Relation, Equals, VersionLess)
c.Check(d.Version, Equals, "1.6") c.Check(d.Version, Equals, "1.6")
d, e = parseDependency("dpkg(>>1.6)") d, e = ParseDependency("dpkg(>>1.6)")
c.Check(e, IsNil) c.Check(e, IsNil)
c.Check(d.Pkg, Equals, "dpkg") c.Check(d.Pkg, Equals, "dpkg")
c.Check(d.Relation, Equals, VersionGreater) c.Check(d.Relation, Equals, VersionGreater)
c.Check(d.Version, Equals, "1.6") c.Check(d.Version, Equals, "1.6")
d, e = parseDependency("dpkg ") d, e = ParseDependency("dpkg ")
c.Check(e, IsNil) c.Check(e, IsNil)
c.Check(d.Pkg, Equals, "dpkg") c.Check(d.Pkg, Equals, "dpkg")
c.Check(d.Relation, Equals, VersionDontCare) c.Check(d.Relation, Equals, VersionDontCare)
c.Check(d.Version, Equals, "") c.Check(d.Version, Equals, "")
d, e = parseDependency("dpkg(==1.6)") d, e = ParseDependency("dpkg(==1.6)")
c.Check(e, ErrorMatches, "relation unknown.*") c.Check(e, ErrorMatches, "relation unknown.*")
d, e = parseDependency("dpkg==1.6)") d, e = ParseDependency("dpkg==1.6)")
c.Check(e, ErrorMatches, "unable to parse.*") c.Check(e, ErrorMatches, "unable to parse.*")
} }
func (s *VersionSuite) TestParseDependencyVariants(c *C) { func (s *VersionSuite) TestParseDependencyVariants(c *C) {
l, e := parseDependencyVariants("dpkg (>= 1.6)") l, e := ParseDependencyVariants("dpkg (>= 1.6)")
c.Check(e, IsNil) c.Check(e, IsNil)
c.Check(l, HasLen, 1) c.Check(l, HasLen, 1)
c.Check(l[0].Pkg, Equals, "dpkg") c.Check(l[0].Pkg, Equals, "dpkg")
c.Check(l[0].Relation, Equals, VersionGreaterOrEqual) c.Check(l[0].Relation, Equals, VersionGreaterOrEqual)
c.Check(l[0].Version, Equals, "1.6") c.Check(l[0].Version, Equals, "1.6")
l, e = parseDependencyVariants("dpkg (>= 1.6) | mailer-agent") l, e = ParseDependencyVariants("dpkg (>= 1.6) | mailer-agent")
c.Check(e, IsNil) c.Check(e, IsNil)
c.Check(l, HasLen, 2) c.Check(l, HasLen, 2)
c.Check(l[0].Pkg, Equals, "dpkg") c.Check(l[0].Pkg, Equals, "dpkg")
@@ -171,16 +171,16 @@ func (s *VersionSuite) TestParseDependencyVariants(c *C) {
c.Check(l[1].Pkg, Equals, "mailer-agent") c.Check(l[1].Pkg, Equals, "mailer-agent")
c.Check(l[1].Relation, Equals, VersionDontCare) c.Check(l[1].Relation, Equals, VersionDontCare)
_, e = parseDependencyVariants("dpkg(==1.6)") _, e = ParseDependencyVariants("dpkg(==1.6)")
c.Check(e, ErrorMatches, "relation unknown.*") c.Check(e, ErrorMatches, "relation unknown.*")
} }
func (s *VersionSuite) TestDependencyString(c *C) { func (s *VersionSuite) TestDependencyString(c *C) {
d, _ := parseDependency("dpkg(>>1.6)") d, _ := ParseDependency("dpkg(>>1.6)")
d.Architecture = "i386" d.Architecture = "i386"
c.Check(d.String(), Equals, "dpkg (>> 1.6) [i386]") c.Check(d.String(), Equals, "dpkg (>> 1.6) [i386]")
d, _ = parseDependency("dpkg") d, _ = ParseDependency("dpkg")
d.Architecture = "i386" d.Architecture = "i386"
c.Check(d.String(), Equals, "dpkg [i386]") c.Check(d.String(), Equals, "dpkg [i386]")
} }