Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(197)

Unified Diff: go/src/infra/gae/libs/gae/filters/featureBreaker/featurebreaker_test.go

Issue 1227203004: Convert 'Testable' interface into an optional filter. (Closed) Base URL: https://chromium.googlesource.com/infra/infra.git@add_filters
Patch Set: final rebase Created 5 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: go/src/infra/gae/libs/gae/filters/featureBreaker/featurebreaker_test.go
diff --git a/go/src/infra/gae/libs/gae/filters/featureBreaker/featurebreaker_test.go b/go/src/infra/gae/libs/gae/filters/featureBreaker/featurebreaker_test.go
new file mode 100644
index 0000000000000000000000000000000000000000..d2bb0acfcaad4d7331304979b104e52d276855f8
--- /dev/null
+++ b/go/src/infra/gae/libs/gae/filters/featureBreaker/featurebreaker_test.go
@@ -0,0 +1,60 @@
+// Copyright 2015 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+package featureBreaker
+
+import (
+ "errors"
+ "golang.org/x/net/context"
+ "testing"
+
+ "infra/gae/libs/gae"
+ "infra/gae/libs/gae/memory"
+
+ . "github.com/smartystreets/goconvey/convey"
+)
+
+func TestBrokenFeatures(t *testing.T) {
+ t.Parallel()
+
+ e := errors.New("default err")
+
+ Convey("BrokenFeatures", t, func() {
+ c := memory.Use(context.Background())
+
+ Convey("Can break rds", func() {
+ Convey("without a default", func() {
+ c, bf := FilterRDS(c, nil)
+ rds := gae.GetRDS(c)
+
+ Convey("by specifying an error", func() {
+ bf.BreakFeatures(e, "Get", "Put")
+ So(rds.Get(nil, nil), ShouldEqual, e)
+
+ Convey("and you can unbreak them as well", func() {
+ bf.UnbreakFeatures("Get")
+ So(rds.Get(nil, nil), ShouldEqual, gae.ErrDSInvalidKey)
+
+ Convey("no broken features at all is a shortcut", func() {
+ bf.UnbreakFeatures("Put")
+ So(rds.Get(nil, nil), ShouldEqual, gae.ErrDSInvalidKey)
+ })
+ })
+ })
+
+ Convey("Not specifying an error gets you a generic error", func() {
+ bf.BreakFeatures(nil, "Get")
+ So(rds.Get(nil, nil).Error(), ShouldEqual, `feature "Get" is broken`)
+ })
+ })
+
+ Convey("with a default", func() {
+ c, bf := FilterRDS(c, e)
+ rds := gae.GetRDS(c)
+ bf.BreakFeatures(nil, "Get")
+ So(rds.Get(nil, nil), ShouldEqual, e)
+ })
+ })
+ })
+}

Powered by Google App Engine
This is Rietveld 408576698