diff options
author | Jon Bratseth <bratseth@gmail.com> | 2021-08-16 18:24:19 +0200 |
---|---|---|
committer | Jon Bratseth <bratseth@gmail.com> | 2021-08-16 18:24:19 +0200 |
commit | 149955312028a03bf8a8a54a03c3ee011e2b1821 (patch) | |
tree | 7f2ce0a4a9b36ad7abe2b9454ec96f421ec6585e | |
parent | c09e3a9ee450c4a7ea51e8e8ae2113014bc424bf (diff) |
Accept more argument forms
-rw-r--r-- | client/go/src/github.com/vespa-engine/vespa/cmd/query.go | 10 | ||||
-rw-r--r-- | client/go/src/github.com/vespa-engine/vespa/cmd/query_test.go | 34 |
2 files changed, 41 insertions, 3 deletions
diff --git a/client/go/src/github.com/vespa-engine/vespa/cmd/query.go b/client/go/src/github.com/vespa-engine/vespa/cmd/query.go index 010941d88dd..57a93f09409 100644 --- a/client/go/src/github.com/vespa-engine/vespa/cmd/query.go +++ b/client/go/src/github.com/vespa-engine/vespa/cmd/query.go @@ -8,6 +8,7 @@ import ( "errors" "github.com/spf13/cobra" "github.com/vespa-engine/vespa/utils" + "strings" ) func init() { @@ -30,8 +31,13 @@ var queryCmd = &cobra.Command{ } func query(argument string) { - // TODO: Add ? if missing as prefix - // TODO: Add query= prefix if no "query=" in the argument string + if ! strings.Contains(argument, "query=") { + argument = "?query=" + argument + } + if ! strings.HasPrefix(argument, "?") { + argument = "?" + argument + } + path := "/search/" + argument response := utils.HttpGet(GetTarget(queryContext).query, path, "Container") if (response == nil) { diff --git a/client/go/src/github.com/vespa-engine/vespa/cmd/query_test.go b/client/go/src/github.com/vespa-engine/vespa/cmd/query_test.go index 91015594cd1..07958103f4e 100644 --- a/client/go/src/github.com/vespa-engine/vespa/cmd/query_test.go +++ b/client/go/src/github.com/vespa-engine/vespa/cmd/query_test.go @@ -12,7 +12,7 @@ import ( func TestSimpleQuery(t *testing.T) { reset() - query := "select * from foo where ..." + query := "select from * where title contains foo" assert.Equal(t, "", executeCommand(t, []string{"query", "?query=" + query},[]string{}), @@ -20,3 +20,35 @@ func TestSimpleQuery(t *testing.T) { assert.Equal(t, GetTarget(queryContext).query + "/search/?query=" + query, lastRequest.URL.String()) } +func TestQueryWithParameters(t *testing.T) { + reset() + + query := "select from * where title contains foo" + assert.Equal(t, + "", + executeCommand(t, []string{"query", "?hits=4&query=" + query},[]string{}), + "simple query") + assert.Equal(t, GetTarget(queryContext).query + "/search/?hits=4&query=" + query, lastRequest.URL.String()) +} + +func TestSimpleQueryMissingQuestionMark(t *testing.T) { + reset() + + query := "select from * where title contains foo" + assert.Equal(t, + "", + executeCommand(t, []string{"query", "query=" + query},[]string{}), + "simple query") + assert.Equal(t, GetTarget(queryContext).query + "/search/?query=" + query, lastRequest.URL.String()) +} + +func TestSimpleQueryMissingQuestionMarkAndQueryEquals(t *testing.T) { + reset() + + query := "select from * where title contains foo" + assert.Equal(t, + "", + executeCommand(t, []string{"query", query},[]string{}), + "simple query") + assert.Equal(t, GetTarget(queryContext).query + "/search/?query=" + query, lastRequest.URL.String()) +} |