mirror of
https://github.com/helm/helm.git
synced 2026-04-08 18:36:28 -04:00
fix(sql storage): Query() should return ErrReleaseNotFound immediately when no records are found
Signed-off-by: Mike Ng <ming@redhat.com>
(cherry picked from commit b86105aebc)
This commit is contained in:
parent
c084ca0259
commit
f2d7ed8d80
2 changed files with 25 additions and 4 deletions
|
|
@ -310,6 +310,10 @@ func (s *SQL) Query(labels map[string]string) ([]*rspb.Release, error) {
|
|||
return nil, err
|
||||
}
|
||||
|
||||
if len(records) == 0 {
|
||||
return nil, ErrReleaseNotFound
|
||||
}
|
||||
|
||||
var releases []*rspb.Release
|
||||
for _, record := range records {
|
||||
release, err := decodeRelease(record.Body)
|
||||
|
|
@ -320,10 +324,6 @@ func (s *SQL) Query(labels map[string]string) ([]*rspb.Release, error) {
|
|||
releases = append(releases, release)
|
||||
}
|
||||
|
||||
if len(releases) == 0 {
|
||||
return nil, ErrReleaseNotFound
|
||||
}
|
||||
|
||||
return releases, nil
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -292,6 +292,11 @@ func TestSqlUpdate(t *testing.T) {
|
|||
|
||||
func TestSqlQuery(t *testing.T) {
|
||||
// Reflect actual use cases in ../storage.go
|
||||
labelSetUnknown := map[string]string{
|
||||
"name": "smug-pigeon",
|
||||
"owner": sqlReleaseDefaultOwner,
|
||||
"status": "unknown",
|
||||
}
|
||||
labelSetDeployed := map[string]string{
|
||||
"name": "smug-pigeon",
|
||||
"owner": sqlReleaseDefaultOwner,
|
||||
|
|
@ -320,6 +325,15 @@ func TestSqlQuery(t *testing.T) {
|
|||
sqlReleaseTableNamespaceColumn,
|
||||
)
|
||||
|
||||
mock.
|
||||
ExpectQuery(regexp.QuoteMeta(query)).
|
||||
WithArgs("smug-pigeon", sqlReleaseDefaultOwner, "unknown", "default").
|
||||
WillReturnRows(
|
||||
mock.NewRows([]string{
|
||||
sqlReleaseTableBodyColumn,
|
||||
}),
|
||||
).RowsWillBeClosed()
|
||||
|
||||
mock.
|
||||
ExpectQuery(regexp.QuoteMeta(query)).
|
||||
WithArgs("smug-pigeon", sqlReleaseDefaultOwner, "deployed", "default").
|
||||
|
|
@ -353,6 +367,13 @@ func TestSqlQuery(t *testing.T) {
|
|||
),
|
||||
).RowsWillBeClosed()
|
||||
|
||||
_, err := sqlDriver.Query(labelSetUnknown)
|
||||
if err == nil {
|
||||
t.Errorf("Expected error {%v}, got nil", ErrReleaseNotFound)
|
||||
} else if err != ErrReleaseNotFound {
|
||||
t.Fatalf("failed to query for unknown smug-pigeon release: %v", err)
|
||||
}
|
||||
|
||||
results, err := sqlDriver.Query(labelSetDeployed)
|
||||
if err != nil {
|
||||
t.Fatalf("failed to query for deployed smug-pigeon release: %v", err)
|
||||
|
|
|
|||
Loading…
Reference in a new issue