github.com/niedbalski/juju@v0.0.0-20190215020005-8ff100488e47/worker/meterstatus/context_test.go (about) 1 // Copyright 2015 Canonical Ltd. 2 // Licensed under the AGPLv3, see LICENCE file for details. 3 4 package meterstatus_test 5 6 import ( 7 "runtime" 8 9 jc "github.com/juju/testing/checkers" 10 "github.com/juju/utils/keyvalues" 11 gc "gopkg.in/check.v1" 12 13 "github.com/juju/juju/worker/meterstatus" 14 ) 15 16 type ContextSuite struct{} 17 18 var _ = gc.Suite(&ContextSuite{}) 19 20 type dummyPaths struct{} 21 22 func (*dummyPaths) GetToolsDir() string { return "/dummy/tools" } 23 func (*dummyPaths) GetCharmDir() string { return "/dummy/charm" } 24 func (*dummyPaths) GetJujucSocket() string { return "/dummy/jujuc.sock" } 25 func (*dummyPaths) GetMetricsSpoolDir() string { return "/dummy/spool" } 26 func (*dummyPaths) ComponentDir(name string) string { return "/dummy/" + name } 27 28 func (s *ContextSuite) TestHookContextEnv(c *gc.C) { 29 ctx := meterstatus.NewLimitedContext("u/0") 30 paths := &dummyPaths{} 31 vars, err := ctx.HookVars(paths) 32 c.Assert(err, jc.ErrorIsNil) 33 varMap, err := keyvalues.Parse(vars, true) 34 c.Assert(err, jc.ErrorIsNil) 35 c.Assert(varMap["JUJU_AGENT_SOCKET"], gc.Equals, "/dummy/jujuc.sock") 36 c.Assert(varMap["JUJU_UNIT_NAME"], gc.Equals, "u/0") 37 c.Assert(varMap["JUJU_CHARM_DIR"], gc.Equals, "/dummy/charm") 38 c.Assert(varMap["CHARM_DIR"], gc.Equals, "/dummy/charm") 39 key := "PATH" 40 if runtime.GOOS == "windows" { 41 key = "Path" 42 } 43 c.Assert(varMap[key], gc.Not(gc.Equals), "") 44 } 45 46 func (s *ContextSuite) TestHookContextSetEnv(c *gc.C) { 47 ctx := meterstatus.NewLimitedContext("u/0") 48 setVars := map[string]string{ 49 "somekey": "somevalue", 50 "anotherkey": "anothervalue", 51 } 52 ctx.SetEnvVars(setVars) 53 paths := &dummyPaths{} 54 vars, err := ctx.HookVars(paths) 55 c.Assert(err, jc.ErrorIsNil) 56 varMap, err := keyvalues.Parse(vars, true) 57 c.Assert(err, jc.ErrorIsNil) 58 for key, value := range setVars { 59 c.Assert(varMap[key], gc.Equals, value) 60 } 61 c.Assert(varMap["JUJU_AGENT_SOCKET"], gc.Equals, "/dummy/jujuc.sock") 62 c.Assert(varMap["JUJU_UNIT_NAME"], gc.Equals, "u/0") 63 }