func (s *S) TestExportEnvironmentsBackward(c *gocheck.C) { envNames := []string{ "TSURU_S3_ACCESS_KEY_ID", "TSURU_S3_SECRET_KEY", "TSURU_APPNAME", "TSURU_HOST", "TSURU_S3_ENDPOINT", "TSURU_S3_LOCATIONCONSTRAINT", "TSURU_S3_BUCKET", "TSURU_APP_TOKEN", } app := App{Name: "moon", Platform: "opeth", Env: make(map[string]bind.EnvVar)} for _, name := range envNames { envVar := bind.EnvVar{Name: name, Value: name, Public: false} if strings.HasPrefix(name, "TSURU_S3_") { envVar.InstanceName = s3InstanceName } app.Env[name] = envVar } token, err := auth.CreateApplicationToken(app.Name) c.Assert(err, gocheck.IsNil) app.Env["TSURU_APP_TOKEN"] = bind.EnvVar{Name: "TSURU_APP_NAME", Value: token.Token} err = s.conn.Apps().Insert(app) c.Assert(err, gocheck.IsNil) defer s.conn.Apps().Remove(bson.M{"name": app.Name}) ctx := action.BWContext{Params: []interface{}{&app}} exportEnvironmentsAction.Backward(ctx) copy, err := GetByName(app.Name) c.Assert(err, gocheck.IsNil) for _, name := range envNames { if _, ok := copy.Env[name]; ok { c.Errorf("Variable %q should be unexported, but it's still exported.", name) } } _, err = auth.GetToken("bearer " + token.Token) c.Assert(err, gocheck.Equals, auth.ErrInvalidToken) }
func (s *S) TestExportEnvironmentsBackward(c *gocheck.C) { envNames := []string{ "TSURU_S3_ACCESS_KEY_ID", "TSURU_S3_SECRET_KEY", "TSURU_APPNAME", "TSURU_HOST", "TSURU_S3_ENDPOINT", "TSURU_S3_LOCATIONCONSTRAINT", "TSURU_S3_BUCKET", } app := App{Name: "moon", Framework: "opeth", Env: make(map[string]bind.EnvVar)} for _, name := range envNames { envVar := bind.EnvVar{Name: name, Value: name, Public: false} if strings.HasPrefix(name, "TSURU_S3_") { envVar.InstanceName = s3InstanceName } app.Env[name] = envVar } err := s.conn.Apps().Insert(app) c.Assert(err, gocheck.IsNil) defer s.conn.Apps().Remove(bson.M{"name": app.Name}) ctx := action.BWContext{Params: []interface{}{&app}} exportEnvironmentsAction.Backward(ctx) copy := app err = copy.Get() c.Assert(err, gocheck.IsNil) for _, name := range envNames { if _, ok := copy.Env[name]; ok { c.Errorf("Variable %q should be unexported, but it's still exported.", name) } } }