MCPcopy
hub / github.com/helm/helm / TestUpgradeInitiallyFailedReleaseWithHistoryLimit

Function TestUpgradeInitiallyFailedReleaseWithHistoryLimit

pkg/storage/storage_test.go:502–559  ·  view source on GitHub ↗

TestUpgradeInitiallyFailedReleaseWithHistoryLimit tests a case when there are no deployed release yet, but history limit has been reached: the has-no-deployed-releases error should not occur in such case.

(t *testing.T)

Source from the content-addressed store, hash-verified

500// TestUpgradeInitiallyFailedReleaseWithHistoryLimit tests a case when there are no deployed release yet, but history limit has been
501// reached: the has-no-deployed-releases error should not occur in such case.
502func TestUpgradeInitiallyFailedReleaseWithHistoryLimit(t *testing.T) {
503 storage := Init(driver.NewMemory())
504 storage.MaxHistory = 4
505
506 const name = "angry-bird"
507
508 // setup storage with test releases
509 setup := func() {
510 // release records
511 rls0 := ReleaseTestData{Name: name, Version: 1, Status: common.StatusFailed}.ToRelease()
512 rls1 := ReleaseTestData{Name: name, Version: 2, Status: common.StatusFailed}.ToRelease()
513 rls2 := ReleaseTestData{Name: name, Version: 3, Status: common.StatusFailed}.ToRelease()
514 rls3 := ReleaseTestData{Name: name, Version: 4, Status: common.StatusFailed}.ToRelease()
515
516 // create the release records in the storage
517 assertErrNil(t.Fatal, storage.Create(rls0), "Storing release 'angry-bird' (v1)")
518 assertErrNil(t.Fatal, storage.Create(rls1), "Storing release 'angry-bird' (v2)")
519 assertErrNil(t.Fatal, storage.Create(rls2), "Storing release 'angry-bird' (v3)")
520 assertErrNil(t.Fatal, storage.Create(rls3), "Storing release 'angry-bird' (v4)")
521
522 hist, err := storage.History(name)
523 if err != nil {
524 t.Fatalf("unexpected error: %s", err)
525 }
526
527 wantHistoryLen := 4
528 if len(hist) != wantHistoryLen {
529 t.Fatalf("expected history of release %q to contain %d releases, got %d", name, wantHistoryLen, len(hist))
530 }
531 }
532
533 setup()
534
535 rls5 := ReleaseTestData{Name: name, Version: 5, Status: common.StatusFailed}.ToRelease()
536 err := storage.Create(rls5)
537 if err != nil {
538 t.Fatalf("Failed to create a new release version: %s", err)
539 }
540
541 hist, err := storage.History(name)
542 if err != nil {
543 t.Fatalf("unexpected error: %s", err)
544 }
545
546 rhist, err := releaseListToV1List(hist)
547 assert.NoError(t, err)
548 for i, rel := range rhist {
549 wantVersion := i + 2
550 if rel.Version != wantVersion {
551 t.Fatalf("Expected history release %d version to equal %d, got %d", i+1, wantVersion, rel.Version)
552 }
553
554 wantStatus := common.StatusFailed
555 if rel.Info.Status != wantStatus {
556 t.Fatalf("Expected history release %d status to equal %q, got %q", i+1, wantStatus, rel.Info.Status)
557 }
558 }
559}

Callers

nothing calls this directly

Calls 9

NewMemoryFunction · 0.92
InitFunction · 0.85
assertErrNilFunction · 0.85
setupFunction · 0.85
ToReleaseMethod · 0.80
HistoryMethod · 0.80
FatalfMethod · 0.80
releaseListToV1ListFunction · 0.70
CreateMethod · 0.65

Tested by

no test coverage detected

Used in the wild real call sites across dependent graphs

searching dependent graphs…