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

Unified Diff: state/apiserver/client/client_test.go

Issue 13522043: charm: allow empty string options
Patch Set: charm: allow empty string options Created 11 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Please Sign in to add in-line comments.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: state/apiserver/client/client_test.go
=== modified file 'state/apiserver/client/client_test.go'
--- state/apiserver/client/client_test.go 2013-08-26 17:38:19 +0000
+++ state/apiserver/client/client_test.go 2013-09-11 08:12:49 +0000
@@ -30,32 +30,83 @@
c.Assert(status, gc.DeepEquals, scenarioStatus)
}
+func (s *clientSuite) TestCompatibleSettingsParsing(c *gc.C) {
+ // Test the exported settings parsing in a compatible way.
+ _, err := s.State.AddService("dummy", s.AddTestingCharm(c, "dummy"))
+ c.Assert(err, gc.IsNil)
+ service, err := s.State.Service("dummy")
+ c.Assert(err, gc.IsNil)
+ ch, _, err := service.Charm()
+ c.Assert(err, gc.IsNil)
+ c.Assert(ch.URL().String(), gc.Equals, "local:series/dummy-1")
+
+ // Empty string will be returned as nil.
+ options := map[string]string{
+ "title": "foobar",
+ "username": "",
+ }
+ settings, err := client.ParseSettingsCompatible(ch, options)
+ c.Assert(err, gc.IsNil)
+ c.Assert(settings, gc.DeepEquals, charm.Settings{
+ "title": "foobar",
+ "username": nil,
+ })
+
+ // Illegal settings lead to an error.
+ options = map[string]string{
+ "yummy": "didgeridoo",
+ }
+ settings, err = client.ParseSettingsCompatible(ch, options)
+ c.Assert(err, gc.ErrorMatches, `unknown option "yummy"`)
+}
+
func (s *clientSuite) TestClientServerSet(c *gc.C) {
dummy, err := s.State.AddService("dummy", s.AddTestingCharm(c, "dummy"))
c.Assert(err, gc.IsNil)
+
err = s.APIState.Client().ServiceSet("dummy", map[string]string{
- "title": "xxx",
- "username": "yyy",
+ "title": "foobar",
+ "username": "user name",
})
c.Assert(err, gc.IsNil)
settings, err := dummy.ConfigSettings()
c.Assert(err, gc.IsNil)
c.Assert(settings, gc.DeepEquals, charm.Settings{
- "title": "xxx",
- "username": "yyy",
+ "title": "foobar",
+ "username": "user name",
+ })
+
+ err = s.APIState.Client().ServiceSet("dummy", map[string]string{
+ "title": "barfoo",
+ "username": "",
+ })
+ c.Assert(err, gc.IsNil)
+ settings, err = dummy.ConfigSettings()
+ c.Assert(err, gc.IsNil)
+ c.Assert(settings, gc.DeepEquals, charm.Settings{
+ "title": "barfoo",
})
}
func (s *clientSuite) TestClientServiceSetYAML(c *gc.C) {
dummy, err := s.State.AddService("dummy", s.AddTestingCharm(c, "dummy"))
c.Assert(err, gc.IsNil)
- err = s.APIState.Client().ServiceSetYAML("dummy", "dummy:\n title: aaa\n username: bbb")
+
+ err = s.APIState.Client().ServiceSetYAML("dummy", "dummy:\n title: foobar\n username: user name\n")
c.Assert(err, gc.IsNil)
settings, err := dummy.ConfigSettings()
c.Assert(err, gc.IsNil)
c.Assert(settings, gc.DeepEquals, charm.Settings{
- "title": "aaa",
- "username": "bbb",
+ "title": "foobar",
+ "username": "user name",
+ })
+
+ err = s.APIState.Client().ServiceSetYAML("dummy", "dummy:\n title: barfoo\n username: \n")
+ c.Assert(err, gc.IsNil)
+ settings, err = dummy.ConfigSettings()
+ c.Assert(err, gc.IsNil)
+ c.Assert(settings, gc.DeepEquals, charm.Settings{
+ "title": "barfoo",
})
}

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