Rietveld Code Review Tool
Help | Bug tracker | Discussion group | Source code | Sign in
(462)

Delta Between Two Patch Sets: environs/openstack/config_test.go

Issue 11659043: Improve Openstack config deprecation warnings. (Closed)
Left Patch Set: Created 10 years, 8 months ago
Right Patch Set: Improve Openstack config deprecation warnings. Created 10 years, 8 months ago
Left:
Right:
Use n/p to move between diff chunks; N/P to move between comments. Please Sign in to add in-line comments.
Jump to:
Left: Side by side diff | Download
Right: Side by side diff | Download
« no previous file with change/comment | « environs/openstack/config.go ('k') | no next file » | no next file with change/comment »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
LEFTRIGHT
1 // Copyright 2012, 2013 Canonical Ltd. 1 // Copyright 2012, 2013 Canonical Ltd.
2 // Licensed under the AGPLv3, see LICENCE file for details. 2 // Licensed under the AGPLv3, see LICENCE file for details.
3 3
4 package openstack 4 package openstack
5 5
6 import ( 6 import (
7 "bytes"
8 "fmt" 7 "fmt"
9 gc "launchpad.net/gocheck"
10 "launchpad.net/goyaml"
11 "launchpad.net/juju-core/environs"
12 "launchpad.net/juju-core/environs/config"
13 "launchpad.net/loggo"
thumper 2013/07/22 04:43:02 header grouping
wallyworld 2013/07/22 05:41:12 Done.
14 "os" 8 "os"
15 "strings" 9 "strings"
16 "time" 10 "time"
11
12 gc "launchpad.net/gocheck"
13 "launchpad.net/goyaml"
14 "launchpad.net/loggo"
15
16 "launchpad.net/juju-core/environs"
17 "launchpad.net/juju-core/environs/config"
18 "launchpad.net/juju-core/testing"
17 ) 19 )
18 20
19 type ConfigSuite struct { 21 type ConfigSuite struct {
20 savedVars map[string]string 22 savedVars map[string]string
21 » oldJujuHome string 23 » oldJujuHome *testing.FakeHome
22 } 24 }
23 25
24 // Ensure any environment variables a user may have set locally are reset. 26 // Ensure any environment variables a user may have set locally are reset.
25 var envVars = map[string]string{ 27 var envVars = map[string]string{
26 "AWS_SECRET_ACCESS_KEY": "", 28 "AWS_SECRET_ACCESS_KEY": "",
27 "EC2_SECRET_KEYS": "", 29 "EC2_SECRET_KEYS": "",
28 "NOVA_API_KEY": "", 30 "NOVA_API_KEY": "",
29 "NOVA_PASSWORD": "", 31 "NOVA_PASSWORD": "",
30 "NOVA_PROJECT_ID": "", 32 "NOVA_PROJECT_ID": "",
31 "NOVA_REGION": "", 33 "NOVA_REGION": "",
(...skipping 137 matching lines...) Expand 10 before | Expand all | Expand 10 after
169 } 171 }
170 c.Assert(ecfg.useFloatingIP(), gc.Equals, t.useFloatingIP) 172 c.Assert(ecfg.useFloatingIP(), gc.Equals, t.useFloatingIP)
171 for name, expect := range t.expect { 173 for name, expect := range t.expect {
172 actual, found := ecfg.UnknownAttrs()[name] 174 actual, found := ecfg.UnknownAttrs()[name]
173 c.Check(found, gc.Equals, true) 175 c.Check(found, gc.Equals, true)
174 c.Check(actual, gc.Equals, expect) 176 c.Check(actual, gc.Equals, expect)
175 } 177 }
176 } 178 }
177 179
178 func (s *ConfigSuite) SetUpTest(c *gc.C) { 180 func (s *ConfigSuite) SetUpTest(c *gc.C) {
179 » s.oldJujuHome = config.SetJujuHome(c.MkDir()) 181 » s.oldJujuHome = testing.MakeEmptyFakeHome(c)
180 s.savedVars = make(map[string]string) 182 s.savedVars = make(map[string]string)
181 for v, val := range envVars { 183 for v, val := range envVars {
182 s.savedVars[v] = os.Getenv(v) 184 s.savedVars[v] = os.Getenv(v)
183 os.Setenv(v, val) 185 os.Setenv(v, val)
184 } 186 }
185 } 187 }
186 188
187 func (s *ConfigSuite) TearDownTest(c *gc.C) { 189 func (s *ConfigSuite) TearDownTest(c *gc.C) {
188 for k, v := range s.savedVars { 190 for k, v := range s.savedVars {
189 os.Setenv(k, v) 191 os.Setenv(k, v)
190 } 192 }
191 » config.SetJujuHome(s.oldJujuHome) 193 » s.oldJujuHome.Restore()
192 } 194 }
193 195
194 var configTests = []configTest{ 196 var configTests = []configTest{
195 { 197 {
196 summary: "setting region", 198 summary: "setting region",
197 config: attrs{ 199 config: attrs{
198 "region": "testreg", 200 "region": "testreg",
199 }, 201 },
200 region: "testreg", 202 region: "testreg",
201 }, { 203 }, {
(...skipping 239 matching lines...) Expand 10 before | Expand all | Expand 10 after
441 443
442 func (s *ConfigSuite) setupEnvCredentials() { 444 func (s *ConfigSuite) setupEnvCredentials() {
443 os.Setenv("OS_USERNAME", "user") 445 os.Setenv("OS_USERNAME", "user")
444 os.Setenv("OS_PASSWORD", "secret") 446 os.Setenv("OS_PASSWORD", "secret")
445 os.Setenv("OS_AUTH_URL", "http://auth") 447 os.Setenv("OS_AUTH_URL", "http://auth")
446 os.Setenv("OS_TENANT_NAME", "sometenant") 448 os.Setenv("OS_TENANT_NAME", "sometenant")
447 os.Setenv("OS_REGION_NAME", "region") 449 os.Setenv("OS_REGION_NAME", "region")
448 } 450 }
449 451
450 type ConfigDeprecationSuite struct { 452 type ConfigDeprecationSuite struct {
451 » oldJujuHome string 453 » ConfigSuite
452 » writer *testWriter 454 » writer *testWriter
453 » oldWriter loggo.Writer 455 » oldWriter loggo.Writer
454 » oldLevel loggo.Level 456 » oldLevel loggo.Level
455 } 457 }
456 458
457 var _ = gc.Suite(&ConfigDeprecationSuite{}) 459 var _ = gc.Suite(&ConfigDeprecationSuite{})
458 460
459 func (s *ConfigDeprecationSuite) SetUpTest(c *gc.C) { 461 func (s *ConfigDeprecationSuite) SetUpTest(c *gc.C) {
460 » s.oldJujuHome = config.SetJujuHome(c.MkDir()) 462 » s.ConfigSuite.SetUpTest(c)
thumper 2013/07/22 04:43:02 just use a testing.FakeHome.
wallyworld 2013/07/22 05:41:12 I forgot about fake home. I just copied an existin
463 }
464
465 func (s *ConfigDeprecationSuite) TearDownTest(c *gc.C) {
466 » s.ConfigSuite.TearDownTest(c)
467 }
468
469 func (s *ConfigDeprecationSuite) setupLogger(c *gc.C) {
461 var err error 470 var err error
462 s.writer = &testWriter{} 471 s.writer = &testWriter{}
463 s.oldWriter, s.oldLevel, err = loggo.RemoveWriter("default") 472 s.oldWriter, s.oldLevel, err = loggo.RemoveWriter("default")
464 c.Assert(err, gc.IsNil) 473 c.Assert(err, gc.IsNil)
465 err = loggo.RegisterWriter("test", s.writer, loggo.TRACE) 474 err = loggo.RegisterWriter("test", s.writer, loggo.TRACE)
466 c.Assert(err, gc.IsNil) 475 c.Assert(err, gc.IsNil)
467 } 476 }
468 477
469 func (s *ConfigDeprecationSuite) TearDownTest(c *gc.C) { 478 func (s *ConfigDeprecationSuite) resetLogger(c *gc.C) {
470 _, _, err := loggo.RemoveWriter("test") 479 _, _, err := loggo.RemoveWriter("test")
471 c.Assert(err, gc.IsNil) 480 c.Assert(err, gc.IsNil)
472 err = loggo.RegisterWriter("default", s.oldWriter, s.oldLevel) 481 err = loggo.RegisterWriter("default", s.oldWriter, s.oldLevel)
473 c.Assert(err, gc.IsNil) 482 c.Assert(err, gc.IsNil)
474 config.SetJujuHome(s.oldJujuHome)
475 } 483 }
476 484
477 type testWriter struct { 485 type testWriter struct {
478 » bytes.Buffer 486 » messages []string
479 } 487 }
480 488
481 func (t *testWriter) Write(level loggo.Level, module, filename string, line int, timestamp time.Time, message string) { 489 func (t *testWriter) Write(level loggo.Level, module, filename string, line int, timestamp time.Time, message string) {
482 » t.Buffer.WriteString(fmt.Sprintf("%s %s %s", level, module, message)) 490 » t.messages = append(t.messages, message)
483 } 491 }
484 492
485 func (s *ConfigDeprecationSuite) setupEnv(c *gc.C, deprecatedKey, value string) *environ { 493 func (s *ConfigDeprecationSuite) setupEnv(c *gc.C, deprecatedKey, value string) {
486 » envs := attrs{ 494 » s.setupEnvCredentials()
487 » » "environments": attrs{ 495 » attrs := map[string]interface{}{
488 » » » "testenv": attrs{ 496 » » "name": "testenv",
489 » » » » "type": "openstack", 497 » » "type": "openstack",
490 » » » » "control-bucket": "x", 498 » » "control-bucket": "x",
491 » » » » "authorized-keys": "fakekey", 499 » » "authorized-keys": "fakekey",
492 » » » }, 500 » » deprecatedKey: value,
493 » » }, 501 » }
494 » } 502 » _, err := environs.NewFromAttrs(attrs)
495 » testenv := envs["environments"].(attrs)["testenv"].(attrs) 503 » c.Assert(err, gc.IsNil)
496 » testenv[deprecatedKey] = value
497 » data, err := goyaml.Marshal(envs)
498 » c.Assert(err, gc.IsNil)
499
500 » es, err := environs.ReadEnvironsBytes(data)
501 » c.Check(err, gc.IsNil)
502
503 » e, err := es.Open("testenv")
504 » return e.(*environ)
505 } 504 }
506 505
507 func (s *ConfigDeprecationSuite) TestDeprecationWarnings(c *gc.C) { 506 func (s *ConfigDeprecationSuite) TestDeprecationWarnings(c *gc.C) {
508 for attr, value := range map[string]string{ 507 for attr, value := range map[string]string{
509 "default-image-id": "foo", 508 "default-image-id": "foo",
510 "default-instance-type": "bar", 509 "default-instance-type": "bar",
511 } { 510 } {
512 » » osenv := s.setupEnv(c, attr, value) 511 » » s.setupLogger(c)
513 » » _, err := providerInstance.Validate(osenv.ecfg().Config, nil) 512 » » s.setupEnv(c, attr, value)
514 » » c.Assert(err, gc.IsNil) 513 » » s.resetLogger(c)
515 » » stripped := strings.Replace(s.writer.String(), "\n", "", -1) 514 » » stripped := strings.Replace(s.writer.messages[0], "\n", "", -1)
516 » » expected := fmt.Sprintf(`.*WARNING juju Config attribute "%s" \( %s\) is deprecated and ignored.*`, attr, value) 515 » » expected := fmt.Sprintf(`.*Config attribute "%s" \(%s\) is depre cated and ignored.*`, attr, value)
517 c.Assert(stripped, gc.Matches, expected) 516 c.Assert(stripped, gc.Matches, expected)
518 } 517 }
519 } 518 }
LEFTRIGHT

Powered by Google App Engine
RSS Feeds Recent Issues | This issue
This is Rietveld f62528b