Allow uppercase package name in package query expressions

Fixes: #636

Before this fix, aptly was always treating strings starting with
uppercase letter as field name, which was breaking package queries
like `VMware-Horizon-Client_4.5.0_all`.

Now aptly accepts only fields which don't contain underscore, and
everything else would be parsed as package reference.
This commit is contained in:
Andrey Smirnov
2017-09-18 21:36:06 +03:00
parent 985f1a17b5
commit 50035d5bc4
2 changed files with 13 additions and 1 deletions
+12
View File
@@ -57,6 +57,18 @@ func (s *SyntaxSuite) TestParsing(c *C) {
c.Assert(err, IsNil)
c.Check(q, DeepEquals, &deb.PkgQuery{Pkg: "alien-data", Version: "1.3.4~dev", Arch: "i386"})
l, _ = lex("query", "Alien-data_1.3.4~dev_i386")
q, err = parse(l)
c.Assert(err, IsNil)
c.Check(q, DeepEquals, &deb.PkgQuery{Pkg: "Alien-data", Version: "1.3.4~dev", Arch: "i386"})
l, _ = lex("query", "Name")
q, err = parse(l)
c.Assert(err, IsNil)
c.Check(q, DeepEquals, &deb.FieldQuery{Field: "Name"})
l, _ = lex("query", "package (> 5.3.7) {amd64}")
q, err = parse(l)